From 9b89f0d5f34a16a2aceb9eadce66ac779e895b1f Mon Sep 17 00:00:00 2001 From: qilinz Date: Fri, 3 Feb 2023 14:21:46 +0100 Subject: [PATCH] Update test cases --- catalog/music/tests.py | 32 ++++++++----------- catalog/sites/discogs.py | 6 ++-- .../https___api_discogs_com_masters_469004 | 1 + .../https___api_discogs_com_releases_25829341 | 1 + 4 files changed, 17 insertions(+), 23 deletions(-) create mode 100644 test_data/https___api_discogs_com_masters_469004 create mode 100644 test_data/https___api_discogs_com_releases_25829341 diff --git a/catalog/music/tests.py b/catalog/music/tests.py index 87323c19..58837fa1 100644 --- a/catalog/music/tests.py +++ b/catalog/music/tests.py @@ -89,11 +89,9 @@ class BandcampTestCase(TestCase): class DiscogsReleaseTestCase(TestCase): def test_parse(self): t_id_type = IdType.Discogs_Release - t_id_value = "25746742" - t_url = ( - "https://www.discogs.com/release/25746742-Phish-LP-on-LP-04-Ghost-5222000" - ) - t_url_2 = "https://www.discogs.com/release/25746742" + t_id_value = "25829341" + t_url = "https://www.discogs.com/release/25829341-JID-The-Never-Story" + t_url_2 = "https://www.discogs.com/release/25829341" site = SiteManager.get_site_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) @@ -103,27 +101,23 @@ class DiscogsReleaseTestCase(TestCase): @use_local_response def test_scrape(self): - t_url = ( - "https://www.discogs.com/release/25746742-Phish-LP-on-LP-04-Ghost-5222000" - ) + t_url = "https://www.discogs.com/release/25829341-JID-The-Never-Story" site = SiteManager.get_site_by_url(t_url) self.assertEqual(site.ready, False) site.get_resource_ready() self.assertEqual(site.ready, True) - self.assertEqual( - site.resource.metadata["title"], 'LP on LP 04: "Ghost" 5/22/2000' - ) - self.assertEqual(site.resource.metadata["artist"], ["Phish"]) + self.assertEqual(site.resource.metadata["title"], "The Never Story") + self.assertEqual(site.resource.metadata["artist"], ["J.I.D"]) self.assertIsInstance(site.resource.item, Album) - self.assertEqual(site.resource.item.barcode, "850014859275") + self.assertEqual(site.resource.item.barcode, "602445804689") class DiscogsMasterTestCase(TestCase): def test_parse(self): t_id_type = IdType.Discogs_Master - t_id_value = "14772" - t_url = "https://www.discogs.com/master/14772-Linda-Ronstadt-Silk-Purse" - t_url_2 = "https://www.discogs.com/master/14772" + t_id_value = "469004" + t_url = "https://www.discogs.com/master/469004-The-XX-Coexist" + t_url_2 = "https://www.discogs.com/master/469004" site = SiteManager.get_site_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) @@ -133,11 +127,11 @@ class DiscogsMasterTestCase(TestCase): @use_local_response def test_scrape(self): - t_url = "https://www.discogs.com/master/14772-Linda-Ronstadt-Silk-Purse" + t_url = "https://www.discogs.com/master/469004-The-XX-Coexist" site = SiteManager.get_site_by_url(t_url) self.assertEqual(site.ready, False) site.get_resource_ready() self.assertEqual(site.ready, True) - self.assertEqual(site.resource.metadata["title"], "Silk Purse") - self.assertEqual(site.resource.metadata["artist"], ["Linda Ronstadt"]) + self.assertEqual(site.resource.metadata["title"], "Coexist") + self.assertEqual(site.resource.metadata["artist"], ["The XX"]) self.assertIsInstance(site.resource.item, Album) diff --git a/catalog/sites/discogs.py b/catalog/sites/discogs.py index fab5bca2..4375d09d 100644 --- a/catalog/sites/discogs.py +++ b/catalog/sites/discogs.py @@ -127,8 +127,6 @@ def get_discogs_data(data_type: str, discogs_id): "User-Agent": user_agent_string, "Authorization": f"Discogs token={user_token}", } - response = requests.get( - f"https://api.discogs.com/{data_type}/{discogs_id}", headers=headers - ) - data = json.loads(response.text) + api_url = f"https://api.discogs.com/{data_type}/{discogs_id}" + data = BasicDownloader(api_url, headers=headers).download().json() return data diff --git a/test_data/https___api_discogs_com_masters_469004 b/test_data/https___api_discogs_com_masters_469004 new file mode 100644 index 00000000..ab94a51a --- /dev/null +++ b/test_data/https___api_discogs_com_masters_469004 @@ -0,0 +1 @@ +{"id": 469004, "main_release": 3850815, "most_recent_release": 25724581, "resource_url": "https://api.discogs.com/masters/469004", "uri": "https://www.discogs.com/master/469004-The-XX-Coexist", "versions_url": "https://api.discogs.com/masters/469004/versions", "main_release_url": "https://api.discogs.com/releases/3850815", "most_recent_release_url": "https://api.discogs.com/releases/25724581", "num_for_sale": 576, "lowest_price": 0.93, "images": [{"type": "primary", "uri": "https://i.discogs.com/2umOjYfODgBpeG9B_Skzb6YIEef8363Eqk4XFAMcVlo/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzM1NTQ0/OS00MDI0LmpwZWc.jpeg", "resource_url": "https://i.discogs.com/2umOjYfODgBpeG9B_Skzb6YIEef8363Eqk4XFAMcVlo/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzM1NTQ0/OS00MDI0LmpwZWc.jpeg", "uri150": "https://i.discogs.com/ioAG00fvA9GEPtpyueYIxF1O-pxdRelEMDPVOA8NaXY/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzM1NTQ0/OS00MDI0LmpwZWc.jpeg", "width": 600, "height": 600}, {"type": "secondary", "uri": "https://i.discogs.com/UZ5EiFEOLs_XMoD4mXYxHWxhtsU_T8K8-ToqSw8bL4Y/rs:fit/g:sm/q:90/h:540/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS03MDk1LmpwZWc.jpeg", "resource_url": "https://i.discogs.com/UZ5EiFEOLs_XMoD4mXYxHWxhtsU_T8K8-ToqSw8bL4Y/rs:fit/g:sm/q:90/h:540/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS03MDk1LmpwZWc.jpeg", "uri150": "https://i.discogs.com/TsqcAqpucrOXt91Gv5iUnxnJK5KTaoteIigHdK3FjNY/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS03MDk1LmpwZWc.jpeg", "width": 600, "height": 540}, {"type": "secondary", "uri": "https://i.discogs.com/roeYIIiKvvnRkrKiyAI6FzM1UZDSF3kRTVtyeGYU2QA/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS00OTczLmpwZWc.jpeg", "resource_url": "https://i.discogs.com/roeYIIiKvvnRkrKiyAI6FzM1UZDSF3kRTVtyeGYU2QA/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS00OTczLmpwZWc.jpeg", "uri150": "https://i.discogs.com/BUUEZkt7Y4LSCGxvy-d-Waobb5AV9x6wmJOvFbZ4ONo/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS00OTczLmpwZWc.jpeg", "width": 600, "height": 600}, {"type": "secondary", "uri": "https://i.discogs.com/Hk7qVqh-H4noEgVdF2MgkTfibXmuvqFxd8WVlez36Io/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS02MTkzLmpwZWc.jpeg", "resource_url": "https://i.discogs.com/Hk7qVqh-H4noEgVdF2MgkTfibXmuvqFxd8WVlez36Io/rs:fit/g:sm/q:90/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS02MTkzLmpwZWc.jpeg", "uri150": "https://i.discogs.com/j6kNrr910AGCoyuZ6L339QHHizQBA0cR6f7TlqJ8nF4/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS02MTkzLmpwZWc.jpeg", "width": 600, "height": 600}, {"type": "secondary", "uri": "https://i.discogs.com/tUZSMC-MSh-pkOxqj4Gi7Q56UmQVm846oA4kcNS5fzM/rs:fit/g:sm/q:90/h:590/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzA5NzIz/MS0xMTUyLmpwZWc.jpeg", "resource_url": "https://i.discogs.com/tUZSMC-MSh-pkOxqj4Gi7Q56UmQVm846oA4kcNS5fzM/rs:fit/g:sm/q:90/h:590/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzA5NzIz/MS0xMTUyLmpwZWc.jpeg", "uri150": "https://i.discogs.com/1BPNmBtxUAlRULcK93oq2lrlIdK5irgEor84f6FlFtQ/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTM0NzA5NzIz/MS0xMTUyLmpwZWc.jpeg", "width": 600, "height": 590}, {"type": "secondary", "uri": "https://i.discogs.com/092bbNvAepef-xGd6grENt8eeVnm0vXXLlG1PztM35M/rs:fit/g:sm/q:90/h:530/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS0xMTU2LmpwZWc.jpeg", "resource_url": "https://i.discogs.com/092bbNvAepef-xGd6grENt8eeVnm0vXXLlG1PztM35M/rs:fit/g:sm/q:90/h:530/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS0xMTU2LmpwZWc.jpeg", "uri150": "https://i.discogs.com/5ReqOOVj9Gtw8fBnPct51hSVZ17F_I6LzeKWFRaRc0o/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTM4NTA4/MTUtMTQyMDk5MjE2/OS0xMTU2LmpwZWc.jpeg", "width": 600, "height": 530}], "genres": ["Electronic", "Rock", "Pop"], "styles": ["Indie Rock"], "year": 2012, "tracklist": [{"position": "1", "type_": "track", "title": "Angels", "duration": "2:52"}, {"position": "2", "type_": "track", "title": "Chained", "extraartists": [{"name": "Romy Madley Croft", "anv": "", "join": "", "role": "Keyboards [Keys]", "tracks": "", "id": 1567403, "resource_url": "https://api.discogs.com/artists/1567403", "thumbnail_url": "https://i.discogs.com/Zxgxwn8aje41x-Ngz-D2mq_JH3UzCK7efP7J8NOgNXg/rs:fit/g:sm/q:40/h:300/w:400/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1Njc0/MDMtMTM0NTcyMjI0/NS05MzY4LmpwZWc.jpeg"}], "duration": "2:48"}, {"position": "3", "type_": "track", "title": "Fiction", "extraartists": [{"name": "Jamie Smith (4)", "anv": "", "join": "", "role": "Piano", "tracks": "", "id": 1545576, "resource_url": "https://api.discogs.com/artists/1545576", "thumbnail_url": "https://i.discogs.com/n7pb4HOJbrs19zYK7PqBcExjJdLbE4jWxc3va2eOOTI/rs:fit/g:sm/q:40/h:400/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1NDU1/NzYtMTQ5NTYzOTEx/NC0xNDQzLmpwZWc.jpeg"}, {"name": "Oliver Sim", "anv": "", "join": "", "role": "Synth", "tracks": "", "id": 1541944, "resource_url": "https://api.discogs.com/artists/1541944", "thumbnail_url": "https://i.discogs.com/h4GkJcLWJeiIIG7y7xA2WVWhsAHBp5Ekc9i1y6UHVLE/rs:fit/g:sm/q:40/h:381/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1NDE5/NDQtMTY1MzQ2MDU5/Ni00NTQ2LmpwZWc.jpeg"}], "duration": "2:56"}, {"position": "4", "type_": "track", "title": "Try", "extraartists": [{"name": "Jamie Smith (4)", "anv": "", "join": "", "role": "Organ", "tracks": "", "id": 1545576, "resource_url": "https://api.discogs.com/artists/1545576", "thumbnail_url": "https://i.discogs.com/n7pb4HOJbrs19zYK7PqBcExjJdLbE4jWxc3va2eOOTI/rs:fit/g:sm/q:40/h:400/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1NDU1/NzYtMTQ5NTYzOTEx/NC0xNDQzLmpwZWc.jpeg"}], "duration": "3:15"}, {"position": "5", "type_": "track", "title": "Reunion", "extraartists": [{"name": "Jamie Smith (4)", "anv": "", "join": "", "role": "Steel Drums [Steel Pans], Organ", "tracks": "", "id": 1545576, "resource_url": "https://api.discogs.com/artists/1545576", "thumbnail_url": "https://i.discogs.com/n7pb4HOJbrs19zYK7PqBcExjJdLbE4jWxc3va2eOOTI/rs:fit/g:sm/q:40/h:400/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1NDU1/NzYtMTQ5NTYzOTEx/NC0xNDQzLmpwZWc.jpeg"}], "duration": "3:57"}, {"position": "6", "type_": "track", "title": "Sunset", "duration": "3:39"}, {"position": "7", "type_": "track", "title": "Missing", "duration": "3:34"}, {"position": "8", "type_": "track", "title": "Tides", "extraartists": [{"name": "Charlotte Eksteen", "anv": "", "join": "", "role": "Strings", "tracks": "", "id": 1888650, "resource_url": "https://api.discogs.com/artists/1888650", "thumbnail_url": ""}, {"name": "Ivo Stankov", "anv": "", "join": "", "role": "Strings", "tracks": "", "id": 2214758, "resource_url": "https://api.discogs.com/artists/2214758", "thumbnail_url": "https://i.discogs.com/4gsjeee3hsJYtOJear9vVm2ekwnwwJNCdNZpYq_D9NU/rs:fit/g:sm/q:40/h:384/w:250/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTIyMTQ3/NTgtMTQwMjQzNTY0/OC0yMDg5LmpwZWc.jpeg"}, {"name": "James Underwood", "anv": "", "join": "", "role": "Strings", "tracks": "", "id": 1350276, "resource_url": "https://api.discogs.com/artists/1350276", "thumbnail_url": ""}, {"name": "Sarah Chapman (2)", "anv": "", "join": "", "role": "Strings", "tracks": "", "id": 1299177, "resource_url": "https://api.discogs.com/artists/1299177", "thumbnail_url": "https://i.discogs.com/WN21ySt_5ZezEv7oKY0o_we-p46Rx5NU9TkLtFhnkq0/rs:fit/g:sm/q:40/h:900/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTEyOTkx/NzctMTQzMDQyOTM0/OS03MDIzLmpwZWc.jpeg"}], "duration": "3:01"}, {"position": "9", "type_": "track", "title": "Unfold", "duration": "3:03"}, {"position": "10", "type_": "track", "title": "Swept Away", "extraartists": [{"name": "Jamie Smith (4)", "anv": "", "join": "", "role": "Piano", "tracks": "", "id": 1545576, "resource_url": "https://api.discogs.com/artists/1545576", "thumbnail_url": "https://i.discogs.com/n7pb4HOJbrs19zYK7PqBcExjJdLbE4jWxc3va2eOOTI/rs:fit/g:sm/q:40/h:400/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE1NDU1/NzYtMTQ5NTYzOTEx/NC0xNDQzLmpwZWc.jpeg"}], "duration": "4:59"}, {"position": "11", "type_": "track", "title": "Our Song", "duration": "3:14"}], "artists": [{"name": "The XX", "anv": "", "join": "", "role": "", "tracks": "", "id": 1416238, "resource_url": "https://api.discogs.com/artists/1416238", "thumbnail_url": "https://i.discogs.com/ny8Ua0SBNPQseKL4VyJcihQPjtfMqt72XnuEQPssMTk/rs:fit/g:sm/q:40/h:745/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTE0MTYy/MzgtMTY1NTQwMzYz/MS04OTQ3LmpwZWc.jpeg"}], "title": "Coexist", "data_quality": "Correct", "videos": [{"uri": "https://www.youtube.com/watch?v=_nW5AF0m9Zw", "title": "The xx - Angels (Official Audio)", "description": "The xx - Angels (Official Audio)\n\u201cFiction\u201d from The xx\u2019s album 'Coexist.' \nSubscribe to The xx\u2019s channel to stay up to date with all their latest videos. \n\nAnd with words unspoken\nA silent devotion\nI know you know what I mean\nAnd the end is unkn", "duration": 174, "embed": true}, {"uri": "https://www.youtube.com/watch?v=-qiJ06IeFiI", "title": "The xx - Chained (Official Video)", "description": "The xx - Chained (Official Video)\n\u201cChained\u201d from The xx\u2019s album 'Coexist.' \nSubscribe to The xx\u2019s channel to stay up to date with all their latest videos.\n\nDid I hold you too tight\nDid I not let enough light in\n\nDirected by: Young Replicant\n\nLis", "duration": 194, "embed": true}, {"uri": "https://www.youtube.com/watch?v=fhJ9k9aJRKw", "title": "The xx - Fiction (Official Video)", "description": "The xx - Fiction (Official Video)\n\u201cFiction\u201d from The xx\u2019s album 'Coexist.' \nSubscribe to The xx\u2019s channel to stay up to date with all their latest videos. \n\nFiction\nWhen we're not together\nMistaken for a vision\nSomething of my own creation\n\nDire", "duration": 183, "embed": true}]} diff --git a/test_data/https___api_discogs_com_releases_25829341 b/test_data/https___api_discogs_com_releases_25829341 new file mode 100644 index 00000000..67254106 --- /dev/null +++ b/test_data/https___api_discogs_com_releases_25829341 @@ -0,0 +1 @@ +{"id": 25829341, "status": "Accepted", "year": 2023, "resource_url": "https://api.discogs.com/releases/25829341", "uri": "https://www.discogs.com/release/25829341-JID-The-Never-Story", "artists": [{"name": "J.I.D", "anv": "", "join": "", "role": "", "tracks": "", "id": 7246829, "resource_url": "https://api.discogs.com/artists/7246829", "thumbnail_url": "https://i.discogs.com/FkGh107N-18i1gSbxT0sgh6uQMhJJNaxSm3tyk5v2Sc/rs:fit/g:sm/q:40/h:776/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9BLTcyNDY4/MjktMTY1NTQwNjA0/My03MzQyLmpwZWc.jpeg"}], "artists_sort": "J.I.D", "labels": [{"name": "Dreamville", "catno": "B0035696-01", "entity_type": "1", "entity_type_name": "Label", "id": 407493, "resource_url": "https://api.discogs.com/labels/407493", "thumbnail_url": "https://i.discogs.com/p2dw9R3uP8mi5I2clJcKiTSib2r5iu8dde00L6fz9_4/rs:fit/g:sm/q:40/h:600/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9MLTQwNzQ5/My0xNTAwNjU4ODM2/LTk1NzYucG5n.jpeg"}], "series": [], "companies": [], "formats": [{"name": "Vinyl", "qty": "1", "descriptions": ["LP", "Album", "Reissue"]}], "data_quality": "Needs Vote", "community": {"have": 411, "want": 70, "rating": {"count": 6, "average": 4.5}, "submitter": {"username": "BUMRUSHvinyl", "resource_url": "https://api.discogs.com/users/BUMRUSHvinyl"}, "contributors": [{"username": "BUMRUSHvinyl", "resource_url": "https://api.discogs.com/users/BUMRUSHvinyl"}, {"username": "god-injeans", "resource_url": "https://api.discogs.com/users/god-injeans"}, {"username": "I_am_a_wolf", "resource_url": "https://api.discogs.com/users/I_am_a_wolf"}, {"username": "bnelson8895", "resource_url": "https://api.discogs.com/users/bnelson8895"}], "data_quality": "Needs Vote", "status": "Accepted"}, "format_quantity": 1, "date_added": "2023-01-20T10:13:33-08:00", "date_changed": "2023-01-27T11:34:01-08:00", "num_for_sale": 22, "lowest_price": 25.46, "master_id": 1355258, "master_url": "https://api.discogs.com/masters/1355258", "title": "The Never Story", "country": "US", "released": "2023-01-20", "released_formatted": "20 Jan 2023", "identifiers": [{"type": "Barcode", "value": "602445804689"}], "videos": [{"uri": "https://www.youtube.com/watch?v=YVEgiuExFl8", "title": "J.I.D: The Never Story (Mini Doc)", "description": "New Dreamville artist J.I.D project The Never Story available everywhere. \n\nListen Now - https://dreamville.lnk.to/theneverstory\n\nhttps://twitter.com/JIDsv\nhttps://www.instagram.com/jidsv\n\niTunes: http://smarturl.it/JIDNever\nApple Music: http://smartu", "duration": 138, "embed": true}, {"uri": "https://www.youtube.com/watch?v=SEG92Z_NGJE", "title": "J.I.D - EdEddnEddy", "description": "Watch Vevo dscvr: Artists to Watch 2018 - https://goo.gl/U1c5AY\nJ.I.D \u201cThe Never Story\u201d Out Now http://smarturl.it/TheNeverStory\nCatch J.I.D on tour http://spillagevillage.com/tour\n\nhttp://jidsv.com\nhttp://twitter.com/jidsv\nhttp://instagram.com/jidsv\n", "duration": 126, "embed": true}, {"uri": "https://www.youtube.com/watch?v=6eFcSesrP6A", "title": "J.I.D - NEVER", "description": "Watch Vevo dscvr: Artists to Watch 2018 - https://goo.gl/U1c5AY\nJ.I.D \u201cThe Never Story\u201d Out Now http://smarturl.it/TheNeverStory\nCatch J.I.D on tour http://spillagevillage.com/tour\n\nhttp://jidsv.com\nhttp://twitter.com/jidsv\nhttp://instagram.com/jidsv\n", "duration": 291, "embed": true}], "genres": ["Hip Hop"], "tracklist": [{"position": "A1", "type_": "track", "title": "Doo Wop", "duration": ""}, {"position": "A2", "type_": "track", "title": "General", "duration": ""}, {"position": "A3", "type_": "track", "title": "NEVER", "duration": ""}, {"position": "A4", "type_": "track", "title": "EdEddnEddy", "duration": ""}, {"position": "A5", "type_": "track", "title": "D/vision", "duration": ""}, {"position": "A6", "type_": "track", "title": "Hereditary", "duration": ""}, {"position": "B1", "type_": "track", "title": "All Bad", "duration": ""}, {"position": "B2", "type_": "track", "title": "Underwear", "duration": ""}, {"position": "B3", "type_": "track", "title": "8701", "duration": ""}, {"position": "B4", "type_": "track", "title": "Hoodbooger", "duration": ""}, {"position": "B5", "type_": "track", "title": "Somebody", "duration": ""}, {"position": "B6", "type_": "track", "title": "LAUDER", "duration": ""}], "extraartists": [{"name": "Britton Nelson", "anv": "", "join": "", "role": "Reissue Producer", "tracks": "", "id": 8431056, "resource_url": "https://api.discogs.com/artists/8431056", "thumbnail_url": ""}], "images": [{"type": "secondary", "uri": "https://i.discogs.com/XQp5SqyR3q4IkTKzZ-0FsypBe94yK37YvNMjlm2kTks/rs:fit/g:sm/q:90/h:562/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/NDAtMTcxMC5qcGVn.jpeg", "resource_url": "https://i.discogs.com/XQp5SqyR3q4IkTKzZ-0FsypBe94yK37YvNMjlm2kTks/rs:fit/g:sm/q:90/h:562/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/NDAtMTcxMC5qcGVn.jpeg", "uri150": "https://i.discogs.com/OxYpDx-lfiQxRmnoWPYeAV3c4PDRZT9_MJuO15vm5PQ/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/NDAtMTcxMC5qcGVn.jpeg", "width": 600, "height": 562}, {"type": "secondary", "uri": "https://i.discogs.com/5X6o_Kvg6hLzCeS-hXL_X2mb9hEMSBfqjgmf7KvW4hI/rs:fit/g:sm/q:90/h:587/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzQtMjcxNC5qcGVn.jpeg", "resource_url": "https://i.discogs.com/5X6o_Kvg6hLzCeS-hXL_X2mb9hEMSBfqjgmf7KvW4hI/rs:fit/g:sm/q:90/h:587/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzQtMjcxNC5qcGVn.jpeg", "uri150": "https://i.discogs.com/4KE9WZX9QtUNUu_ucYgCATekWJzDMpVs_HFvUdAqLqI/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzQtMjcxNC5qcGVn.jpeg", "width": 600, "height": 587}, {"type": "secondary", "uri": "https://i.discogs.com/mSHeY46Isnd45M6fHvGYpzJ1QvhTPYSaWGrc4gU3fH0/rs:fit/g:sm/q:90/h:597/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzItMjI5NC5qcGVn.jpeg", "resource_url": "https://i.discogs.com/mSHeY46Isnd45M6fHvGYpzJ1QvhTPYSaWGrc4gU3fH0/rs:fit/g:sm/q:90/h:597/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzItMjI5NC5qcGVn.jpeg", "uri150": "https://i.discogs.com/jpLavU8g2f0ymvtm5bHYJE3kLkubMmQeOy0S_AR9X08/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MzItMjI5NC5qcGVn.jpeg", "width": 600, "height": 597}, {"type": "secondary", "uri": "https://i.discogs.com/m5672_bAaLFU-u0NYkVgi2xT7RwjfyHqwQ1D9gd8tEo/rs:fit/g:sm/q:90/h:590/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MjUtODg0MS5qcGVn.jpeg", "resource_url": "https://i.discogs.com/m5672_bAaLFU-u0NYkVgi2xT7RwjfyHqwQ1D9gd8tEo/rs:fit/g:sm/q:90/h:590/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MjUtODg0MS5qcGVn.jpeg", "uri150": "https://i.discogs.com/VYrXFK4htnjj7NBGjbcA-jKbRgTBJ3x6zLXgfIhknso/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/MjUtODg0MS5qcGVn.jpeg", "width": 600, "height": 590}], "thumb": "https://i.discogs.com/OxYpDx-lfiQxRmnoWPYeAV3c4PDRZT9_MJuO15vm5PQ/rs:fit/g:sm/q:40/h:150/w:150/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTI1ODI5/MzQxLTE2NzQyMzg0/NDAtMTcxMC5qcGVn.jpeg", "estimated_weight": 230, "blocked_from_sale": false}