diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..f9ce5dd Binary files /dev/null and b/.DS_Store differ diff --git a/album_statistics.json b/album_statistics.json deleted file mode 100644 index 627a162..0000000 --- a/album_statistics.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "The All\u2010American Rejects [2003]": null, - "Move Along [2005]": null, - "B-Sides & Rarities [2007]": null, - "When the World Comes Down [2009]": null, - "Kids in the Street [2012]": null, - "The All\u2010American Rejects [2000]": null -} \ No newline at end of file diff --git a/all_albums_lyrics.json b/all_albums_lyrics.json deleted file mode 100644 index 6a95e3f..0000000 --- a/all_albums_lyrics.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "The All\u2010American Rejects [2003]": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "Move Along [2005]": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "B-Sides & Rarities [2007]": [ - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "When the World Comes Down [2009]": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "Kids in the Street [2012]": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "The All\u2010American Rejects [2000]": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } -] \ No newline at end of file diff --git a/lyrics_count.json b/lyrics_count.json deleted file mode 100644 index 110cabf..0000000 --- a/lyrics_count.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "The All\u2010American Rejects [2003]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - }, - { - "Move Along [2005]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - }, - { - "B-Sides & Rarities [2007]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - }, - { - "When the World Comes Down [2009]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - }, - { - "Kids in the Street [2012]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - }, - { - "The All\u2010American Rejects [2000]": [ - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics", - "No Lyrics" - ] - } -] \ No newline at end of file diff --git a/lyrics_sum_all_album.json b/lyrics_sum_all_album.json deleted file mode 100644 index a9e2cf2..0000000 --- a/lyrics_sum_all_album.json +++ /dev/null @@ -1 +0,0 @@ -[{"The All\u2010American Rejects [2003]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}, {"Move Along [2005]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}, {"B-Sides & Rarities [2007]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}, {"When the World Comes Down [2009]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}, {"Kids in the Street [2012]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}, {"The All\u2010American Rejects [2000]": ["No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics", "No Lyrics"]}] \ No newline at end of file diff --git a/output.json b/output.json deleted file mode 100644 index 99f2514..0000000 --- a/output.json +++ /dev/null @@ -1,6569 +0,0 @@ -{ - "release-count": 264, - "release-list": [ - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-10-16", - "id": "dd2c11e1-ce0f-4cbf-96a6-27086a85015d", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 14, - "track-list": [ - { - "id": "edc62f17-e8de-324f-9f9f-5ddd36475255", - "length": "133000", - "number": "1", - "position": "1", - "recording": { - "id": "800671aa-7838-49bb-ac57-80f2ada1de7a", - "length": "133000", - "title": "A Song for You (X Factor performance)" - }, - "title": "A Song for You", - "track_or_recording_length": "133000" - }, - { - "id": "8588eeda-f3d7-3043-925a-6c4bea1a97e5", - "length": "130000", - "number": "2", - "position": "2", - "recording": { - "id": "ecf453e5-90c3-4e73-b4f0-1b8df6429aba", - "length": "130000", - "title": "You Really Got Me (X Factor performance)" - }, - "title": "You Really Got Me", - "track_or_recording_length": "130000" - }, - { - "id": "77ee6313-a600-32d0-afaf-cce02c125791", - "length": "126000", - "number": "3", - "position": "3", - "recording": { - "id": "02b5ea11-7199-4bfa-b5a4-87b1a07f5308", - "length": "126000", - "title": "You Don't Have to Say You Love Me (X Factor performance)" - }, - "title": "You Don't Have to Say You Love Me", - "track_or_recording_length": "126000" - }, - { - "id": "2964bdb9-991f-391b-a790-23f6393eea31", - "length": "148000", - "number": "4", - "position": "4", - "recording": { - "id": "ce435c37-f7f1-400a-9716-7317d4d530a2", - "length": "148000", - "title": "Just the Way You Are (X Factor performance)" - }, - "title": "Just the Way You Are", - "track_or_recording_length": "148000" - }, - { - "id": "a4534802-e101-3ef7-9cf8-b22eec6befcb", - "length": "135000", - "number": "5", - "position": "5", - "recording": { - "id": "c97a2ed9-9c55-4066-8ae7-0b1ecb0554aa", - "length": "135000", - "title": "Purple Rain (X Factor performance)" - }, - "title": "Purple Rain", - "track_or_recording_length": "135000" - }, - { - "id": "28205ce7-5810-3d8e-b63c-716d43815767", - "length": "131000", - "number": "6", - "position": "6", - "recording": { - "id": "d086b7e4-2a93-4c18-ae3d-be88a68f8576", - "length": "131000", - "title": "Barbra Streisand (X Factor performance)" - }, - "title": "Barbra Streisand", - "track_or_recording_length": "131000" - }, - { - "id": "6b42aa6b-042a-3347-88d2-f4c337d4edb6", - "length": "131000", - "number": "7", - "position": "7", - "recording": { - "id": "32ae7d39-1000-4934-8e2b-b2e9e7a6896f", - "length": "131000", - "title": "Feeling Good (X Factor performance)" - }, - "title": "Feeling Good", - "track_or_recording_length": "131000" - }, - { - "id": "a0342aa8-b057-3cdd-9cbd-8f5c2f477039", - "length": "137000", - "number": "8", - "position": "8", - "recording": { - "id": "6e2d862c-4520-4e90-8cb5-e8f1b8dcb89f", - "length": "137000", - "title": "Jealous Guy (X Factor performance)" - }, - "title": "Jealous Guy", - "track_or_recording_length": "137000" - }, - { - "id": "6cca692d-e29d-3a52-a232-499b755d8c89", - "length": "139000", - "number": "9", - "position": "9", - "recording": { - "id": "9777b373-34c8-43c9-9bb5-2b9c86109d7e", - "length": "139000", - "title": "Born to Run (X Factor performance)" - }, - "title": "Born to Run", - "track_or_recording_length": "139000" - }, - { - "id": "fe3c19fc-6bf7-326e-bb94-0f33ddbb1719", - "length": "126000", - "number": "10", - "position": "10", - "recording": { - "id": "1e9d27b6-6130-454d-bd57-8364ac5e7acf", - "length": "126000", - "title": "It's the Hard Knock Life / Hard Knock Life (The Ghetto Anthem) (medley) (X Factor performance)" - }, - "title": "It's the Hard Knock Life / Hard Knock Life (The Ghetto Anthem) (medley)", - "track_or_recording_length": "126000" - }, - { - "id": "792b3e81-ea3e-3105-99b1-9360860d064a", - "length": "125000", - "number": "11", - "position": "11", - "recording": { - "id": "074bf087-0ffb-43a5-b8ec-7f41207448bf", - "length": "125000", - "title": "My Life Would Suck Without You (X Factor performance)" - }, - "title": "My Life Would Suck Without You", - "track_or_recording_length": "125000" - }, - { - "id": "d6b947cb-69f9-3e09-9f37-efe8d4d32ef2", - "length": "135000", - "number": "12", - "position": "12", - "recording": { - "id": "57aac8fe-d2d4-457f-b83f-27d1fcaf42b1", - "length": "135000", - "title": "If I Ain't Got You (X Factor performance)" - }, - "title": "If I Ain't Got You", - "track_or_recording_length": "135000" - }, - { - "id": "6f7404d3-aeba-3e04-9810-061d08f2a68e", - "length": "140000", - "number": "13", - "position": "13", - "recording": { - "id": "4dc1c3a5-8d4b-4c28-be3f-8ab3c970b4ee", - "length": "140000", - "title": "Help Yourself (X Factor performance)" - }, - "title": "Help Yourself", - "track_or_recording_length": "140000" - }, - { - "id": "4b563925-796b-396d-af0f-4c13fe7ddfcb", - "length": "148000", - "number": "14", - "position": "14", - "recording": { - "id": "1cca299d-9c5c-47a0-8112-2249b68b3e54", - "length": "148000", - "title": "I'd Rather Go Blind (X Factor performance)" - }, - "title": "I'd Rather Go Blind", - "track_or_recording_length": "148000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-10-16" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 16th October" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-10-23", - "id": "a33cbfdb-cac7-4b56-9566-aca80c8dd75b", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 12, - "track-list": [ - { - "id": "675178d4-f56d-30f9-a86e-40407aef8fe3", - "length": "156000", - "number": "1", - "position": "1", - "recording": { - "id": "59f44d1a-642c-4ed6-a0e9-c04b28cfe0a2", - "length": "156000", - "title": "Zoom (X Factor performance)" - }, - "title": "Zoom", - "track_or_recording_length": "156000" - }, - { - "id": "24e4e8f1-e3b3-37f7-b301-64b75ae65fba", - "length": "153000", - "number": "2", - "position": "2", - "recording": { - "id": "6ee6bbc7-251a-4069-a9a3-edefd2ec3b78", - "length": "153000", - "title": "I'll Stand by You (X Factor performance)" - }, - "title": "I'll Stand by You", - "track_or_recording_length": "153000" - }, - { - "id": "093acded-6052-35df-906d-2ea2dbb7f0ac", - "length": "155000", - "number": "3", - "position": "3", - "recording": { - "id": "7cf34346-f8b3-45b8-a704-607e97a3705a", - "length": "155000", - "title": "I (Who Have Nothing) (X Factor performance)" - }, - "title": "I (Who Have Nothing)", - "track_or_recording_length": "155000" - }, - { - "id": "d8f5c57d-4330-30af-a4a3-28a1f0c0df46", - "length": "171000", - "number": "4", - "position": "4", - "recording": { - "id": "97980f74-f1ae-45ec-8f9b-14e054f76dc3", - "length": "171000", - "title": "...Baby One More Time (X Factor performance)" - }, - "title": "... Baby One More Time", - "track_or_recording_length": "171000" - }, - { - "id": "570c14b7-ad2c-3057-90c5-7697252d3286", - "length": "148000", - "number": "5", - "position": "5", - "recording": { - "id": "895ee208-c5c2-4107-96cc-47074dc30554", - "length": "148000", - "title": "Whole Lotta Love (X Factor performance)" - }, - "title": "Whole Lotta Love", - "track_or_recording_length": "148000" - }, - { - "id": "d8ac68f5-fe2b-39a2-ae08-b69a29c28360", - "length": "151000", - "number": "6", - "position": "6", - "recording": { - "id": "1435360a-9a43-4ffb-9d6d-9e77d58fa2ac", - "length": "151000", - "title": "Why Don't You Do Right? (X Factor performance)" - }, - "title": "Why Don't You Do Right?", - "track_or_recording_length": "151000" - }, - { - "id": "622aa04d-73c9-304d-b405-592c376ea380", - "length": "168000", - "number": "7", - "position": "7", - "recording": { - "id": "54510430-82e7-460e-8197-87160ca3b99b", - "length": "168000", - "title": "Diamonds Are Forever (X Factor performance)" - }, - "title": "Diamonds Are Forever", - "track_or_recording_length": "168000" - }, - { - "id": "b93f0b3d-dd4e-38fd-9807-442ad00bb15e", - "length": "141000", - "number": "8", - "position": "8", - "recording": { - "id": "e73e639d-3cd2-4e77-8550-bed5a61f7197", - "length": "141000", - "title": "No Diggity / Shout (medley) (X Factor performance)" - }, - "title": "No Diggity / Shout (medley)", - "track_or_recording_length": "141000" - }, - { - "id": "5935b882-da5e-3558-a7b1-6229397d96d6", - "length": "168000", - "number": "9", - "position": "9", - "recording": { - "id": "dd3a46c5-0189-4bc9-9e7a-42bfd17a987a", - "length": "168000", - "title": "Nobody Knows (X Factor performance)" - }, - "title": "Nobody Knows", - "track_or_recording_length": "168000" - }, - { - "id": "d20158fe-8b33-36cf-b3ae-05ef2257923e", - "length": "161000", - "number": "10", - "position": "10", - "recording": { - "id": "2fcf1a22-b058-4f3a-8c5e-45515caf13d6", - "length": "161000", - "title": "Ain't Nobody (X Factor performance)" - }, - "title": "Ain't Nobody", - "track_or_recording_length": "161000" - }, - { - "id": "b29d08a1-6c48-3e92-bca6-2404d2603fb6", - "length": "150000", - "number": "11", - "position": "11", - "recording": { - "id": "73ec4cf7-4089-49ac-adca-9be3ca9b046f", - "length": "150000", - "title": "Spice Up Your Life / Livin' la Vida Loca (medley) (X Factor performance)" - }, - "title": "Spice Up Your Life / Livin' La Vida Loca (medley)", - "track_or_recording_length": "150000" - }, - { - "id": "9a2b3958-0e31-3132-adf7-ffadd208e1d8", - "length": "135000", - "number": "12", - "position": "12", - "recording": { - "id": "82c76efb-60a2-4359-bc11-b38ddc25aa8a", - "length": "135000", - "title": "I Wanna Be Like You (X Factor performance)" - }, - "title": "I Wanna Be Like You", - "track_or_recording_length": "135000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-10-23" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 23rd October" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-10-30", - "id": "6ab9e078-7d92-478c-a57a-ab30b6c57b23", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 11, - "track-list": [ - { - "id": "52468dbb-8a88-37a6-a9f6-e8b6f86a31d8", - "length": "142000", - "number": "1", - "position": "1", - "recording": { - "id": "9e6f246e-ef95-4e3d-9be1-0da9eca561c9", - "length": "142000", - "title": "Venus (X Factor performance)" - }, - "title": "Venus", - "track_or_recording_length": "142000" - }, - { - "id": "3d131814-d75d-3cfd-81a0-6e88f2294921", - "length": "131000", - "number": "2", - "position": "2", - "recording": { - "id": "fdede990-6d76-4c0b-95c3-8d1377f5223a", - "length": "131000", - "title": "Could It Be Magic (X Factor performance)" - }, - "title": "Could It Be Magic", - "track_or_recording_length": "131000" - }, - { - "id": "5783c882-8046-30c1-95c7-f8ca8a7d0d27", - "length": "147000", - "number": "3", - "position": "3", - "recording": { - "id": "af8d03d7-5e55-44ab-8a67-461f3ab354ad", - "length": "147000", - "title": "Bleeding Love (X Factor performance)" - }, - "title": "Bleeding Love", - "track_or_recording_length": "147000" - }, - { - "id": "d697d372-b195-3dbc-829c-cd20b540a07b", - "length": "133000", - "number": "4", - "position": "4", - "recording": { - "id": "00277055-259a-4814-915a-1f0c50f56c42", - "length": "133000", - "title": "Relight My Fire (X Factor performance)" - }, - "title": "Relight My Fire", - "track_or_recording_length": "133000" - }, - { - "id": "92f2a9aa-0280-3cd7-8086-6dcd096ecee3", - "length": "135000", - "number": "5", - "position": "5", - "recording": { - "id": "63867fea-92b4-49c4-a9fb-5f8cca21a583", - "length": "135000", - "title": "Wicked Game (X Factor performance)" - }, - "title": "Wicked Game", - "track_or_recording_length": "135000" - }, - { - "id": "9c780adf-3761-34ee-a3be-253a8aa6c148", - "length": "149000", - "number": "6", - "position": "6", - "recording": { - "id": "b50c7890-21c1-46e9-8cfc-0d6d22d8acaf", - "length": "149000", - "title": "Thriller (X Factor performance)" - }, - "title": "Thriller", - "track_or_recording_length": "149000" - }, - { - "id": "a95e919b-6545-3e1d-a92d-36e49c514ec4", - "length": "147000", - "number": "7", - "position": "7", - "recording": { - "id": "5b067648-5a69-46c0-9c6d-599f9f394896", - "length": "147000", - "title": "Stay (X Factor performance)" - }, - "title": "Stay", - "track_or_recording_length": "147000" - }, - { - "id": "cfd3d47f-2638-3112-b025-cee33446db3d", - "length": "124000", - "number": "8", - "position": "8", - "recording": { - "id": "1d5ad7b7-3214-4955-b714-ea045569d0b9", - "length": "124000", - "title": "Total Eclipse of the Heart (X Factor performance)" - }, - "title": "Total Eclipse of the Heart", - "track_or_recording_length": "124000" - }, - { - "id": "1e7220b1-52b0-3713-b730-274ee004ecfb", - "length": "138000", - "number": "9", - "position": "9", - "recording": { - "id": "7d6c6270-4247-40d5-be7e-b916fbc3a694", - "length": "138000", - "title": "Back to Black (X Factor performance)" - }, - "title": "Back to Black", - "track_or_recording_length": "138000" - }, - { - "id": "a38c1813-4924-3d24-8a66-5a274bf7d49c", - "length": "133000", - "number": "10", - "position": "10", - "recording": { - "id": "ff9b1523-2d52-41c9-9435-0292820f62d8", - "length": "133000", - "title": "O Fortuna / Bat Out of Hell (medley) (X Factor performance)" - }, - "title": "O Fortuna / Bat Out of Hell (medley)", - "track_or_recording_length": "133000" - }, - { - "id": "a019c870-3665-3941-902b-303757922af2", - "length": "140000", - "number": "11", - "position": "11", - "recording": { - "id": "cd06b6f2-8775-4d1f-a919-4b81b8e14a74", - "length": "140000", - "title": "Bewitched (X Factor performance)" - }, - "title": "Bewitched", - "track_or_recording_length": "140000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-10-30" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 30th October" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-11-01", - "id": "b53eb897-c1f9-4e37-9779-b2ce4645c38e", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 16, - "track-list": [ - { - "id": "673124bc-882d-3362-9844-85243774f727", - "length": "140000", - "number": "1", - "position": "1", - "recording": { - "id": "a413e2f6-61e6-42fa-b455-c60c833fca79", - "length": "139000", - "title": "One Sweet Day (X Factor performance)" - }, - "title": "One Sweet Day", - "track_or_recording_length": "140000" - }, - { - "id": "b14a873b-5a84-3097-9a0b-f6ddb19bd40e", - "length": "131000", - "number": "2", - "position": "2", - "recording": { - "id": "286d564e-2897-43fd-b80a-d96920ffe526", - "length": "130000", - "title": "Airplanes (X Factor performance)" - }, - "title": "Airplanes", - "track_or_recording_length": "131000" - }, - { - "id": "cdb996e2-606b-34cf-bdf1-a8e579750bff", - "length": "137000", - "number": "3", - "position": "3", - "recording": { - "id": "29a9e1e2-4287-4e43-a415-b3c6f79e66a4", - "length": "137000", - "title": "It's a Man's, Man's, Man's World (X Factor performance)" - }, - "title": "It's a Man's Man's Man's World", - "track_or_recording_length": "137000" - }, - { - "id": "327c3b29-c99e-3227-a57b-250a33412940", - "length": "136000", - "number": "4", - "position": "4", - "recording": { - "id": "14f74908-ee03-420a-8382-e017ef351267", - "length": "136000", - "title": "When Love Takes Over (X Factor performance)" - }, - "title": "When Love Takes Over", - "track_or_recording_length": "136000" - }, - { - "id": "12d16aa3-04d2-373e-8bad-e7b0aac0250c", - "length": "123000", - "number": "5", - "position": "5", - "recording": { - "id": "c7942b55-bd7c-4f24-91fc-72d8dd08bcd1", - "length": "123000", - "title": "One (X Factor performance)" - }, - "title": "One", - "track_or_recording_length": "123000" - }, - { - "id": "93762836-718a-3b15-a2e1-b20190b3f6ea", - "length": "133000", - "number": "6", - "position": "6", - "recording": { - "id": "83d172ae-336f-440f-a61e-9474d7ffc780", - "length": "132000", - "title": "Sunny (X Factor performance)" - }, - "title": "Sunny", - "track_or_recording_length": "133000" - }, - { - "id": "29895574-8073-3f4e-93b5-47da608765f9", - "length": "127000", - "number": "7", - "position": "7", - "recording": { - "id": "3d20a117-b86d-4d29-8a7c-860838646fa1", - "length": "127000", - "title": "Teardrops (X Factor performance)" - }, - "title": "Teardrops", - "track_or_recording_length": "127000" - }, - { - "id": "75dfcdae-cc0d-34e9-8234-f35eb44aa912", - "length": "138000", - "number": "8", - "position": "8", - "recording": { - "id": "6c53e7f7-99c3-4600-80cc-0fe6c9b2ff67", - "length": "137000", - "title": "Just Dance (X Factor performance)" - }, - "title": "Just Dance", - "track_or_recording_length": "138000" - }, - { - "id": "ecf60479-75c0-3182-b418-d6f210d86284", - "length": "131000", - "number": "9", - "position": "9", - "recording": { - "id": "8843a1d4-ad00-4fa2-8319-0ab830005094", - "length": "131000", - "title": "Billionaire (X Factor performance)" - }, - "title": "Billionaire", - "track_or_recording_length": "131000" - }, - { - "id": "b461e034-54eb-30b5-adc6-fe651f361dc3", - "length": "138000", - "number": "10", - "position": "10", - "recording": { - "id": "54fe1a99-d06e-403a-8710-3789a173456b", - "length": "137000", - "title": "Mad World (X Factor performance)" - }, - "title": "Mad World", - "track_or_recording_length": "138000" - }, - { - "id": "3f8af48c-a284-37a7-b6e8-26df8733c835", - "length": "137000", - "number": "11", - "position": "11", - "recording": { - "id": "e2f094c6-0545-49cb-b305-3928f6d2e2ee", - "length": "137000", - "title": "We Built This City (X Factor performance)" - }, - "title": "We Built This City", - "track_or_recording_length": "137000" - }, - { - "id": "f22e20f6-7c41-3732-af0e-e975bbc7f0a0", - "length": "123000", - "number": "12", - "position": "12", - "recording": { - "id": "3f222121-7522-454d-832a-745e258a9cda", - "length": "123000", - "title": "Just Be Good to Green (X Factor performance)" - }, - "title": "Just Be Good to Me", - "track_or_recording_length": "123000" - }, - { - "id": "61bec3ae-c6a3-3afe-a043-e180ab445f42", - "length": "141000", - "number": "13", - "position": "13", - "recording": { - "id": "ec28873e-e4a2-4d2a-997b-0f78bcf07377", - "length": "140000", - "title": "Viva la Vida (X Factor performance)" - }, - "title": "Viva la Vida", - "track_or_recording_length": "141000" - }, - { - "id": "3e06f38a-446a-35da-9be9-a01deae117cc", - "length": "122000", - "number": "14", - "position": "14", - "recording": { - "id": "31c4275d-76e4-46f1-8c97-712838d11477", - "length": "122000", - "title": "Killing Me Softly (With His Song) (X Factor performance)" - }, - "title": "Killing Me Softly With His Song", - "track_or_recording_length": "122000" - }, - { - "id": "2046ad10-75d8-381d-a73e-bd5b7b51198d", - "length": "134000", - "number": "15", - "position": "15", - "recording": { - "id": "5ac42f81-f5f7-471a-88cb-57fe8fad46b9", - "length": "132000", - "title": "She Bangs / Love Shack (medley) (X Factor performance)" - }, - "title": "She Bangs / Love Shack", - "track_or_recording_length": "134000" - }, - { - "id": "d39615c4-f000-3de7-95c9-31a6040df736", - "length": "137000", - "number": "16", - "position": "16", - "recording": { - "id": "56bc88c6-b976-4064-b150-ba9b72e46c1f", - "length": "137000", - "title": "We Are the Champions (X Factor performance)" - }, - "title": "We Are the Champions", - "track_or_recording_length": "137000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-11-01" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 9th October" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-11-06", - "id": "2395e45c-46b6-4295-9087-92d39ae31ed0", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 10, - "track-list": [ - { - "id": "32eb20e4-b1e8-31b1-a9f4-6e6284e29eb9", - "length": "136000", - "number": "1", - "position": "1", - "recording": { - "id": "a9aae81b-a02b-4cdc-8cbf-170d3ef50218", - "length": "136000", - "title": "I'm a Believer / Hey Ya! (medley) (X Factor performance)" - }, - "title": "I'm a Believer / Hey Ya! (medley)", - "track_or_recording_length": "136000" - }, - { - "id": "09a21609-0d8e-34d8-8730-b3e9aaa06c5a", - "length": "154000", - "number": "2", - "position": "2", - "recording": { - "id": "3c0f029c-490f-47bb-a119-7c82f99c77be", - "length": "154000", - "title": "There You'll Be (X Factor performance)" - }, - "title": "There You'll Be", - "track_or_recording_length": "154000" - }, - { - "id": "b98c1ac5-c933-32ce-b13f-c3cd07ba1740", - "length": "152000", - "number": "3", - "position": "3", - "recording": { - "id": "d229e86f-e604-43cf-b326-84ddd313dfd6", - "length": "152000", - "title": "First Time Ever I Saw Your Face (X Factor performance)" - }, - "title": "First Time Ever I Saw Your Face", - "track_or_recording_length": "152000" - }, - { - "id": "b1dca3cd-035b-385c-a236-26da40130902", - "length": "144000", - "number": "4", - "position": "4", - "recording": { - "id": "4d0fdc31-70f4-4a88-9407-98dbf38b27f8", - "length": "144000", - "title": "I Don't Want to Miss a Thing (X Factor performance)" - }, - "title": "I Don't Want to Miss a Thing", - "track_or_recording_length": "144000" - }, - { - "id": "1fbe658c-f185-3867-bcc8-38a09d472c46", - "length": "157000", - "number": "5", - "position": "5", - "recording": { - "id": "ae3bc78a-c9ec-4ea4-b2d7-5900d50174ae", - "length": "157000", - "title": "Make You Feel My Love (X Factor performance)" - }, - "title": "Make You Feel My Love", - "track_or_recording_length": "157000" - }, - { - "id": "8bcf9a46-b80e-32a0-8e07-935c2146e636", - "length": "132000", - "number": "6", - "position": "6", - "recording": { - "id": "6ac17cff-60c9-431f-87df-8a6e17092a69", - "length": "132000", - "title": "Nothing Compares 2 U (X Factor performance)" - }, - "title": "Nothing Compares 2 U", - "track_or_recording_length": "132000" - }, - { - "id": "0a6dac38-200a-307d-a656-21aae92edd57", - "length": "141000", - "number": "7", - "position": "7", - "recording": { - "id": "fc326d18-e2e2-4db3-9165-01b88d457224", - "length": "141000", - "title": "Empire State of Mind, Parts I & II (medley) (X Factor performance)" - }, - "title": "Empire State of Mind, Parts I & II (medley)", - "track_or_recording_length": "141000" - }, - { - "id": "be8a69e3-207f-32f1-95a4-570a9455214a", - "length": "140000", - "number": "8", - "position": "8", - "recording": { - "id": "16b8fe8d-962c-4b9a-ab1d-847f81f3c76b", - "length": "140000", - "title": "Kids in America (X Factor performance)" - }, - "title": "Kids in America", - "track_or_recording_length": "140000" - }, - { - "id": "cc6aaa91-3ee4-3d1f-8b3f-4dd6682ea171", - "length": "156000", - "number": "9", - "position": "9", - "recording": { - "id": "e13047e1-2132-474f-8e94-a8b0e5ed41ab", - "length": "156000", - "title": "Viva Las Vegas / The Wonder of You (medley) (X Factor performance)" - }, - "title": "Viva Las Vegas / The Wonder of You (medley)", - "track_or_recording_length": "156000" - }, - { - "id": "db6ea923-286b-3120-9381-ca44905fd5cc", - "length": "147000", - "number": "10", - "position": "10", - "recording": { - "id": "73270a7b-7966-4bb0-8be7-315d5918026c", - "length": "147000", - "title": "Don't Speak (X Factor performance)" - }, - "title": "Don't Speak", - "track_or_recording_length": "147000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-11-06" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 6th November" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-11-27", - "id": "fc266bbc-9f2b-4073-9985-3c277558393a", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 14, - "track-list": [ - { - "id": "87219590-c4f4-3941-96ea-9bd658ad5cd5", - "length": "131000", - "number": "1", - "position": "1", - "recording": { - "id": "3a2e2ee1-7e40-4e19-955c-8b604bfef990", - "length": "131000", - "title": "All I Want Is You (X Factor performance)" - }, - "title": "All I Want Is You", - "track_or_recording_length": "131000" - }, - { - "id": "0d54a279-6204-3264-978a-55cd41f1f87f", - "length": "98000", - "number": "2", - "position": "2", - "recording": { - "id": "e006cb95-af18-47a4-90a0-9112034d6604", - "length": "98000", - "title": "I Love Rock 'n' Roll (X Factor performance)" - }, - "title": "I Love Rock 'n' Roll", - "track_or_recording_length": "98000" - }, - { - "id": "28398b8b-8ec6-38fa-853f-0d7b7b389aac", - "length": "138000", - "number": "3", - "position": "3", - "recording": { - "id": "04544ff3-56c5-4e11-9670-4c761b9af2e9", - "length": "138000", - "title": "I Still Haven't Found What I'm Looking For (X Factor performance)" - }, - "title": "I Still Haven't Found What I'm Looking For", - "track_or_recording_length": "138000" - }, - { - "id": "c8588602-c738-3216-9332-fe5e17f85d57", - "length": "116000", - "number": "4", - "position": "4", - "recording": { - "id": "d5fc56c7-7b35-4faf-9b24-e93cec31b05a", - "length": "116000", - "title": "Girlfriend (X Factor performance)" - }, - "title": "Girlfriend", - "track_or_recording_length": "116000" - }, - { - "id": "fb88d0ac-451d-3af9-acd7-38c312be990d", - "length": "99000", - "number": "5", - "position": "5", - "recording": { - "id": "6e149838-625c-49fc-bf0b-89d3f84d8a32", - "length": "99000", - "title": "Summer of '69 (X Factor performance)" - }, - "title": "Summer of '69", - "track_or_recording_length": "99000" - }, - { - "id": "4f59ee38-00e5-3495-b15d-d625cce9eef3", - "length": "105000", - "number": "6", - "position": "6", - "recording": { - "id": "b2996bbd-5ac5-4c26-90a5-550dced43f51", - "length": "105000", - "title": "Creep (X Factor performance)" - }, - "title": "Creep", - "track_or_recording_length": "105000" - }, - { - "id": "1cbcf94f-846b-31fe-823c-8d573bd23520", - "length": "118000", - "number": "7", - "position": "7", - "recording": { - "id": "dbefcc22-770a-406e-86cc-5fb0089fa2ab", - "length": "118000", - "title": "Sex on Fire (X Factor performance)" - }, - "title": "Sex on Fire", - "track_or_recording_length": "118000" - }, - { - "id": "73eff3c7-66fe-3e94-b09a-70d8f35c8b50", - "length": "99000", - "number": "8", - "position": "8", - "recording": { - "id": "619d7d7d-08b8-491d-96e9-e275664d64d0", - "length": "99000", - "title": "Brass in Pocket (X Factor performance)" - }, - "title": "Brass in Pocket", - "track_or_recording_length": "99000" - }, - { - "id": "10d75df7-8e21-3809-a2b5-3e4bad7998d0", - "length": "127000", - "number": "9", - "position": "9", - "recording": { - "id": "54f256fe-3d77-43c9-b8d4-da95bb88c754", - "length": "127000", - "title": "Nights in White Satin (X Factor performance)" - }, - "title": "Nights in White Satin", - "track_or_recording_length": "127000" - }, - { - "id": "71a4d8d5-6872-3850-bf63-b8abbe4449b7", - "length": "101000", - "number": "10", - "position": "10", - "recording": { - "id": "4d35e949-67ba-4c0c-9d27-7f08f5d39ff3", - "length": "101000", - "title": "Satisfaction (X Factor performance)" - }, - "title": "Satisfaction", - "track_or_recording_length": "101000" - }, - { - "id": "b5bc2c03-9eca-3ae3-83bf-eb4943a187c5", - "length": "109000", - "number": "11", - "position": "11", - "recording": { - "id": "03124214-46f7-4fca-8164-272df7512a71", - "length": "109000", - "title": "Walk This Way (X Factor performance)" - }, - "title": "Walk This Way", - "track_or_recording_length": "109000" - }, - { - "id": "4b1c5d9c-e51d-3c5e-98d3-9003ef2475ab", - "length": "117000", - "number": "12", - "position": "12", - "recording": { - "id": "3e909724-6bc2-4f27-8270-85396acff9d1", - "length": "117000", - "title": "You Are So Beautiful (X Factor performance)" - }, - "title": "You Are So Beautiful", - "track_or_recording_length": "117000" - }, - { - "id": "6358d4e3-d31e-37e3-b025-f545288c08ad", - "length": "106000", - "number": "13", - "position": "13", - "recording": { - "id": "95a4a925-6222-42ca-9e3f-d05a0abc9e35", - "length": "106000", - "title": "Addicted to Love (X Factor performance)" - }, - "title": "Addicted to Love", - "track_or_recording_length": "106000" - }, - { - "id": "845b2d05-bd8c-3128-9200-ace399388c47", - "length": "120000", - "number": "14", - "position": "14", - "recording": { - "id": "f6c6e935-57f1-41f7-9e05-9b22efaa0207", - "length": "120000", - "title": "Everybody Hurts (X Factor performance)" - }, - "title": "Everybody Hurts", - "track_or_recording_length": "120000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-11-27" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 27th November" - }, - { - "country": "GB", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2010-12-04", - "id": "aea5541a-2c7d-4a28-ab20-5d02beed86ec", - "medium-count": 1, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 10, - "track-list": [ - { - "id": "21e8203e-4b34-3c82-96f8-8b0ae10eeef8", - "length": "122000", - "number": "1", - "position": "1", - "recording": { - "id": "98765296-7b72-4b16-8f54-b49a90306df4", - "length": "122000", - "title": "Never Can Say Goodbye (X Factor performance)" - }, - "title": "Never Can Say Goodbye", - "track_or_recording_length": "122000" - }, - { - "id": "b2d2bdf1-b636-395e-b270-d37ef3475139", - "length": "144000", - "number": "2", - "position": "2", - "recording": { - "id": "35c38a70-d5aa-4fcd-96e9-9eaabe628d28", - "length": "144000", - "title": "You've Got the Love (X Factor performance)" - }, - "title": "You've Got the Love", - "track_or_recording_length": "144000" - }, - { - "id": "f9937d85-bd6c-3eb7-97bc-ed9bd679bce5", - "length": "136000", - "number": "3", - "position": "3", - "recording": { - "id": "d1a3dc21-ef24-48fa-8d49-2b31b64829f0", - "length": "136000", - "title": "Show Me Love (X Factor performance)" - }, - "title": "Show Me Love", - "track_or_recording_length": "136000" - }, - { - "id": "6b88493e-fabf-3212-b3a3-245cd41df90c", - "length": "149000", - "number": "4", - "position": "4", - "recording": { - "id": "3340c1bd-ff97-4b7c-ade7-ee69e69e9e80", - "length": "149000", - "title": "Nothin' on You (X Factor performance)" - }, - "title": "Nothin' on You", - "track_or_recording_length": "149000" - }, - { - "id": "5bddcde4-c1e5-31c0-b532-9334382c893a", - "length": "141000", - "number": "5", - "position": "5", - "recording": { - "id": "d8e2b486-bfd4-4e69-af86-17d16924d5aa", - "length": "141000", - "title": "Only Girl (in the World) (X Factor performance)" - }, - "title": "Only Girl (In the World)", - "track_or_recording_length": "141000" - }, - { - "id": "731de0d5-be2e-3673-a0e3-d482c6f6645b", - "length": "145000", - "number": "6", - "position": "6", - "recording": { - "id": "81a1ca81-65b5-468e-99e2-af4bbd988d16", - "length": "145000", - "title": "The Way We Were (X Factor performance)" - }, - "title": "The Way We Were", - "track_or_recording_length": "145000" - }, - { - "id": "3d49039e-039c-33dd-9064-7966e91b6567", - "length": "129000", - "number": "7", - "position": "7", - "recording": { - "id": "18a402b3-f863-467d-8df7-83773d84033c", - "length": "129000", - "title": "She's Always a Woman (X Factor performance)" - }, - "title": "She's Always a Woman", - "track_or_recording_length": "129000" - }, - { - "id": "1255e834-341a-3ef4-b710-a55b6fa9901a", - "length": "133000", - "number": "8", - "position": "8", - "recording": { - "id": "7aa62d74-ddc7-4247-a236-abacd14817ce", - "length": "133000", - "title": "Amazing Grace (X Factor performance)" - }, - "title": "Amazing Grace", - "track_or_recording_length": "133000" - }, - { - "id": "81e9ff4c-9d4b-310c-a30a-d37cb581ec3e", - "length": "145000", - "number": "9", - "position": "9", - "recording": { - "id": "adef5e4a-d972-41e2-935d-c719e17086d9", - "length": "145000", - "title": "Love the Way You Lie (X Factor performance)" - }, - "title": "Love the Way You Lie", - "track_or_recording_length": "145000" - }, - { - "id": "3a25b01b-bc1e-3592-ba3a-90faf4d52961", - "length": "141000", - "number": "10", - "position": "10", - "recording": { - "id": "83287113-b184-4b04-bf94-2e54acff4a1f", - "length": "141000", - "title": "Chasing Cars (X Factor performance)" - }, - "title": "Chasing Cars", - "track_or_recording_length": "141000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2010-12-04" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Saturday 4th December" - }, - { - "asin": "B005NB0WL8", - "barcode": "", - "country": "GB", - "cover-art-archive": { - "artwork": "true", - "back": "true", - "count": "3", - "front": "true" - }, - "date": "2011-11-21", - "id": "904fb4ba-dc92-43bc-a374-d4bda79e4068", - "medium-count": 2, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "8f42f35d-e5b7-3fb1-aacb-a84ca18e461e", - "length": "203000", - "number": "1", - "position": "1", - "recording": { - "id": "84893d6a-c767-44f5-ab98-4a2baabfc165", - "length": "201853", - "title": "Moves Like Jagger" - }, - "track_or_recording_length": "203000" - }, - { - "id": "7ac302fd-af08-3ae1-93e0-876bc7bf864e", - "length": "216000", - "number": "2", - "position": "2", - "recording": { - "id": "11294597-b4ac-4717-8e95-f99d665c1ece", - "length": "216000", - "title": "We Found Love" - }, - "title": "We Found Love (album version)", - "track_or_recording_length": "216000" - }, - { - "id": "35edfc39-d434-3030-923b-a8f5d0406819", - "length": "199000", - "number": "3", - "position": "3", - "recording": { - "id": "d9a5d65e-04b1-4bef-bb81-1c24f96cd396", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "199000" - }, - { - "id": "6a413b2a-1321-3c77-8328-fed161b60ba1", - "length": "230000", - "number": "4", - "position": "4", - "recording": { - "id": "a8956c11-749a-4fdb-885a-86542bcf204a", - "length": "230026", - "title": "Marry You" - }, - "track_or_recording_length": "230000" - }, - { - "id": "5d9b78d2-018f-36d6-b0f9-cb6781eca2f2", - "length": "216000", - "number": "5", - "position": "5", - "recording": { - "id": "a169f3c3-b6c6-40ef-a504-4a7b42d10dda", - "length": "215880", - "title": "Take a Chance on Me" - }, - "track_or_recording_length": "216000" - }, - { - "id": "c3941b58-e2f0-3894-8e28-81938a52f167", - "length": "214000", - "number": "6", - "position": "6", - "recording": { - "id": "be5350cb-2a2e-493a-ace6-e1953ea996c9", - "length": "214000", - "title": "Jar of Hearts" - }, - "track_or_recording_length": "214000" - }, - { - "id": "56094883-7675-35db-9fd7-7a867b4286bd", - "length": "232000", - "number": "7", - "position": "7", - "recording": { - "id": "964a3587-e980-42aa-a9c2-f19c03ef12dc", - "length": "232000", - "title": "Mr. Know It All" - }, - "track_or_recording_length": "232000" - }, - { - "id": "b323fbf4-cc16-31f2-8759-b38ce1f1e787", - "length": "202000", - "number": "8", - "position": "8", - "recording": { - "id": "51fe96c7-0fe0-49be-bd22-4906b8c3d327", - "length": "202000", - "title": "Heart Skips a Beat" - }, - "track_or_recording_length": "202000" - }, - { - "id": "1b4f04df-afb3-3539-919e-bb330efd97d0", - "length": "204000", - "number": "9", - "position": "9", - "recording": { - "id": "de06aab9-3ec7-49cb-a7b6-84a4a8e031b9", - "length": "203760", - "title": "Lightning" - }, - "track_or_recording_length": "204000" - }, - { - "id": "39dd5527-104c-316b-8aad-0d9a2bfb11b6", - "length": "188000", - "number": "10", - "position": "10", - "recording": { - "id": "1804640a-12fe-4059-be5c-8596bf943e42", - "length": "186173", - "title": "All About Tonight" - }, - "track_or_recording_length": "188000" - }, - { - "id": "8c3b49f5-a992-3045-ab5d-6fd061f6e343", - "length": "192000", - "number": "11", - "position": "11", - "recording": { - "id": "1795a939-37ef-479b-a6e7-5586de34f5c4", - "length": "192000", - "title": "All Fired Up" - }, - "track_or_recording_length": "192000" - }, - { - "id": "8e226f84-120f-38c8-bb9f-99a4a0c6b7fc", - "length": "321000", - "number": "12", - "position": "12", - "recording": { - "id": "38901d73-0118-4ed2-ac78-589e2a77af3c", - "length": "321000", - "title": "The Edge of Glory (radio edit)" - }, - "track_or_recording_length": "321000" - }, - { - "id": "1e6319fb-8e34-3178-8b81-ebc5aa995399", - "length": "193000", - "number": "13", - "position": "13", - "recording": { - "id": "eb5870b6-2bcb-471f-a249-f309be8be3b0", - "length": "193000", - "title": "Jealousy" - }, - "track_or_recording_length": "193000" - }, - { - "id": "f9f75829-2e52-3d7a-b897-497f6c0afde4", - "length": "222000", - "number": "14", - "position": "14", - "recording": { - "id": "fb52bdc6-5917-483f-999c-5940713d6958", - "length": "222000", - "title": "I Won't Let You Go" - }, - "track_or_recording_length": "222000" - }, - { - "id": "dc217652-8796-3e9e-b0a9-cbc0097b20e0", - "length": "184000", - "number": "15", - "position": "15", - "recording": { - "id": "8f6da363-7e29-4edc-8b80-a05e207af3c3", - "length": "184000", - "title": "You Need Me, I Don't Need You" - }, - "track_or_recording_length": "184000" - }, - { - "id": "ccecad5b-86a6-3cb7-bbe5-34660251f467", - "length": "208000", - "number": "16", - "position": "16", - "recording": { - "id": "28da4325-5afb-4289-b90b-d54dfcddc14f", - "length": "208000", - "title": "Cannonball" - }, - "track_or_recording_length": "208000" - }, - { - "id": "1bb52836-73fc-32a0-9937-95f48abf4caf", - "length": "242000", - "number": "17", - "position": "17", - "recording": { - "disambiguation": "radio edit", - "id": "bc5d81f8-853f-41c2-a7dd-a90b9fe51d99", - "length": "242000", - "title": "Video Games" - }, - "title": "Video Games (radio edit)", - "track_or_recording_length": "242000" - }, - { - "id": "43383167-b6ca-3f99-abec-7db2a346a095", - "length": "199000", - "number": "18", - "position": "18", - "recording": { - "id": "257218d1-6839-4bbf-9573-1755c74082a2", - "length": "198000", - "title": "Wherever You Will Go" - }, - "track_or_recording_length": "199000" - }, - { - "id": "1586de22-0bde-3c69-89d6-1c87774ac5b3", - "length": "291000", - "number": "19", - "position": "19", - "recording": { - "id": "cef4d7e6-5f96-40ad-8841-e870a06e36e1", - "length": "290000", - "title": "Iris" - }, - "track_or_recording_length": "291000" - }, - { - "id": "4acb35de-5118-3ee5-a26a-d19ee631fc70", - "length": "244000", - "number": "20", - "position": "20", - "recording": { - "id": "365b62f5-594f-45ef-b1d9-4327dbcc33e5", - "length": "244000", - "title": "Run for Your Life" - }, - "track_or_recording_length": "244000" - }, - { - "id": "d975d6e0-89b7-3fad-a668-d1fc993ac717", - "length": "267000", - "number": "21", - "position": "21", - "recording": { - "id": "1078bd2c-6c66-468c-b83d-389b6a3baf7b", - "length": "267000", - "title": "Lighthouse" - }, - "track_or_recording_length": "267000" - } - ] - }, - { - "format": "Digital Media", - "position": "2", - "track-count": 22, - "track-list": [ - { - "id": "db0066e1-d281-3ced-baa7-deec3334400f", - "length": "242106", - "number": "1", - "position": "1", - "recording": { - "id": "d1e0a99e-1894-457b-ba6a-985eeef4d0c4", - "length": "241386", - "title": "Set Fire to the Rain" - }, - "track_or_recording_length": "242106" - }, - { - "id": "ba20750b-92ff-3fc9-8fb4-cf39586b98eb", - "length": "234266", - "number": "2", - "position": "2", - "recording": { - "id": "d4e494e5-9680-42bb-b9fb-cf962e27fe46", - "length": "234266", - "title": "Read All About It (radio edit)" - }, - "track_or_recording_length": "234266" - }, - { - "id": "351d622b-db2d-3f65-8050-a3e00fe57b8d", - "length": "212453", - "number": "3", - "position": "3", - "recording": { - "id": "14707c5e-1b13-4e51-987c-68c90b15ff59", - "length": "212000", - "title": "Stereo Hearts" - }, - "track_or_recording_length": "212453" - }, - { - "id": "45d49c2b-4230-37ef-a5e7-ade6fa5698e0", - "length": "216066", - "number": "4", - "position": "4", - "recording": { - "id": "71f4a459-fa87-44d9-b21e-6b7b7f9514b0", - "length": "216040", - "title": "Earthquake (radio edit)" - }, - "title": "Earthquake", - "track_or_recording_length": "216066" - }, - { - "id": "a246d570-22b4-3c12-b08d-4097c95fae41", - "length": "192306", - "number": "5", - "position": "5", - "recording": { - "id": "63290c89-1240-4029-9476-9dcf383e1b43", - "length": "192306", - "title": "It Girl" - }, - "track_or_recording_length": "192306" - }, - { - "id": "9d4d61fb-e04f-3223-bfcb-87065405d510", - "length": "230413", - "number": "6", - "position": "6", - "recording": { - "id": "b6cf003a-961c-49ef-b8eb-3f90b4e42cba", - "length": "230413", - "title": "No Regrets (radio edit)" - }, - "track_or_recording_length": "230413" - }, - { - "id": "96a0d833-a596-39fd-926f-a6626c2322a9", - "length": "208680", - "number": "7", - "position": "7", - "recording": { - "id": "bedaee7e-3788-4eab-a1b8-0ab0bbbcde38", - "length": "208000", - "title": "Without You" - }, - "track_or_recording_length": "208680" - }, - { - "id": "b0ffe2a5-6549-37bb-8c63-9f5bbb8da160", - "length": "204866", - "number": "8", - "position": "8", - "recording": { - "disambiguation": "radio edit", - "id": "2032deda-d977-4bca-8014-e6050ddbf1f0", - "length": "206000", - "title": "Feel So Close" - }, - "title": "Feel So Close (radio edit)", - "track_or_recording_length": "204866" - }, - { - "id": "a850008b-e2cc-3b71-86a1-2f249751b607", - "length": "239053", - "number": "9", - "position": "9", - "recording": { - "disambiguation": "radio edit", - "id": "3b5e703b-d7b6-4f4d-a1d4-0c8521b9503f", - "length": "239000", - "title": "Collide" - }, - "track_or_recording_length": "239053" - }, - { - "id": "7574a24f-ed43-3254-ae78-f589715802aa", - "length": "205053", - "number": "10", - "position": "10", - "recording": { - "id": "0c0ba259-c09f-4f31-b8ca-5211df88a32b", - "length": "205053", - "title": "Stay Awake (radio edit)" - }, - "track_or_recording_length": "205053" - }, - { - "id": "7056b0ef-9cab-3066-acbc-0004a15f4651", - "length": "223440", - "number": "11", - "position": "11", - "recording": { - "id": "c6b749c4-0de2-4f6b-bb5a-10e0bcc7b4cb", - "length": "223440", - "title": "Party All Night (Sleep All Day)" - }, - "track_or_recording_length": "223440" - }, - { - "id": "8fa964ed-df8a-3571-ba25-0ee982bfdf10", - "length": "210346", - "number": "12", - "position": "12", - "recording": { - "id": "e5e54634-ab90-40a8-9c09-f2ff860e5f5b", - "length": "210346", - "title": "Off the Record (radio edit)" - }, - "track_or_recording_length": "210346" - }, - { - "id": "6942b6e0-9204-3767-b6cd-925cdb6e4005", - "length": "134133", - "number": "13", - "position": "13", - "recording": { - "id": "dd88c133-9971-4128-b8e8-a878f0e30f3b", - "length": "133000", - "title": "Loca People (UK radio edit)" - }, - "track_or_recording_length": "134133" - }, - { - "id": "56e318d7-7cfd-3759-87d4-9d1ac82beed5", - "length": "188053", - "number": "14", - "position": "14", - "recording": { - "id": "35928e76-ab98-42f1-b1d8-3f00e67a08ef", - "length": "188053", - "title": "Down With the Trumpets" - }, - "track_or_recording_length": "188053" - }, - { - "id": "36414e97-5f3c-3e40-aa50-a00d23f7ac3b", - "length": "226226", - "number": "15", - "position": "15", - "recording": { - "id": "ce028279-43b7-4d02-bffb-4d402b2f6f2f", - "length": "226226", - "title": "With Ur Love" - }, - "track_or_recording_length": "226226" - }, - { - "id": "01adc825-6218-3885-9342-ea6265c4ad3b", - "length": "190666", - "number": "16", - "position": "16", - "recording": { - "disambiguation": "edit", - "id": "94446d12-ecbb-4306-94d3-95d6f3be70dc", - "length": "190666", - "title": "Who\u2019s Laughing Now" - }, - "title": "Who's Laughing Now", - "track_or_recording_length": "190666" - }, - { - "id": "4861fb9c-e196-3b7e-827a-0db9a5adb5bc", - "length": "261866", - "number": "17", - "position": "17", - "recording": { - "disambiguation": "radio edit", - "id": "38a0e25d-40ce-4598-b1d1-254b3a84889a", - "length": "261746", - "title": "Cheers (Drink to That)" - }, - "track_or_recording_length": "261866" - }, - { - "id": "8ba9ecc9-ce57-321c-be72-c96aeae2d2af", - "length": "205120", - "number": "18", - "position": "18", - "recording": { - "id": "937477cc-853b-4861-8272-002e2ef43417", - "length": "204840", - "title": "Got 2 Luv U" - }, - "track_or_recording_length": "205120" - }, - { - "id": "1d41a236-f94c-3f60-aad3-3780e642eb34", - "length": "222133", - "number": "19", - "position": "19", - "recording": { - "id": "1b69d419-1573-41ae-855d-0550fdf7fc37", - "length": "222133", - "title": "Heaven (radio edit)" - }, - "title": "Heaven", - "track_or_recording_length": "222133" - }, - { - "id": "2c7e4a85-1df9-35d3-8224-b78b7fe0350a", - "length": "219586", - "number": "20", - "position": "20", - "recording": { - "id": "25309279-c307-4c2f-b51e-c23bd10db45f", - "length": "219586", - "title": "I Need (radio edit)" - }, - "track_or_recording_length": "219586" - }, - { - "id": "c0a44ba4-01dc-357a-b5e9-197f0a6543e0", - "length": "235720", - "number": "21", - "position": "21", - "recording": { - "id": "d5f289c6-0205-4865-b61d-c1ed53c0f990", - "length": "236000", - "title": "Don't Go (radio edit)" - }, - "track_or_recording_length": "235720" - }, - { - "id": "0bf3718b-d3e8-3a74-a182-3e1381e7a445", - "length": "226026", - "number": "22", - "position": "22", - "recording": { - "id": "9f198887-7fe1-4018-9fe6-8d7b05a13f13", - "length": "226026", - "title": "Teardrop" - }, - "title": "Teardrop (Children in Need 2011)", - "track_or_recording_length": "226026" - } - ] - } - ], - "packaging": "None", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2011-11-21" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Now That\u2019s What I Call Music! 80" - }, - { - "asin": "B005NB0WL8", - "barcode": "5099967858323", - "country": "GB", - "cover-art-archive": { - "artwork": "true", - "back": "true", - "count": "10", - "front": "true" - }, - "date": "2011-11-21", - "id": "b24986fa-3859-4c1c-ab33-484fcc003f47", - "medium-count": 2, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "0686023d-9b35-3129-b72c-7c004975385d", - "length": "203000", - "number": "1", - "position": "1", - "recording": { - "id": "84893d6a-c767-44f5-ab98-4a2baabfc165", - "length": "201853", - "title": "Moves Like Jagger" - }, - "track_or_recording_length": "203000" - }, - { - "id": "b2aa6717-be53-310b-a828-fc0630009e10", - "length": "216000", - "number": "2", - "position": "2", - "recording": { - "id": "11294597-b4ac-4717-8e95-f99d665c1ece", - "length": "216000", - "title": "We Found Love" - }, - "track_or_recording_length": "216000" - }, - { - "id": "2135cc6f-36d6-3c31-b936-ec2848bdee85", - "length": "199000", - "number": "3", - "position": "3", - "recording": { - "id": "d9a5d65e-04b1-4bef-bb81-1c24f96cd396", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "199000" - }, - { - "id": "919f7b47-0396-30c9-ba8b-328e9f525c72", - "length": "230000", - "number": "4", - "position": "4", - "recording": { - "id": "a8956c11-749a-4fdb-885a-86542bcf204a", - "length": "230026", - "title": "Marry You" - }, - "track_or_recording_length": "230000" - }, - { - "id": "07ea754e-9ccd-3986-b8f9-7dad6422d131", - "length": "216000", - "number": "5", - "position": "5", - "recording": { - "id": "a169f3c3-b6c6-40ef-a504-4a7b42d10dda", - "length": "215880", - "title": "Take a Chance on Me" - }, - "track_or_recording_length": "216000" - }, - { - "id": "0ad1bba1-4a01-368e-9383-f9bcc351c21a", - "length": "214000", - "number": "6", - "position": "6", - "recording": { - "id": "be5350cb-2a2e-493a-ace6-e1953ea996c9", - "length": "214000", - "title": "Jar of Hearts" - }, - "track_or_recording_length": "214000" - }, - { - "id": "e3470e59-3568-3225-90d5-e60c376893a5", - "length": "232000", - "number": "7", - "position": "7", - "recording": { - "id": "964a3587-e980-42aa-a9c2-f19c03ef12dc", - "length": "232000", - "title": "Mr. Know It All" - }, - "track_or_recording_length": "232000" - }, - { - "id": "a190f71f-6aa1-34f1-9a23-340ef6f3fa11", - "length": "202000", - "number": "8", - "position": "8", - "recording": { - "id": "51fe96c7-0fe0-49be-bd22-4906b8c3d327", - "length": "202000", - "title": "Heart Skips a Beat" - }, - "track_or_recording_length": "202000" - }, - { - "id": "de803161-3058-363a-8b66-31a74b463d29", - "length": "204000", - "number": "9", - "position": "9", - "recording": { - "id": "de06aab9-3ec7-49cb-a7b6-84a4a8e031b9", - "length": "203760", - "title": "Lightning" - }, - "track_or_recording_length": "204000" - }, - { - "id": "01d0e3c4-c55a-38d4-a392-2ba40d5ed968", - "length": "188000", - "number": "10", - "position": "10", - "recording": { - "id": "1804640a-12fe-4059-be5c-8596bf943e42", - "length": "186173", - "title": "All About Tonight" - }, - "track_or_recording_length": "188000" - }, - { - "id": "51e93017-630a-3f3f-a4de-49000b29ab93", - "length": "192000", - "number": "11", - "position": "11", - "recording": { - "id": "1795a939-37ef-479b-a6e7-5586de34f5c4", - "length": "192000", - "title": "All Fired Up" - }, - "track_or_recording_length": "192000" - }, - { - "id": "26735b09-6280-365c-a98e-d795e8374282", - "length": "321000", - "number": "12", - "position": "12", - "recording": { - "id": "38901d73-0118-4ed2-ac78-589e2a77af3c", - "length": "321000", - "title": "The Edge of Glory (radio edit)" - }, - "track_or_recording_length": "321000" - }, - { - "id": "d4ad9786-31c0-3452-8e11-f532b03978fe", - "length": "193000", - "number": "13", - "position": "13", - "recording": { - "id": "eb5870b6-2bcb-471f-a249-f309be8be3b0", - "length": "193000", - "title": "Jealousy" - }, - "track_or_recording_length": "193000" - }, - { - "id": "2e4861ff-5156-3609-bb7c-cb6f851eeeb2", - "length": "222000", - "number": "14", - "position": "14", - "recording": { - "id": "fb52bdc6-5917-483f-999c-5940713d6958", - "length": "222000", - "title": "I Won't Let You Go" - }, - "track_or_recording_length": "222000" - }, - { - "id": "c28eb6dc-e28f-3e55-b33a-c9d1c5bf101e", - "length": "184000", - "number": "15", - "position": "15", - "recording": { - "id": "8f6da363-7e29-4edc-8b80-a05e207af3c3", - "length": "184000", - "title": "You Need Me, I Don't Need You" - }, - "track_or_recording_length": "184000" - }, - { - "id": "947938c6-4000-32e1-a895-f828b03869ad", - "length": "208000", - "number": "16", - "position": "16", - "recording": { - "id": "28da4325-5afb-4289-b90b-d54dfcddc14f", - "length": "208000", - "title": "Cannonball" - }, - "track_or_recording_length": "208000" - }, - { - "id": "80457789-0ff6-305f-ab07-66ec5238899a", - "length": "242000", - "number": "17", - "position": "17", - "recording": { - "disambiguation": "radio edit", - "id": "bc5d81f8-853f-41c2-a7dd-a90b9fe51d99", - "length": "242000", - "title": "Video Games" - }, - "title": "Video Games (radio edit)", - "track_or_recording_length": "242000" - }, - { - "id": "508ebb00-0d2e-3acd-b69f-ec0661ab0d33", - "length": "199000", - "number": "18", - "position": "18", - "recording": { - "id": "257218d1-6839-4bbf-9573-1755c74082a2", - "length": "198000", - "title": "Wherever You Will Go" - }, - "track_or_recording_length": "199000" - }, - { - "id": "65f5cf88-1587-3f76-a978-475b40207e32", - "length": "291000", - "number": "19", - "position": "19", - "recording": { - "id": "cef4d7e6-5f96-40ad-8841-e870a06e36e1", - "length": "290000", - "title": "Iris" - }, - "track_or_recording_length": "291000" - }, - { - "id": "7bcc8a33-e978-366c-a47f-d5c284ceb38c", - "length": "244000", - "number": "20", - "position": "20", - "recording": { - "id": "365b62f5-594f-45ef-b1d9-4327dbcc33e5", - "length": "244000", - "title": "Run for Your Life" - }, - "track_or_recording_length": "244000" - }, - { - "id": "2e7b4288-dbf0-31b7-acc6-75bed6a0dcce", - "length": "267000", - "number": "21", - "position": "21", - "recording": { - "id": "1078bd2c-6c66-468c-b83d-389b6a3baf7b", - "length": "267000", - "title": "Lighthouse" - }, - "track_or_recording_length": "267000" - } - ] - }, - { - "format": "CD", - "position": "2", - "track-count": 22, - "track-list": [ - { - "id": "3a49c918-de22-3176-be17-7d66ea1970c6", - "length": "242106", - "number": "1", - "position": "1", - "recording": { - "id": "d1e0a99e-1894-457b-ba6a-985eeef4d0c4", - "length": "241386", - "title": "Set Fire to the Rain" - }, - "track_or_recording_length": "242106" - }, - { - "id": "39c4028a-1570-3926-bb30-75a695c8cdf6", - "length": "234266", - "number": "2", - "position": "2", - "recording": { - "id": "d4e494e5-9680-42bb-b9fb-cf962e27fe46", - "length": "234266", - "title": "Read All About It (radio edit)" - }, - "track_or_recording_length": "234266" - }, - { - "id": "41b2a191-c296-36f5-8d44-0fa1e24d1fa0", - "length": "212453", - "number": "3", - "position": "3", - "recording": { - "id": "14707c5e-1b13-4e51-987c-68c90b15ff59", - "length": "212000", - "title": "Stereo Hearts" - }, - "track_or_recording_length": "212453" - }, - { - "id": "c5112fc1-ec62-3707-801b-92b507885425", - "length": "216066", - "number": "4", - "position": "4", - "recording": { - "id": "71f4a459-fa87-44d9-b21e-6b7b7f9514b0", - "length": "216040", - "title": "Earthquake (radio edit)" - }, - "title": "Earthquake", - "track_or_recording_length": "216066" - }, - { - "id": "5195c92f-d670-3b35-9dff-1deed6ca56c8", - "length": "192306", - "number": "5", - "position": "5", - "recording": { - "id": "63290c89-1240-4029-9476-9dcf383e1b43", - "length": "192306", - "title": "It Girl" - }, - "track_or_recording_length": "192306" - }, - { - "id": "e1d848c0-e6d1-3ea9-beef-af2d3d27c1fe", - "length": "230413", - "number": "6", - "position": "6", - "recording": { - "id": "b6cf003a-961c-49ef-b8eb-3f90b4e42cba", - "length": "230413", - "title": "No Regrets (radio edit)" - }, - "track_or_recording_length": "230413" - }, - { - "id": "bb34d837-397f-3b2b-b50c-fbfd4273ee39", - "length": "208680", - "number": "7", - "position": "7", - "recording": { - "id": "bedaee7e-3788-4eab-a1b8-0ab0bbbcde38", - "length": "208000", - "title": "Without You" - }, - "track_or_recording_length": "208680" - }, - { - "id": "05bf9439-f843-35d5-8507-e47466b47e66", - "length": "204866", - "number": "8", - "position": "8", - "recording": { - "disambiguation": "radio edit", - "id": "2032deda-d977-4bca-8014-e6050ddbf1f0", - "length": "206000", - "title": "Feel So Close" - }, - "title": "Feel So Close (radio edit)", - "track_or_recording_length": "204866" - }, - { - "id": "df1c9a1d-730b-3ccb-9906-51bc60aafe9f", - "length": "239053", - "number": "9", - "position": "9", - "recording": { - "disambiguation": "radio edit", - "id": "3b5e703b-d7b6-4f4d-a1d4-0c8521b9503f", - "length": "239000", - "title": "Collide" - }, - "track_or_recording_length": "239053" - }, - { - "id": "e15ab1f5-39aa-3094-8b20-4991be51efb7", - "length": "205053", - "number": "10", - "position": "10", - "recording": { - "id": "0c0ba259-c09f-4f31-b8ca-5211df88a32b", - "length": "205053", - "title": "Stay Awake (radio edit)" - }, - "track_or_recording_length": "205053" - }, - { - "id": "85819d2b-7d53-3bf0-9631-73a7c78a69a7", - "length": "223440", - "number": "11", - "position": "11", - "recording": { - "id": "c6b749c4-0de2-4f6b-bb5a-10e0bcc7b4cb", - "length": "223440", - "title": "Party All Night (Sleep All Day)" - }, - "track_or_recording_length": "223440" - }, - { - "id": "dd310632-7683-3e1f-a018-b95a361f1f91", - "length": "210346", - "number": "12", - "position": "12", - "recording": { - "id": "e5e54634-ab90-40a8-9c09-f2ff860e5f5b", - "length": "210346", - "title": "Off the Record (radio edit)" - }, - "track_or_recording_length": "210346" - }, - { - "id": "2e4ec8bb-7ac3-3eab-98d5-bd12b741eac3", - "length": "134133", - "number": "13", - "position": "13", - "recording": { - "id": "dd88c133-9971-4128-b8e8-a878f0e30f3b", - "length": "133000", - "title": "Loca People (UK radio edit)" - }, - "track_or_recording_length": "134133" - }, - { - "id": "020290b9-a30c-38a4-83ee-80269b8ae7b2", - "length": "188053", - "number": "14", - "position": "14", - "recording": { - "id": "35928e76-ab98-42f1-b1d8-3f00e67a08ef", - "length": "188053", - "title": "Down With the Trumpets" - }, - "track_or_recording_length": "188053" - }, - { - "id": "ffb2d6a2-d54d-30c6-9f18-2d9cdd5be3eb", - "length": "226226", - "number": "15", - "position": "15", - "recording": { - "id": "ce028279-43b7-4d02-bffb-4d402b2f6f2f", - "length": "226226", - "title": "With Ur Love" - }, - "track_or_recording_length": "226226" - }, - { - "id": "d49f3af8-d6c5-3030-b86b-414eb74b6c94", - "length": "190666", - "number": "16", - "position": "16", - "recording": { - "disambiguation": "edit", - "id": "94446d12-ecbb-4306-94d3-95d6f3be70dc", - "length": "190666", - "title": "Who\u2019s Laughing Now" - }, - "title": "Who's Laughing Now", - "track_or_recording_length": "190666" - }, - { - "id": "0a06d4d0-2a42-390f-8749-b0827a80ba0b", - "length": "261866", - "number": "17", - "position": "17", - "recording": { - "disambiguation": "radio edit", - "id": "38a0e25d-40ce-4598-b1d1-254b3a84889a", - "length": "261746", - "title": "Cheers (Drink to That)" - }, - "track_or_recording_length": "261866" - }, - { - "id": "f78a0f68-d9b9-3ff9-9099-8102036b9d0b", - "length": "205120", - "number": "18", - "position": "18", - "recording": { - "id": "937477cc-853b-4861-8272-002e2ef43417", - "length": "204840", - "title": "Got 2 Luv U" - }, - "track_or_recording_length": "205120" - }, - { - "id": "4853ff01-5925-383d-bfdd-0ea3edaccb0b", - "length": "222133", - "number": "19", - "position": "19", - "recording": { - "id": "1b69d419-1573-41ae-855d-0550fdf7fc37", - "length": "222133", - "title": "Heaven (radio edit)" - }, - "title": "Heaven", - "track_or_recording_length": "222133" - }, - { - "id": "0b78fca9-9064-3bbf-ac7f-42e6561a3b4e", - "length": "219586", - "number": "20", - "position": "20", - "recording": { - "id": "25309279-c307-4c2f-b51e-c23bd10db45f", - "length": "219586", - "title": "I Need (radio edit)" - }, - "track_or_recording_length": "219586" - }, - { - "id": "6e44dd14-b2e7-3ff6-a7b8-2b8d4b6c7418", - "length": "235720", - "number": "21", - "position": "21", - "recording": { - "id": "d5f289c6-0205-4865-b61d-c1ed53c0f990", - "length": "236000", - "title": "Don't Go (radio edit)" - }, - "track_or_recording_length": "235720" - }, - { - "id": "3409b706-6dc7-3c51-8fe1-44db9542a80e", - "length": "226026", - "number": "22", - "position": "22", - "recording": { - "id": "9f198887-7fe1-4018-9fe6-8d7b05a13f13", - "length": "226026", - "title": "Teardrop" - }, - "title": "Teardrop (Children in Need 2011)", - "track_or_recording_length": "226026" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2011-11-21" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Now That\u2019s What I Call Music! 80" - }, - { - "barcode": "5052498922529", - "country": "SE", - "cover-art-archive": { - "artwork": "true", - "back": "true", - "count": "2", - "front": "true" - }, - "date": "2011-12-20", - "id": "1fdd44b1-75e6-4134-be5e-4a7dc554847a", - "medium-count": 2, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "ba9586c9-e872-3029-a5d3-701675a1f401", - "length": "242053", - "number": "1", - "position": "1", - "recording": { - "id": "d1e0a99e-1894-457b-ba6a-985eeef4d0c4", - "length": "241386", - "title": "Set Fire to the Rain" - }, - "track_or_recording_length": "242053" - }, - { - "id": "58d22401-cad2-36ce-a7aa-f1b9cfd346ad", - "length": "201960", - "number": "2", - "position": "2", - "recording": { - "id": "84893d6a-c767-44f5-ab98-4a2baabfc165", - "length": "201853", - "title": "Moves Like Jagger" - }, - "track_or_recording_length": "201960" - }, - { - "id": "17e77300-5f25-3805-8539-725a67f87271", - "length": "222080", - "number": "3", - "position": "3", - "recording": { - "id": "00e9622f-434e-4089-92d1-3fc3b6493383", - "length": "222080", - "title": "Call My Name" - }, - "track_or_recording_length": "222080" - }, - { - "id": "c841bb1c-adf9-3602-a682-de3dafad158a", - "length": "194773", - "number": "4", - "position": "4", - "recording": { - "id": "a3a27974-93c1-403b-aff7-fab584e76add", - "length": "195000", - "title": "Satan i gatan" - }, - "title": "Satan I Gatan", - "track_or_recording_length": "194773" - }, - { - "id": "b0544eb7-23cb-309a-97f0-ef48b2daefa8", - "length": "225400", - "number": "5", - "position": "5", - "recording": { - "id": "90d273e0-4c9a-4f75-b743-f5dfe6d3fdf2", - "length": "225400", - "title": "Criminal" - }, - "track_or_recording_length": "225400" - }, - { - "id": "b5238717-1c01-3f81-9ead-9e91266081fb", - "length": "212573", - "number": "6", - "position": "6", - "recording": { - "id": "14707c5e-1b13-4e51-987c-68c90b15ff59", - "length": "212000", - "title": "Stereo Hearts" - }, - "track_or_recording_length": "212573" - }, - { - "id": "19f2fe90-71b5-3700-9383-98dd53019cf3", - "length": "190013", - "number": "7", - "position": "7", - "recording": { - "id": "49d776b3-1a64-4177-a5fb-90a904cf7e46", - "length": "190160", - "title": "When We Stand Together" - }, - "track_or_recording_length": "190013" - }, - { - "id": "4cc66b24-7b54-3487-8fe3-979f7bdaf0b7", - "length": "199333", - "number": "8", - "position": "8", - "recording": { - "id": "0673601b-3783-4230-ae18-b38d5f609140", - "length": "199333", - "title": "You Learn" - }, - "track_or_recording_length": "199333" - }, - { - "id": "2f67461b-00fc-331a-a462-2f9e29324491", - "length": "232000", - "number": "9", - "position": "9", - "recording": { - "id": "ec8a7e23-d506-4115-9541-5f02329c31d6", - "length": "231000", - "title": "Mr. Know It All" - }, - "track_or_recording_length": "232000" - }, - { - "id": "e49c789f-443b-3406-a500-ab5e1af75c5d", - "length": "214760", - "number": "10", - "position": "10", - "recording": { - "id": "e3537888-c49d-4f38-a531-8a2516da1d24", - "length": "216440", - "title": "Just a Kiss" - }, - "track_or_recording_length": "214760" - }, - { - "id": "6edeb0bb-0e5f-31d4-8696-bf1d17321b30", - "length": "230080", - "number": "11", - "position": "11", - "recording": { - "id": "a8956c11-749a-4fdb-885a-86542bcf204a", - "length": "230026", - "title": "Marry You" - }, - "track_or_recording_length": "230080" - }, - { - "id": "91c88ef4-a3b6-3558-9f20-7a64f57012bf", - "length": "224386", - "number": "12", - "position": "12", - "recording": { - "id": "ccc104e9-c433-4127-b698-8d6e2a418704", - "length": "223826", - "title": "Papi" - }, - "track_or_recording_length": "224386" - }, - { - "id": "670cf224-a9e9-3295-bd39-4e60101226f4", - "length": "229506", - "number": "13", - "position": "13", - "recording": { - "id": "5f0f2e88-f707-4f5c-a124-f24a53adb4be", - "length": "229506", - "title": "Don't Go Breaking My Heart" - }, - "title": "Don\u2019t Go Breaking My Heart", - "track_or_recording_length": "229506" - }, - { - "id": "a8964707-84c5-3f09-9617-61856e884675", - "length": "229813", - "number": "14", - "position": "14", - "recording": { - "id": "5fd65305-493b-437a-b1ca-e9dccddecd05", - "length": "229813", - "title": "Sober (original version)" - }, - "title": "Sober", - "track_or_recording_length": "229813" - }, - { - "id": "ae6dacb6-9dc9-3060-9542-fcb3f6ae7b8c", - "length": "199773", - "number": "15", - "position": "15", - "recording": { - "id": "8a4a74b0-0de7-4939-9dd3-fc9242622cc3", - "length": "199773", - "title": "Hotter Than Fire" - }, - "track_or_recording_length": "199773" - }, - { - "id": "bca41f90-204a-378a-98d6-a50035742e7c", - "length": "200213", - "number": "16", - "position": "16", - "recording": { - "id": "d9a5d65e-04b1-4bef-bb81-1c24f96cd396", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "200213" - }, - { - "id": "cde990de-2c4a-3e5b-add9-25f5b06ee58e", - "length": "199920", - "number": "17", - "position": "17", - "recording": { - "id": "9d0dffbe-3240-4770-b001-77f1409d7271", - "length": "200000", - "title": "Tonight Tonight" - }, - "track_or_recording_length": "199920" - }, - { - "id": "eef23906-1e77-3a3e-b4d0-9c0a10d849d7", - "length": "225186", - "number": "18", - "position": "18", - "recording": { - "id": "44214bff-a765-4541-b786-245a265abb48", - "length": "225186", - "title": "Wish You Were Here" - }, - "track_or_recording_length": "225186" - }, - { - "id": "b341ee7c-8476-365c-bcb8-f986e6f34a54", - "length": "223253", - "number": "19", - "position": "19", - "recording": { - "id": "218d546e-35cd-4a3f-8704-ee50b54c4b94", - "length": "223253", - "title": "I Won't Let You Go" - }, - "title": "I Won\u2019t Let You Go", - "track_or_recording_length": "223253" - }, - { - "id": "1aeb5f84-6d10-3161-ba6e-ea9c9670da49", - "length": "234546", - "number": "20", - "position": "20", - "recording": { - "id": "8755bef0-a5bf-4ee7-9e0d-99c9def9bae5", - "length": "234546", - "title": "Walking Aimlessly" - }, - "track_or_recording_length": "234546" - }, - { - "id": "f97e1e3f-4a17-3adb-828b-fd8dbf3f2e9d", - "length": "227560", - "number": "21", - "position": "21", - "recording": { - "id": "d25ac569-ec2b-401f-88ea-6daf1d27e3bc", - "length": "227560", - "title": "G\u00f6r Mig Till Din Man" - }, - "title": "G\u00f6r mig till din man", - "track_or_recording_length": "227560" - } - ] - }, - { - "format": "CD", - "position": "2", - "track-count": 21, - "track-list": [ - { - "id": "8a578658-6602-35f8-bba1-f6781cff9461", - "length": "216693", - "number": "1", - "position": "1", - "recording": { - "id": "11294597-b4ac-4717-8e95-f99d665c1ece", - "length": "216000", - "title": "We Found Love" - }, - "track_or_recording_length": "216693" - }, - { - "id": "125c0656-318a-3fbd-85e4-20a825d1354e", - "length": "212106", - "number": "2", - "position": "2", - "recording": { - "id": "6c0b45ba-399b-4e54-ba82-fdd2515ffbba", - "length": "212000", - "title": "Marry the Night (David Jost & Twin radio mix)" - }, - "title": "Marry the Night (David Jost Twin radio remix)", - "track_or_recording_length": "212106" - }, - { - "id": "6c7a71be-e2dc-3d93-b557-b4ea4e98ad00", - "length": "198413", - "number": "3", - "position": "3", - "recording": { - "disambiguation": "radio edit", - "id": "6528ab6c-74ca-41d8-8eb8-9bb61c82a78f", - "length": "199000", - "title": "Levels" - }, - "track_or_recording_length": "198413" - }, - { - "id": "572f36ed-3e38-3b75-91c5-6947b05415c1", - "length": "248013", - "number": "4", - "position": "4", - "recording": { - "id": "27a3e84a-bdae-4fc3-9440-218371c6143d", - "length": "247000", - "title": "Good Feeling" - }, - "track_or_recording_length": "248013" - }, - { - "id": "f01a0ecd-da72-3f1c-aab5-bf1d44e2f813", - "length": "221346", - "number": "5", - "position": "5", - "recording": { - "id": "8194e896-e629-44f5-ba54-1ad0958f4b40", - "length": "221346", - "title": "Hangover" - }, - "track_or_recording_length": "221346" - }, - { - "id": "4b83a3db-91e2-3338-8a5b-39db4d5bc911", - "length": "229840", - "number": "6", - "position": "6", - "recording": { - "id": "a006dcb5-2ab1-407a-b3eb-083ca2ace162", - "length": "228120", - "title": "International Love" - }, - "track_or_recording_length": "229840" - }, - { - "id": "45cb110c-e67b-3f80-966b-c343c185568c", - "length": "221266", - "number": "7", - "position": "7", - "recording": { - "id": "717074df-57ab-4027-b403-97a670718128", - "length": "221266", - "title": "Maraca" - }, - "track_or_recording_length": "221266" - }, - { - "id": "6637e1e6-a50f-393e-979b-574077f029e8", - "length": "219160", - "number": "8", - "position": "8", - "recording": { - "id": "ecbe6241-f1c7-4157-9a95-d9a52aa2ef6a", - "length": "219160", - "title": "Made Of" - }, - "track_or_recording_length": "219160" - }, - { - "id": "58e3b775-a48c-397a-84cb-85e71e412fec", - "length": "190160", - "number": "9", - "position": "9", - "recording": { - "id": "017b2f78-eb9e-409b-bef6-05a773d4ab9f", - "length": "188000", - "title": "It Girl" - }, - "track_or_recording_length": "190160" - }, - { - "id": "125bc1df-90d1-35c3-a209-27a4355b3797", - "length": "213480", - "number": "10", - "position": "10", - "recording": { - "id": "a9717748-a4d6-4dc4-83d5-1b75ad67815b", - "length": "212906", - "title": "Fly" - }, - "track_or_recording_length": "213480" - }, - { - "id": "a8f131f8-5b70-3474-8d49-e26c19d3c8c5", - "length": "205133", - "number": "11", - "position": "11", - "recording": { - "id": "937477cc-853b-4861-8272-002e2ef43417", - "length": "204840", - "title": "Got 2 Luv U" - }, - "track_or_recording_length": "205133" - }, - { - "id": "2d6e736d-76d9-3074-8701-42638069b923", - "length": "253133", - "number": "12", - "position": "12", - "recording": { - "id": "8780fcad-e0ca-4b51-b5b6-e5aa1afd9546", - "length": "253133", - "title": "Naughty Naughty" - }, - "track_or_recording_length": "253133" - }, - { - "id": "380750db-50c4-3f84-b4b1-775f7e5ace79", - "length": "226066", - "number": "13", - "position": "13", - "recording": { - "id": "17b91cb6-e4cb-4584-9084-1be04312646d", - "length": "225133", - "title": "In the Dark" - }, - "track_or_recording_length": "226066" - }, - { - "id": "e54951a7-48bf-32d2-9f7e-262d267898ee", - "length": "239480", - "number": "14", - "position": "14", - "recording": { - "disambiguation": "radio edit", - "id": "3b5e703b-d7b6-4f4d-a1d4-0c8521b9503f", - "length": "239000", - "title": "Collide" - }, - "track_or_recording_length": "239480" - }, - { - "id": "32dc0b7b-c398-3ff8-a26b-041962d8b4af", - "length": "220906", - "number": "15", - "position": "15", - "recording": { - "id": "1b69d419-1573-41ae-855d-0550fdf7fc37", - "length": "222133", - "title": "Heaven (radio edit)" - }, - "title": "Heaven", - "track_or_recording_length": "220906" - }, - { - "id": "3237546a-4e92-3d39-8c0f-808424dcf4b4", - "length": "214066", - "number": "16", - "position": "16", - "recording": { - "id": "8b83cc37-a6ea-458a-98a5-e5cf5270de80", - "length": "215000", - "title": "You Make Me Feel\u2026" - }, - "title": "You Make Me Feel", - "track_or_recording_length": "214066" - }, - { - "id": "59c39ef6-3655-3565-9234-7514c0898f75", - "length": "234506", - "number": "17", - "position": "17", - "recording": { - "id": "c2e78500-1637-41bf-8a2a-c49fe0335f2b", - "length": "234506", - "title": "Jag Gr\u00e5ter Bara I Regnet" - }, - "track_or_recording_length": "234506" - }, - { - "id": "779b92ec-65cb-31c6-8409-7ef870374cf3", - "length": "204106", - "number": "18", - "position": "18", - "recording": { - "id": "1b4d5a87-107f-40fe-b2f3-fcd05b123ef0", - "length": "204106", - "title": "N\u00e4r jag g\u00e5r ner" - }, - "title": "N\u00e4r Jag G\u00e5r Ner", - "track_or_recording_length": "204106" - }, - { - "id": "5395ebff-c904-380a-8aac-8dfd032dbdfc", - "length": "251666", - "number": "19", - "position": "19", - "recording": { - "id": "ba6e71b4-09e6-41ab-a4b1-cbc834bf3ad2", - "length": "251666", - "title": "Allt Gr\u00f6nt" - }, - "track_or_recording_length": "251666" - }, - { - "id": "42fa9bfd-9665-3645-9cc7-770e8b677767", - "length": "212586", - "number": "20", - "position": "20", - "recording": { - "id": "e0260f1f-3d70-41ee-829c-e42544b924c4", - "length": "212000", - "title": "Vart jag mig i v\u00e4rlden v\u00e4nder" - }, - "title": "Vart Jag Mig I V\u00e4rlden V\u00e4nder", - "track_or_recording_length": "212586" - }, - { - "id": "48dec943-11c6-3e60-8503-14c605a85441", - "length": "214706", - "number": "21", - "position": "21", - "recording": { - "id": "0d2ddc31-b487-46af-a5e1-2cfe9d627779", - "length": "214706", - "title": "Krossa Alla F\u00f6nster" - }, - "track_or_recording_length": "214706" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "23d10872-f5ae-3f0c-bf55-332788a16ecb", - "iso-3166-1-code-list": [ - "SE" - ], - "name": "Sweden", - "sort-name": "Sweden" - }, - "date": "2011-12-20" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Absolute Music 68" - }, - { - "asin": "B006VBA354", - "barcode": "5099995578828", - "country": "NL", - "cover-art-archive": { - "artwork": "true", - "back": "true", - "count": "2", - "front": "true" - }, - "date": "2012-02-03", - "id": "911e8c8d-53c6-4272-a3ee-4faff266a05b", - "medium-count": 2, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "14ef7fad-6ea1-3543-b69b-6c49c69e431c", - "length": "260693", - "number": "1", - "position": "1", - "recording": { - "id": "93e29989-8309-4d6d-a515-4f92b347cb81", - "length": "260693", - "title": "Paradise" - }, - "track_or_recording_length": "260693" - }, - { - "id": "528726b3-80ab-32b4-98e8-120bbd76d098", - "length": "168066", - "number": "2", - "position": "2", - "recording": { - "id": "f04f2b7a-29a2-4df2-a099-5a06712db862", - "length": "166000", - "title": "Ai se eu te pego!" - }, - "title": "Ai se eu te pego (Nooossaa!)", - "track_or_recording_length": "168066" - }, - { - "id": "a06e8864-e7f5-3f53-8209-ef23522de69a", - "length": "208880", - "number": "3", - "position": "3", - "recording": { - "id": "3fb3f3cc-0472-4a85-bd4f-d9098e938ca2", - "length": "207000", - "title": "Ode to the Bouncer" - }, - "track_or_recording_length": "208880" - }, - { - "id": "bfa432d4-852b-3635-be9a-b0fed30be55a", - "length": "261146", - "number": "4", - "position": "4", - "recording": { - "id": "17eb8cd6-7bb0-4579-90af-dc38c1b3fc6a", - "length": "261000", - "title": "The A Team" - }, - "track_or_recording_length": "261146" - }, - { - "id": "e58d4300-145a-396f-b643-5d69eb000f30", - "length": "201573", - "number": "5", - "position": "5", - "recording": { - "id": "275967cc-eadc-4e53-9276-97b834a0ed06", - "length": "201000", - "title": "Skinny Love" - }, - "track_or_recording_length": "201573" - }, - { - "id": "817981bb-0afe-306e-96b2-fc9106b5cc51", - "length": "201706", - "number": "6", - "position": "6", - "recording": { - "id": "c8200a2c-fbae-4c01-be04-94818a069364", - "length": "199480", - "title": "Sexy and I Know It" - }, - "track_or_recording_length": "201706" - }, - { - "id": "6dee3ec6-2bee-335e-b4c1-c9c75355b073", - "length": "224053", - "number": "7", - "position": "7", - "recording": { - "id": "93bcbeed-f8c8-47d4-8c00-c0c6f47c5932", - "length": "221826", - "title": "Bagagedrager" - }, - "track_or_recording_length": "224053" - }, - { - "id": "ee88c053-28c6-3567-b12c-c064707fa7e3", - "length": "216946", - "number": "8", - "position": "8", - "recording": { - "id": "8880c1d8-1e66-4ea1-8231-31297c72d4e8", - "length": "216946", - "title": "I Follow Rivers (The Magician remix)" - }, - "track_or_recording_length": "216946" - }, - { - "id": "a2c04992-9ef5-3d14-8b0c-59c8265f958f", - "length": "209440", - "number": "9", - "position": "9", - "recording": { - "id": "95495197-8e3c-4fa2-8091-bf5f39351f10", - "length": "207000", - "title": "Young, Wild & Free" - }, - "track_or_recording_length": "209440" - }, - { - "id": "a62e61a4-69cd-3c7c-9e4d-d6bfe43fb81b", - "length": "221053", - "number": "10", - "position": "10", - "recording": { - "id": "8c92cbb7-5682-46d7-abb6-8b8482fb0af0", - "length": "221053", - "title": "What Have You Done" - }, - "track_or_recording_length": "221053" - }, - { - "id": "f36181e6-530e-39ca-99f2-e3bfac375aab", - "length": "231253", - "number": "11", - "position": "11", - "recording": { - "id": "8b792e35-e57b-41cc-92be-af5ccb0cfff9", - "length": "231253", - "title": "DoLuv2LuvU" - }, - "track_or_recording_length": "231253" - }, - { - "id": "bad458be-2712-351a-9602-71013eecf3bc", - "length": "192000", - "number": "12", - "position": "12", - "recording": { - "id": "49d776b3-1a64-4177-a5fb-90a904cf7e46", - "length": "190160", - "title": "When We Stand Together" - }, - "track_or_recording_length": "192000" - }, - { - "id": "72c62517-b1ed-30e7-85fb-c0160a4077ca", - "length": "170626", - "number": "13", - "position": "13", - "recording": { - "id": "4d4fb90d-823e-453b-8633-c278b29f6923", - "length": "169000", - "title": "Our Day Will Come" - }, - "track_or_recording_length": "170626" - }, - { - "id": "26c767cc-9f78-3298-8a76-a593fcfe1f54", - "length": "205533", - "number": "14", - "position": "14", - "recording": { - "id": "68fc3b1d-6079-492a-b501-e063cdd14267", - "length": "205533", - "title": "Feel So Close" - }, - "track_or_recording_length": "205533" - }, - { - "id": "7b7aee74-f5f9-3b66-a107-fb863d16f92b", - "length": "208613", - "number": "15", - "position": "15", - "recording": { - "id": "79dd4af9-21ca-46be-a703-0dbc879cac68", - "length": "208613", - "title": "Wil je niet nog 1 nacht" - }, - "track_or_recording_length": "208613" - }, - { - "id": "e5cdda46-b145-3ccf-a1aa-65f6b45b4c51", - "length": "229266", - "number": "16", - "position": "16", - "recording": { - "id": "a006dcb5-2ab1-407a-b3eb-083ca2ace162", - "length": "228120", - "title": "International Love" - }, - "track_or_recording_length": "229266" - }, - { - "id": "06b4ffa7-580e-323c-93e7-e137da61481d", - "length": "305333", - "number": "17", - "position": "17", - "recording": { - "id": "bf10fdc2-0550-4ed7-8227-eb4001fcb767", - "length": "305333", - "title": "Home" - }, - "track_or_recording_length": "305333" - }, - { - "id": "df0a954e-64c5-3925-ad7a-c8d24a1f134a", - "length": "225400", - "number": "18", - "position": "18", - "recording": { - "id": "6ee6c167-44fc-4f2f-9d3a-f00da94d1e83", - "length": "225400", - "title": "Sweeter" - }, - "track_or_recording_length": "225400" - }, - { - "id": "38db2402-1ce3-349e-a0b5-2fb3f8d2dba3", - "length": "232186", - "number": "19", - "position": "19", - "recording": { - "id": "067e16f4-0570-4c05-9e01-7179017bab69", - "length": "232186", - "title": "The Golden Age" - }, - "track_or_recording_length": "232186" - }, - { - "id": "73c5d0c4-d7ad-3f57-92f1-a7bcfcc053cc", - "length": "214613", - "number": "20", - "position": "20", - "recording": { - "id": "683395ee-25b2-4e9a-91e7-ba1cf0f3702d", - "length": "214613", - "title": "Animal" - }, - "track_or_recording_length": "214613" - }, - { - "id": "0f3f8a84-cd36-3d0f-8ba5-94a77e9e1402", - "length": "218720", - "number": "21", - "position": "21", - "recording": { - "id": "42958988-d269-4848-94e3-b1fe89bd6d73", - "length": "218720", - "title": "Een nieuwe dag" - }, - "track_or_recording_length": "218720" - } - ] - }, - { - "format": "CD", - "position": "2", - "track-count": 21, - "track-list": [ - { - "id": "a63f5555-9c0c-3d1f-8d07-207349046fe0", - "length": "216893", - "number": "1", - "position": "1", - "recording": { - "id": "11294597-b4ac-4717-8e95-f99d665c1ece", - "length": "216000", - "title": "We Found Love" - }, - "track_or_recording_length": "216893" - }, - { - "id": "ca3479f8-a4b4-3d46-a815-d8ced7fcb156", - "length": "230040", - "number": "2", - "position": "2", - "recording": { - "id": "2d6f51c6-afc5-457e-9c58-689679c08d30", - "length": "227000", - "title": "The One That Got Away" - }, - "track_or_recording_length": "230040" - }, - { - "id": "49106ce9-755d-3d20-8aee-22d6f5a34fef", - "length": "170493", - "number": "3", - "position": "3", - "recording": { - "id": "6560830b-66ac-471d-a364-3763fdbe0954", - "length": "170493", - "title": "Epic" - }, - "track_or_recording_length": "170493" - }, - { - "id": "9281c1d6-d906-3aca-91b0-64380a83a641", - "length": "209386", - "number": "4", - "position": "4", - "recording": { - "id": "bedaee7e-3788-4eab-a1b8-0ab0bbbcde38", - "length": "208000", - "title": "Without You" - }, - "track_or_recording_length": "209386" - }, - { - "id": "9730fc25-795a-36b5-9fa7-c6e451e4109e", - "length": "222920", - "number": "5", - "position": "5", - "recording": { - "id": "797ae656-81d4-4d89-bddb-eca56f77ba72", - "length": "223266", - "title": "Rumour Has It" - }, - "track_or_recording_length": "222920" - }, - { - "id": "12a139ef-73e7-3e21-8246-1d14b759343a", - "length": "231546", - "number": "6", - "position": "6", - "recording": { - "id": "50b5aec2-5fcc-455e-a72e-9e94b4d0ebec", - "length": "230000", - "title": "Nergens zonder jou" - }, - "track_or_recording_length": "231546" - }, - { - "id": "8fcf6ec4-356a-3ad0-8665-64b172b760da", - "length": "233000", - "number": "7", - "position": "7", - "recording": { - "id": "bc4abc41-2f25-4eff-a624-9a2984b2f1f2", - "length": "231493", - "title": "Domino" - }, - "track_or_recording_length": "233000" - }, - { - "id": "c877c9f0-7df5-3fa5-ab15-30a37545245d", - "length": "178493", - "number": "8", - "position": "8", - "recording": { - "id": "4e98fe6f-bd61-427d-a611-e370cc34389b", - "length": "177000", - "title": "Antidote (radio edit)" - }, - "title": "Antidote", - "track_or_recording_length": "178493" - }, - { - "id": "cfe2d0f0-5283-3d7d-911b-94a0d495db06", - "length": "245893", - "number": "9", - "position": "9", - "recording": { - "id": "04edb8f3-ff73-40c7-ac8e-97c219f65025", - "length": "244000", - "title": "Hangover" - }, - "track_or_recording_length": "245893" - }, - { - "id": "2b8f6c89-2bf2-3280-af59-b5af5fc09260", - "length": "183226", - "number": "10", - "position": "10", - "recording": { - "id": "d56158c1-2b7f-400f-b67f-63bd50e19282", - "length": "181720", - "title": "Again and Again" - }, - "track_or_recording_length": "183226" - }, - { - "id": "cd355f14-caca-345f-b471-652e4b64e2ee", - "length": "277146", - "number": "11", - "position": "11", - "recording": { - "id": "2af002e1-cf3a-4d58-97aa-ee57874d9024", - "length": "277146", - "title": "Meer kan het niet zijn" - }, - "track_or_recording_length": "277146" - }, - { - "id": "c73b3b0a-4a70-305b-ad8a-16e4a7bf9240", - "length": "248560", - "number": "12", - "position": "12", - "recording": { - "id": "5b7f191f-3203-4f60-815f-86b706f48c55", - "length": "248560", - "title": "Love Suicide" - }, - "track_or_recording_length": "248560" - }, - { - "id": "089cc85c-d353-3543-b366-9c493f564faf", - "length": "237600", - "number": "13", - "position": "13", - "recording": { - "id": "b0e00368-9cd9-47da-bc59-b33bdaa99dcb", - "length": "237600", - "title": "Young Ones" - }, - "track_or_recording_length": "237600" - }, - { - "id": "99c339e3-c37c-3d38-b443-4d151212bfb5", - "length": "207960", - "number": "14", - "position": "14", - "recording": { - "id": "2acef293-c5f7-4563-aa70-c31fc2e5593d", - "length": "207960", - "title": "Kate" - }, - "track_or_recording_length": "207960" - }, - { - "id": "ccca39c6-dddc-3745-994d-4747dff4dec6", - "length": "200080", - "number": "15", - "position": "15", - "recording": { - "id": "d9a5d65e-04b1-4bef-bb81-1c24f96cd396", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "200080" - }, - { - "id": "231a2b49-c7a0-3258-9078-d798543e172e", - "length": "232053", - "number": "16", - "position": "16", - "recording": { - "id": "c6e36a93-c440-4fca-8fa3-147274d3af60", - "length": "232053", - "title": "Niemand anders" - }, - "track_or_recording_length": "232053" - }, - { - "id": "9609191a-9b2c-31ef-8bab-40f1f96dffc4", - "length": "215226", - "number": "17", - "position": "17", - "recording": { - "id": "8b83cc37-a6ea-458a-98a5-e5cf5270de80", - "length": "215000", - "title": "You Make Me Feel\u2026" - }, - "track_or_recording_length": "215226" - }, - { - "id": "604bfd4a-d9fd-3fe4-960b-abb2964e5266", - "length": "230960", - "number": "18", - "position": "18", - "recording": { - "id": "a8956c11-749a-4fdb-885a-86542bcf204a", - "length": "230026", - "title": "Marry You" - }, - "track_or_recording_length": "230960" - }, - { - "id": "be2027e1-bac0-361f-af2c-7d17383af4c0", - "length": "246480", - "number": "19", - "position": "19", - "recording": { - "id": "2061a724-c03f-4e5e-95ca-03718327443f", - "length": "245000", - "title": "Bridge of Light" - }, - "track_or_recording_length": "246480" - }, - { - "id": "917c5b75-b7cd-3e02-91e6-cfaad56a8710", - "length": "220080", - "number": "20", - "position": "20", - "recording": { - "id": "1aa25b19-e04f-4ca6-833d-0071d86bf094", - "length": "220000", - "title": "Heartbeat" - }, - "track_or_recording_length": "220080" - }, - { - "id": "ec9c6c17-e0a4-3ce6-8b25-427d7609c342", - "length": "183306", - "number": "21", - "position": "21", - "recording": { - "id": "3339ca18-e4ff-4c21-acdd-70009b36c50e", - "length": "183306", - "title": "Nova Zembla (Armin van Buuren radio edit)" - }, - "track_or_recording_length": "183306" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "ef1b7cc0-cd26-36f4-8ea0-04d9623786c7", - "iso-3166-1-code-list": [ - "NL" - ], - "name": "Netherlands", - "sort-name": "Netherlands" - }, - "date": "2012-02-03" - } - ], - "status": "Official", - "text-representation": { - "language": "nld", - "script": "Latn" - }, - "title": "Radio 538 Hitzone 60" - }, - { - "asin": "B006WBYMYG", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2012-02-13", - "id": "0add44dc-b013-463c-86bf-40a4f2121722", - "medium-count": 2, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "e8d110b4-79c5-318d-a84d-c3f44624d019", - "length": "221000", - "number": "1", - "position": "1", - "recording": { - "id": "f172bbf5-df6f-427b-89a9-3d0c31c09baf", - "length": "221000", - "title": "Je l'aime \u00e0 mourir" - }, - "track_or_recording_length": "221000" - }, - { - "id": "ce19351b-3cef-3b47-9b2d-859984b0f6a4", - "length": "243000", - "number": "2", - "position": "2", - "recording": { - "id": "0069c0f7-9274-4b4b-a10e-110b90a4bcc0", - "length": "245000", - "title": "Titanium" - }, - "track_or_recording_length": "243000" - }, - { - "id": "9a3f6221-5d66-3cf1-91b4-1aca0a3e6e99", - "length": "166000", - "number": "3", - "position": "3", - "recording": { - "id": "f04f2b7a-29a2-4df2-a099-5a06712db862", - "length": "166000", - "title": "Ai se eu te pego!" - }, - "title": "Ai se eu te pego (Nossa Nossa)", - "track_or_recording_length": "166000" - }, - { - "id": "e8cc26e4-4c5e-3436-ad4b-ea3543312836", - "length": "228000", - "number": "4", - "position": "4", - "recording": { - "id": "8f201f9b-e561-4c7f-8694-4cd43ca72068", - "length": "228000", - "title": "The One That Got Away" - }, - "track_or_recording_length": "228000" - }, - { - "id": "4abcc364-ceaa-3aab-8e28-20388fc757be", - "length": "199000", - "number": "5", - "position": "5", - "recording": { - "disambiguation": "radio edit", - "id": "6528ab6c-74ca-41d8-8eb8-9bb61c82a78f", - "length": "199000", - "title": "Levels" - }, - "track_or_recording_length": "199000" - }, - { - "id": "3688d330-f3e2-369e-b10f-e4c829f204af", - "length": "233000", - "number": "6", - "position": "6", - "recording": { - "id": "212fb242-0273-44ff-a6e9-5a26fe5c61f8", - "length": "233000", - "title": "Pumped Up Kicks" - }, - "track_or_recording_length": "233000" - }, - { - "id": "44694c8b-d1ae-3fbf-9fdd-a3a146bef5a5", - "length": "228000", - "number": "7", - "position": "7", - "recording": { - "id": "a006dcb5-2ab1-407a-b3eb-083ca2ace162", - "length": "228120", - "title": "International Love" - }, - "track_or_recording_length": "228000" - }, - { - "id": "2038f195-cb67-3e8d-9431-8329e59e5080", - "length": "197000", - "number": "8", - "position": "8", - "recording": { - "id": "7f4fb018-bd45-4365-8592-36af5cbc7c88", - "length": "198000", - "title": "Glad You Came" - }, - "track_or_recording_length": "197000" - }, - { - "id": "469eec1b-665b-3b3e-81c1-9ca67b1b64ab", - "length": "195000", - "number": "9", - "position": "9", - "recording": { - "id": "b3fa947f-3356-47f1-85fe-3ac39dcf32f2", - "length": "195000", - "title": "Je reste" - }, - "track_or_recording_length": "195000" - }, - { - "id": "b25f9e0e-2285-350f-adaf-7d6f766eb2d0", - "length": "211000", - "number": "10", - "position": "10", - "recording": { - "id": "c10f95bb-d179-4439-b0b1-f8f747ad2b57", - "length": "213000", - "title": "New Age" - }, - "track_or_recording_length": "211000" - }, - { - "id": "f34d2683-f495-323b-a426-00a0cf013728", - "length": "240000", - "number": "11", - "position": "11", - "recording": { - "id": "87758a45-d6ec-454f-a176-b9fcefc0bf03", - "length": "240000", - "title": "Un jour de plus au Paradis" - }, - "track_or_recording_length": "240000" - }, - { - "id": "9d8d2f2a-653a-31b5-a1de-2ff57b89a986", - "length": "245000", - "number": "12", - "position": "12", - "recording": { - "id": "c78bc95f-314b-425c-bde9-33e9b210cd9d", - "length": "244000", - "title": "Bring Me Coconut" - }, - "track_or_recording_length": "245000" - }, - { - "id": "528ca71c-1837-387b-80fa-8650bab4ced1", - "length": "242000", - "number": "13", - "position": "13", - "recording": { - "id": "a9e3758a-8687-4c67-ac25-6bdc5343c45e", - "length": "242000", - "title": "En attendant la fin" - }, - "track_or_recording_length": "242000" - }, - { - "id": "dce61c23-168b-3aeb-b17f-276f87793daa", - "length": "206000", - "number": "14", - "position": "14", - "recording": { - "id": "5935cc90-af2d-4d12-ad67-411e6e6f1efd", - "length": "206000", - "title": "Make It Hot" - }, - "track_or_recording_length": "206000" - }, - { - "id": "6bca1520-1e00-39fd-96c6-c06455cbc1ea", - "length": "203000", - "number": "15", - "position": "15", - "recording": { - "id": "eaaec817-086f-4ecd-85e1-2ecc0a939088", - "length": "203000", - "title": "U Know It Ain't Love" - }, - "track_or_recording_length": "203000" - }, - { - "id": "94ea1647-1e5e-31e7-9f6a-71afe0bed509", - "length": "219000", - "number": "16", - "position": "16", - "recording": { - "disambiguation": "extrait", - "id": "f9658376-5e5a-4ebb-93b2-f80bd8e4da32", - "length": "219000", - "title": "\u00c7a ira mon amour" - }, - "title": "Ca ira mon amour", - "track_or_recording_length": "219000" - }, - { - "id": "01c4bf83-7fa0-3902-8b0f-1f73bb96b03e", - "length": "199000", - "number": "17", - "position": "17", - "recording": { - "id": "4f274647-403b-4763-bd0e-a9419e73591c", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "199000" - }, - { - "id": "8ec8f706-39a5-375c-97fe-edd4a35e747c", - "length": "187000", - "number": "18", - "position": "18", - "recording": { - "id": "20839487-6669-4eaf-851e-c2df4082ffea", - "length": "187000", - "title": "Blessed" - }, - "track_or_recording_length": "187000" - }, - { - "id": "5543c215-a5d8-3d9c-9624-c3c59487ebd4", - "length": "250000", - "number": "19", - "position": "19", - "recording": { - "id": "a4f6d4eb-6b9a-4fdf-a710-60c4ab516199", - "length": "250000", - "title": "Inch' Allah" - }, - "track_or_recording_length": "250000" - }, - { - "id": "5bd0c979-3400-3910-ab3f-ee4bc509900e", - "length": "170000", - "number": "20", - "position": "20", - "recording": { - "id": "4d4fb90d-823e-453b-8633-c278b29f6923", - "length": "169000", - "title": "Our Day Will Come" - }, - "track_or_recording_length": "170000" - }, - { - "id": "3777a936-0f4e-3cce-9f86-1ce8ebeb9576", - "length": "247000", - "number": "21", - "position": "21", - "recording": { - "id": "27a3e84a-bdae-4fc3-9440-218371c6143d", - "length": "247000", - "title": "Good Feeling" - }, - "track_or_recording_length": "247000" - } - ] - }, - { - "format": "CD", - "position": "2", - "track-count": 22, - "track-list": [ - { - "id": "beed5b83-e97a-3d77-8c68-d19daee819e7", - "length": "242000", - "number": "1", - "position": "1", - "recording": { - "disambiguation": "radio edit", - "id": "bc5d81f8-853f-41c2-a7dd-a90b9fe51d99", - "length": "242000", - "title": "Video Games" - }, - "track_or_recording_length": "242000" - }, - { - "id": "6b3fc547-4b3a-39fe-ab21-97eb498f481d", - "length": "221000", - "number": "2", - "position": "2", - "recording": { - "id": "f10fa930-a22e-443d-b25a-e53d0005a43d", - "length": "221000", - "title": "Hangover" - }, - "track_or_recording_length": "221000" - }, - { - "id": "03414462-cf06-3bdd-b880-a67520e609fe", - "length": "231000", - "number": "3", - "position": "3", - "recording": { - "id": "bc4abc41-2f25-4eff-a624-9a2984b2f1f2", - "length": "231493", - "title": "Domino" - }, - "track_or_recording_length": "231000" - }, - { - "id": "a614a612-865e-3503-bf73-d3d8708738e9", - "length": "194000", - "number": "4", - "position": "4", - "recording": { - "id": "c677db9a-7efe-4e68-a511-ecc1e58d27c4", - "length": "194000", - "title": "In Your Head" - }, - "track_or_recording_length": "194000" - }, - { - "id": "3bf736ac-961d-3e1d-80bc-e841f792d2b3", - "length": "212000", - "number": "5", - "position": "5", - "recording": { - "id": "a68719c1-44c2-4c28-b828-0e6573d9ff16", - "length": "212000", - "title": "Tous les chemins" - }, - "track_or_recording_length": "212000" - }, - { - "id": "8a2380eb-543d-36b6-a7f9-4a7b04f69584", - "length": "200000", - "number": "6", - "position": "6", - "recording": { - "id": "c8200a2c-fbae-4c01-be04-94818a069364", - "length": "199480", - "title": "Sexy and I Know It" - }, - "title": "Sexy And I Know It", - "track_or_recording_length": "200000" - }, - { - "id": "308ebb8f-ddeb-3515-83e6-9e67c270506a", - "length": "216000", - "number": "7", - "position": "7", - "recording": { - "id": "06151aca-f8a6-44f3-aa25-5d5232c6b909", - "length": "216000", - "title": "Des Ricochets" - }, - "title": "Des ricochets", - "track_or_recording_length": "216000" - }, - { - "id": "6c33a675-d215-372a-80de-54729d8e38be", - "length": "230000", - "number": "8", - "position": "8", - "recording": { - "id": "a8956c11-749a-4fdb-885a-86542bcf204a", - "length": "230026", - "title": "Marry You" - }, - "track_or_recording_length": "230000" - }, - { - "id": "d0dbaa92-937c-397f-a535-75fcc1400115", - "length": "197000", - "number": "9", - "position": "9", - "recording": { - "id": "80150116-b2ac-4652-a14f-eafbc3d3d561", - "length": "197000", - "title": "Les mots" - }, - "track_or_recording_length": "197000" - }, - { - "id": "87310e9c-20c7-3fa0-a557-f94cf5174e62", - "length": "278000", - "number": "10", - "position": "10", - "recording": { - "id": "574eafc0-6909-4278-94fa-083ea5aefc61", - "length": "278000", - "title": "Paradise" - }, - "track_or_recording_length": "278000" - }, - { - "id": "65b54a7e-735b-3011-8114-7870d22d7cc5", - "length": "182000", - "number": "11", - "position": "11", - "recording": { - "id": "79267bce-a870-4166-9f9f-4a408929b550", - "length": "182000", - "title": "Again And Again" - }, - "track_or_recording_length": "182000" - }, - { - "id": "bc666968-ac3d-3133-ad34-4e60c239273f", - "length": "180000", - "number": "12", - "position": "12", - "recording": { - "id": "8510efa2-5723-4690-bcd2-17333670d4ad", - "length": "179733", - "title": "Baila morena" - }, - "title": "Baila Morena", - "track_or_recording_length": "180000" - }, - { - "id": "ebb4a081-9101-38f4-bf13-5993eeffa2bb", - "length": "189000", - "number": "13", - "position": "13", - "recording": { - "id": "a73ec34f-58de-4a54-92b1-15f8a0ade313", - "length": "189000", - "title": "Rock The Boat" - }, - "track_or_recording_length": "189000" - }, - { - "id": "adb79d8e-ef31-3e2e-95bf-1053b396f445", - "length": "191000", - "number": "14", - "position": "14", - "recording": { - "id": "0f1d4106-4be0-4fcd-ba48-7a0053b8339c", - "length": "191000", - "title": "Destination Rio" - }, - "track_or_recording_length": "191000" - }, - { - "id": "d254d1c4-30a8-38f8-bdef-05fd38239951", - "length": "228000", - "number": "15", - "position": "15", - "recording": { - "id": "1559188f-f7f4-4eeb-9744-702b3ed96533", - "length": "228000", - "title": "You Will Never Know" - }, - "track_or_recording_length": "228000" - }, - { - "id": "97a437fc-d1e3-315d-9fb0-6e9cf9b5ad2a", - "length": "182000", - "number": "16", - "position": "16", - "recording": { - "id": "83e170be-f45f-4d98-ae25-113bb133a8a7", - "length": "182000", - "title": "Something in the Water" - }, - "title": "Something In The Water", - "track_or_recording_length": "182000" - }, - { - "id": "197391a5-ec7f-3f5a-a50b-26e6769a708e", - "length": "290000", - "number": "17", - "position": "17", - "recording": { - "id": "50ae80a2-d4cb-4fc5-813b-cabcfa3410de", - "length": "290000", - "title": "L\u2019\u00c9tranger" - }, - "title": "L'\u00e9tranger", - "track_or_recording_length": "290000" - }, - { - "id": "f01594c8-a744-3588-9716-2d4f54069c8d", - "length": "178000", - "number": "18", - "position": "18", - "recording": { - "id": "3c409a4f-6d13-4f69-91e6-9c465d76a65d", - "length": "178000", - "title": "Hardcore Vibes" - }, - "track_or_recording_length": "178000" - }, - { - "id": "4c1393b9-c6de-3754-b7d7-a48486bc3450", - "length": "219000", - "number": "19", - "position": "19", - "recording": { - "id": "930f91d3-35d8-475b-98e1-c780d94e7346", - "length": "219000", - "title": "En apesanteur" - }, - "track_or_recording_length": "219000" - }, - { - "id": "8408c446-525c-37fe-8ed9-d16edacbc5ff", - "length": "177000", - "number": "20", - "position": "20", - "recording": { - "id": "467cd3a8-3f41-4df7-be16-f42e3bcd2170", - "length": "176901", - "title": "Antidote" - }, - "track_or_recording_length": "177000" - }, - { - "id": "dadc61ad-4115-35c9-9d74-cd73b9d6671d", - "length": "184000", - "number": "21", - "position": "21", - "recording": { - "id": "a65d2a4f-b2f1-4c23-9e7c-c730a2a1a157", - "length": "184000", - "title": "Des p\u00e8res, des hommes et des fr\u00e8res" - }, - "track_or_recording_length": "184000" - }, - { - "id": "aceb3ea8-300f-344c-ab14-475c2b4f6494", - "length": "264000", - "number": "22", - "position": "22", - "recording": { - "id": "cbf0e52b-d15d-4506-a951-fd753bd9234f", - "length": "264000", - "title": "Marry the Night" - }, - "title": "Marry The Night", - "track_or_recording_length": "264000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "date": "2012-02-13" - } - ], - "status": "Official", - "text-representation": { - "language": "fra", - "script": "Latn" - }, - "title": "NRJ 200% Hits 2012" - }, - { - "asin": "B004J35EYQ", - "barcode": "600753377703", - "country": "GB", - "cover-art-archive": { - "artwork": "true", - "back": "false", - "count": "2", - "front": "true" - }, - "date": "2012-02-21", - "id": "229fcad2-32b9-435a-afb0-e68046a9ec6c", - "medium-count": 3, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "1fc2f0ce-cd8e-3ba4-98e5-ac2ba7c4bb20", - "length": "312000", - "number": "1", - "position": "1", - "recording": { - "disambiguation": "live; 2011 Brit Awards", - "id": "47793f15-15d6-48e7-901e-ddf3abb6b05e", - "length": "310000", - "title": "Someone Like You" - }, - "title": "Someone Like You (live From the Brit Awards 2011)", - "track_or_recording_length": "312000" - }, - { - "id": "e44e4200-1eb3-3db2-a16f-94af9cb0fa16", - "length": "223000", - "number": "2", - "position": "2", - "recording": { - "id": "2ef0762b-b19d-4355-b19a-7af087497599", - "length": "222000", - "title": "Grenade" - }, - "track_or_recording_length": "223000" - }, - { - "id": "f2aec948-6100-3810-8285-94871a15261c", - "length": "202000", - "number": "3", - "position": "3", - "recording": { - "id": "84893d6a-c767-44f5-ab98-4a2baabfc165", - "length": "201853", - "title": "Moves Like Jagger" - }, - "track_or_recording_length": "202000" - }, - { - "id": "b9129d62-5402-3fee-86ec-75a1d54cf856", - "length": "194000", - "number": "4", - "position": "4", - "recording": { - "id": "a1ca9f65-a4b0-492f-b2dd-3bd65bfe0681", - "length": "193253", - "title": "Changed the Way You Kiss Me (radio edit)" - }, - "title": "Changed the Way You Kissed Me", - "track_or_recording_length": "194000" - }, - { - "id": "0f2dbc40-a33e-321d-95b9-a884786aaf21", - "length": "190000", - "number": "5", - "position": "5", - "recording": { - "id": "8257fa44-c260-40e0-b14f-c327326350a1", - "length": "189000", - "title": "Price Tag" - }, - "track_or_recording_length": "190000" - }, - { - "id": "d868bbbd-6dcb-3902-bdad-487e37c7c786", - "length": "202000", - "number": "6", - "position": "6", - "recording": { - "id": "51fe96c7-0fe0-49be-bd22-4906b8c3d327", - "length": "202000", - "title": "Heart Skips a Beat" - }, - "track_or_recording_length": "202000" - }, - { - "id": "c2a61406-b8dd-3fa4-83bb-5ba050ee5e32", - "length": "235000", - "number": "7", - "position": "7", - "recording": { - "id": "0404d8b1-1394-45ca-8fd9-e738a7c7b839", - "length": "235000", - "title": "Read All About It" - }, - "track_or_recording_length": "235000" - }, - { - "id": "14e59bdc-ea35-31c3-a1f3-9212e6cd3dab", - "length": "244000", - "number": "8", - "position": "8", - "recording": { - "id": "1e5cfed5-4fe2-459d-8c04-5cad056010b6", - "length": "244000", - "title": "S and M" - }, - "track_or_recording_length": "244000" - }, - { - "id": "3b9eadf4-8cb1-311d-808e-75804fb0e8b7", - "length": "187000", - "number": "9", - "position": "9", - "recording": { - "id": "b609e325-2ec0-4958-8972-24e6aca7b291", - "length": "187000", - "title": "All About Tonight" - }, - "track_or_recording_length": "187000" - }, - { - "id": "91715bab-b4b9-3268-8382-61623c1f3e23", - "length": "238000", - "number": "10", - "position": "10", - "recording": { - "id": "58c7302a-b77f-4568-a370-7b9a062bfb51", - "length": "238000", - "title": "Dont Go" - }, - "track_or_recording_length": "238000" - }, - { - "id": "db9d9258-95ce-342a-87bf-3da09dd4b5f2", - "length": "199000", - "number": "11", - "position": "11", - "recording": { - "id": "3ef1d623-ac7a-4543-b726-33f84a49bd96", - "length": "199000", - "title": "Glad You Came" - }, - "track_or_recording_length": "199000" - }, - { - "id": "26806476-710c-31e6-9015-51bd68e82e25", - "length": "249000", - "number": "12", - "position": "12", - "recording": { - "id": "c1c29d7a-c2c5-4e6b-be74-76b0fecf2c68", - "length": "249000", - "title": "Promises" - }, - "track_or_recording_length": "249000" - }, - { - "id": "ad19c2e4-e42d-3e0e-9212-55c4e6ab5baf", - "length": "283000", - "number": "13", - "position": "13", - "recording": { - "id": "6cba33be-dc83-4f80-ae90-53103d865702", - "length": "283000", - "title": "Video Games" - }, - "track_or_recording_length": "283000" - }, - { - "id": "06ee2e76-7aba-3938-90f7-602270a0389d", - "length": "223000", - "number": "14", - "position": "14", - "recording": { - "id": "1b69d419-1573-41ae-855d-0550fdf7fc37", - "length": "222133", - "title": "Heaven (radio edit)" - }, - "title": "Heaven", - "track_or_recording_length": "223000" - }, - { - "id": "360f4bf6-11a7-330b-b7ef-c390ab5fcf5b", - "length": "196000", - "number": "15", - "position": "15", - "recording": { - "id": "2c271d65-857f-4fa6-aafa-408244076a77", - "length": "196000", - "title": "Jealousy" - }, - "track_or_recording_length": "196000" - }, - { - "id": "7be9e37a-4f4f-3b55-8b87-5d464ff83bc8", - "length": "243000", - "number": "16", - "position": "16", - "recording": { - "id": "996ae83c-5126-4d39-92e7-9f35953d0c08", - "length": "243000", - "title": "Every Teardrop Is a Waterfall" - }, - "track_or_recording_length": "243000" - }, - { - "id": "67a1c296-81f0-34cc-a7e5-4936c4ba9f48", - "length": "221000", - "number": "17", - "position": "17", - "recording": { - "disambiguation": "radio edit", - "id": "a0b058b6-1e2a-4629-96b4-ab5ebdfc4adf", - "length": "220000", - "title": "Pumped Up Kicks" - }, - "track_or_recording_length": "221000" - }, - { - "id": "2bba3c20-0716-3266-ac87-71f2a468396e", - "length": "245000", - "number": "18", - "position": "18", - "recording": { - "id": "1fc33a6a-da5d-4c16-8887-88f3a168d562", - "length": "245000", - "title": "Days Are Forgotten" - }, - "track_or_recording_length": "245000" - }, - { - "id": "8b24746a-9831-3323-8b08-96d9ad48ab55", - "length": "144000", - "number": "19", - "position": "19", - "recording": { - "id": "8c75bb17-940c-4af8-8874-8ee74a9540b2", - "length": "144000", - "title": "Chains of Love" - }, - "track_or_recording_length": "144000" - }, - { - "id": "eb56ac1c-0a2f-3041-af8c-c5a3a07cec12", - "length": "229000", - "number": "20", - "position": "20", - "recording": { - "id": "776f51a2-ef63-4861-affd-cfe49d15a4c4", - "length": "229000", - "title": "Limdisfarne" - }, - "track_or_recording_length": "229000" - }, - { - "id": "32d2e56a-ae23-3b36-a20f-a782a979530b", - "length": "206000", - "number": "21", - "position": "21", - "recording": { - "id": "6b8c32bc-0af1-4f40-b5c8-628618f0d98c", - "length": "205000", - "title": "How Come You Never Go There" - }, - "track_or_recording_length": "206000" - } - ] - }, - { - "format": "CD", - "position": "2", - "track-count": 21, - "track-list": [ - { - "id": "9769663d-f531-3a01-b4e4-57f9494376f7", - "length": "260000", - "number": "1", - "position": "1", - "recording": { - "id": "17eb8cd6-7bb0-4579-90af-dc38c1b3fc6a", - "length": "261000", - "title": "The A Team" - }, - "title": "The a Team", - "track_or_recording_length": "260000" - }, - { - "id": "29d34dae-0fe9-3ca5-b93d-50dce045d138", - "length": "203000", - "number": "2", - "position": "2", - "recording": { - "id": "1faef607-f809-4f24-a1b4-7a860c69ccdd", - "length": "203000", - "title": "I Need a Dollar" - }, - "track_or_recording_length": "203000" - }, - { - "id": "2b7e32ea-c4a2-3fda-8889-88d75d37b388", - "length": "187000", - "number": "3", - "position": "3", - "recording": { - "id": "49bb2224-f07d-4e80-91de-0332521e3a8c", - "length": "187000", - "title": "Down With the Trumpets" - }, - "track_or_recording_length": "187000" - }, - { - "id": "f7b30129-c972-3933-8dd9-b55a6a4df233", - "length": "233000", - "number": "4", - "position": "4", - "recording": { - "id": "8a93136c-35fa-493c-8d53-d700c479e2f4", - "length": "233667", - "title": "Blind Faith" - }, - "track_or_recording_length": "233000" - }, - { - "id": "9cf8a23e-3d0a-33b4-a3c7-2609e14ed410", - "length": "222000", - "number": "5", - "position": "5", - "recording": { - "id": "27770493-c81d-40a4-84fa-10ce9cffacb1", - "length": "220146", - "title": "Born This Way (radio edit version)" - }, - "title": "Born This Way", - "track_or_recording_length": "222000" - }, - { - "id": "369ddf3c-a8a8-3309-9a1d-86378db205a8", - "length": "202000", - "number": "6", - "position": "6", - "recording": { - "disambiguation": "clean", - "id": "fc04c147-34a4-4409-a74f-f10b8a6f9466", - "length": "202000", - "title": "Super Bass" - }, - "track_or_recording_length": "202000" - }, - { - "id": "434eb1a6-fc93-32d3-a012-9a5544423cd6", - "length": "255000", - "number": "7", - "position": "7", - "recording": { - "id": "a804dfd1-25ba-46b1-9abf-cbda30bf7a0c", - "length": "253000", - "title": "Best Thing I Never Had" - }, - "track_or_recording_length": "255000" - }, - { - "id": "680e2386-247f-397e-ac96-d8efaa622964", - "length": "200000", - "number": "8", - "position": "8", - "recording": { - "id": "ed928dfb-9a3f-4517-ad58-e917b5d4b490", - "length": "200000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "200000" - }, - { - "id": "3b6b0de4-0aac-357a-b311-74dc1bd0c507", - "length": "219000", - "number": "9", - "position": "9", - "recording": { - "id": "288245d0-14d2-45fe-a543-0582d542085e", - "length": "219440", - "title": "Up" - }, - "track_or_recording_length": "219000" - }, - { - "id": "1f29ae4b-feec-3e16-8ec4-b7e58704e38b", - "length": "221000", - "number": "10", - "position": "10", - "recording": { - "id": "93a88235-6ee2-4639-94d6-b127765cc769", - "length": "221000", - "title": "She Makes Me Wanna" - }, - "track_or_recording_length": "221000" - }, - { - "id": "fead57e6-90ce-3cd4-8bf4-5b120778244d", - "length": "205000", - "number": "11", - "position": "11", - "recording": { - "id": "e612b774-8aff-4ae5-b328-8eeb20b7c2a5", - "length": "205000", - "title": "Lights On" - }, - "track_or_recording_length": "205000" - }, - { - "id": "5bb1468c-b188-3af0-a8f8-fac82bcb5163", - "length": "217000", - "number": "12", - "position": "12", - "recording": { - "id": "71f4a459-fa87-44d9-b21e-6b7b7f9514b0", - "length": "216040", - "title": "Earthquake (radio edit)" - }, - "title": "Earthquake", - "track_or_recording_length": "217000" - }, - { - "id": "8b2fc7d9-35fd-348e-b32b-aad3ca9be6cd", - "length": "196000", - "number": "13", - "position": "13", - "recording": { - "id": "60c7c19d-f09e-4721-ac6d-98f699d8db15", - "length": "196000", - "title": "Where Them Girls At" - }, - "track_or_recording_length": "196000" - }, - { - "id": "8f78aaa4-ee39-39c7-aff9-657fa0976a35", - "length": "279000", - "number": "14", - "position": "14", - "recording": { - "id": "bdeb7b77-80ed-4f64-81d2-78aea5fa3415", - "length": "279000", - "title": "Shake It Out" - }, - "track_or_recording_length": "279000" - }, - { - "id": "5831ded5-a54a-3244-8505-4fd69be021a0", - "length": "184000", - "number": "15", - "position": "15", - "recording": { - "disambiguation": "album version", - "id": "51b42966-23f6-4728-8efd-f2abd98f8937", - "length": "183000", - "title": "Don\u2019t Sit Down \u2019Cause I\u2019ve Moved Your Chair" - }, - "title": "Dont Sit Down Cause Ive Moved Your Chair", - "track_or_recording_length": "184000" - }, - { - "id": "9446933c-83b9-36ac-921e-7bbd1149b9cd", - "length": "177000", - "number": "16", - "position": "16", - "recording": { - "id": "8fa37e87-a28c-4a75-b553-e2eb812d20a0", - "length": "177000", - "title": "Post Breakup Sex" - }, - "track_or_recording_length": "177000" - }, - { - "id": "278c06ff-677d-37ac-b0aa-667693beeffa", - "length": "210000", - "number": "17", - "position": "17", - "recording": { - "id": "20b9826b-2177-42fd-9036-b4673e0d872b", - "length": "210000", - "title": "The Death of You and Me" - }, - "track_or_recording_length": "210000" - }, - { - "id": "1efd82f0-1e8a-3104-b5a4-46d3105a2476", - "length": "295000", - "number": "18", - "position": "18", - "recording": { - "id": "31b3df6c-9fac-4e5a-8120-332218ef3a29", - "length": "293680", - "title": "Open Arms" - }, - "track_or_recording_length": "295000" - }, - { - "id": "a759cc3b-73e6-31db-bd22-23ae77f593e9", - "length": "260000", - "number": "19", - "position": "19", - "recording": { - "id": "bb846d3f-4803-4374-b214-cedd453218f2", - "length": "259026", - "title": "Rope" - }, - "track_or_recording_length": "260000" - }, - { - "id": "75418291-ff81-395c-9e9f-18fa13af4543", - "length": "222000", - "number": "20", - "position": "20", - "recording": { - "id": "9f742c35-c897-4050-b1c7-30b745e12ccc", - "length": "222000", - "title": "The Words That Maketh Murder" - }, - "track_or_recording_length": "222000" - }, - { - "id": "c711b129-0adc-31ad-8aa4-d5a35656b72b", - "length": "242000", - "number": "21", - "position": "21", - "recording": { - "id": "b0adc7a8-0a90-4e09-8839-a66f315234a2", - "length": "241000", - "title": "Back to Black" - }, - "track_or_recording_length": "242000" - } - ] - }, - { - "format": "CD", - "position": "3", - "track-count": 19, - "track-list": [ - { - "id": "e8496fca-1b9e-309f-93d4-1d5fcd8e4872", - "length": "211000", - "number": "1", - "position": "1", - "recording": { - "id": "4595c1af-f25d-4b61-8b8d-fbc295bc4c3c", - "length": "211000", - "title": "Don\u2019t Stop Me Now" - }, - "track_or_recording_length": "211000" - }, - { - "id": "42fb7212-c5bf-32ac-bffe-bb1d84da82bb", - "length": "305000", - "number": "2", - "position": "2", - "recording": { - "id": "0ee4e5a5-3bbf-4ffd-bbc8-808c91114959", - "length": "305213", - "title": "Beetlebum" - }, - "track_or_recording_length": "305000" - }, - { - "id": "a8ffc746-f51d-3f95-b507-2fd9f70cdf2e", - "length": "275000", - "number": "3", - "position": "3", - "recording": { - "id": "2d614355-0206-41db-b852-cc088f11b863", - "length": "275000", - "title": "One" - }, - "track_or_recording_length": "275000" - }, - { - "id": "3f28f045-27be-34bd-a67e-5a1509a6d658", - "length": "183000", - "number": "4", - "position": "4", - "recording": { - "id": "fbe83db0-f6ad-472d-8d8b-8baf44a08682", - "length": "183600", - "title": "Sound and Vision" - }, - "track_or_recording_length": "183000" - }, - { - "id": "9a7f8a4a-ef35-32a6-9758-d64ef4213bda", - "length": "218000", - "number": "5", - "position": "5", - "recording": { - "id": "bf8e28bb-b4ef-4b9a-bc64-8f58dd4ff5dd", - "length": "216720", - "title": "Sweet Dreams (Are Made of This)" - }, - "track_or_recording_length": "218000" - }, - { - "id": "8b54bc8b-260a-3dd0-ac2f-ba40d053e33c", - "length": "303000", - "number": "6", - "position": "6", - "recording": { - "disambiguation": "album version", - "id": "2afa442d-33bc-46eb-9df2-4fa2b182cb06", - "length": "303106", - "title": "Everything She Wants" - }, - "track_or_recording_length": "303000" - }, - { - "id": "5d50f374-e7d3-313d-9eef-f76a8b6a6971", - "length": "313000", - "number": "7", - "position": "7", - "recording": { - "id": "a5e9530f-76f3-4935-9523-d8a8fb8e41b5", - "length": "313000", - "title": "Band on the Run" - }, - "track_or_recording_length": "313000" - }, - { - "id": "89093ba7-81ec-3f6f-a15d-f6fb9d12536b", - "length": "263000", - "number": "8", - "position": "8", - "recording": { - "id": "d8d040f5-21f4-46ea-9ba0-c172f554e04c", - "length": "265026", - "title": "Handbags & Gladrags" - }, - "title": "Handbags and Gladrags", - "track_or_recording_length": "263000" - }, - { - "id": "46b62f94-195f-392f-8699-123cf1c73c89", - "length": "243000", - "number": "9", - "position": "9", - "recording": { - "id": "3dc1798d-faeb-4499-b650-8f5a769dee7e", - "length": "243000", - "title": "The Changingman" - }, - "track_or_recording_length": "243000" - }, - { - "id": "da7bd67e-5124-322f-9dc0-43a2565ceafb", - "length": "260000", - "number": "10", - "position": "10", - "recording": { - "id": "580f4553-e29a-4d19-989c-1b097b76de48", - "length": "259000", - "title": "Wonderwall" - }, - "track_or_recording_length": "260000" - }, - { - "id": "e580610a-b721-3657-a90d-b37433624606", - "length": "228000", - "number": "11", - "position": "11", - "recording": { - "id": "e6bec150-9c00-458b-8b42-787d20f0b096", - "length": "228000", - "title": "Substitute" - }, - "track_or_recording_length": "228000" - }, - { - "id": "36921e43-0051-3b9e-8168-422eaedc1016", - "length": "210000", - "number": "12", - "position": "12", - "recording": { - "id": "cba9bfb6-0871-45c0-b7ba-c371ce71bf3e", - "length": "210000", - "title": "You Make Lovin\u2019 Fun" - }, - "track_or_recording_length": "210000" - }, - { - "id": "58a9a9d5-b8de-3ed9-95c1-dbdfa891614b", - "length": "262000", - "number": "13", - "position": "13", - "recording": { - "id": "8eccf8b6-97d5-4431-af98-f9b6dd51b20d", - "length": "262000", - "title": "Let Me Entertain You" - }, - "track_or_recording_length": "262000" - }, - { - "id": "78734c3c-1c8a-3aef-94cb-4d235bd69720", - "length": "244000", - "number": "14", - "position": "14", - "recording": { - "disambiguation": "7\u2033 mix", - "id": "b6a10cf8-e8cd-4f13-8074-5e7034edb364", - "length": "240000", - "title": "West End Girls" - }, - "track_or_recording_length": "244000" - }, - { - "id": "a773eb8f-9c83-3072-98a4-1514b613474a", - "length": "257000", - "number": "15", - "position": "15", - "recording": { - "id": "7a9bc049-702e-48f9-a43b-12432150c2a0", - "length": "257000", - "title": "I Don\u2019t Like Mondays" - }, - "track_or_recording_length": "257000" - }, - { - "id": "39af963c-9403-3ca2-bf54-d7f11d4c0d12", - "length": "182000", - "number": "16", - "position": "16", - "recording": { - "id": "50d83ff0-6ffd-4a92-b353-c104bbb45b9e", - "length": "183000", - "title": "I\u2019m Still Standing" - }, - "track_or_recording_length": "182000" - }, - { - "id": "bd129a4b-4e6b-3147-a777-fa258b4329c8", - "length": "268000", - "number": "17", - "position": "17", - "recording": { - "id": "be5b3cbe-3ab2-454b-944b-6c5c7b237b77", - "length": "268000", - "title": "An Englishman in New York" - }, - "track_or_recording_length": "268000" - }, - { - "id": "93e30e4a-4dc2-371e-a323-3c5ef26e9aa0", - "length": "226000", - "number": "18", - "position": "18", - "recording": { - "id": "25e54669-52ab-404d-8e27-0979531c6671", - "length": "226000", - "title": "Save a Prayer" - }, - "track_or_recording_length": "226000" - }, - { - "id": "1f9a59d7-0140-363e-9c1f-5072ea261dfd", - "length": "243000", - "number": "19", - "position": "19", - "recording": { - "disambiguation": "album version", - "id": "7412a5ce-b89a-4ed1-b187-96b7c7031913", - "length": "240506", - "title": "2 Become 1" - }, - "track_or_recording_length": "243000" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2012-02-21" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Brit Awards 2012" - }, - { - "barcode": "0600753379455", - "country": "BE", - "cover-art-archive": { - "artwork": "true", - "back": "false", - "count": "1", - "front": "true" - }, - "date": "2012-02-24", - "id": "e66075a6-48da-4b45-8c68-a499b4cfb8f9", - "medium-count": 1, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 22, - "track-list": [ - { - "id": "de7d5f4c-c269-4bb1-8bbe-657dc1e9c617", - "length": "167000", - "number": "1", - "position": "1", - "recording": { - "id": "e05f9b91-3b48-4c47-b07a-3f409b3762cd", - "length": "167000", - "title": "Ai se eu te pego (Nossa Nossa)" - }, - "title": "Ai Se Eu Te Pego! (Nossa Nossa)", - "track_or_recording_length": "167000" - }, - { - "id": "ef153025-62fe-4abd-bacc-9166f2e16ea8", - "length": "241000", - "number": "2", - "position": "2", - "recording": { - "id": "2f61ce2c-6f84-4ea3-86cb-98bd55bb3a9f", - "length": "241000", - "title": "Video Games" - }, - "track_or_recording_length": "241000" - }, - { - "id": "7077aa9a-39ef-4026-b218-14467e9cf5a5", - "length": "217000", - "number": "3", - "position": "3", - "recording": { - "id": "8e3b80a8-22ea-4623-a5d8-3f0f8de524f6", - "length": "216787", - "title": "Ik Neem Je Mee" - }, - "track_or_recording_length": "217000" - }, - { - "id": "e2903ca8-354c-4fb2-b8f3-b65a7626d907", - "length": "189000", - "number": "4", - "position": "4", - "recording": { - "id": "b63393dd-3462-418a-82f7-021e8df10212", - "length": "189000", - "title": "Take You Higher (radio edit)" - }, - "title": "Take You Higher", - "track_or_recording_length": "189000" - }, - { - "id": "ecdb6da9-5afc-4e87-93ed-8a12776e3e90", - "length": "198000", - "number": "5", - "position": "5", - "recording": { - "disambiguation": "radio edit", - "id": "6528ab6c-74ca-41d8-8eb8-9bb61c82a78f", - "length": "199000", - "title": "Levels" - }, - "track_or_recording_length": "198000" - }, - { - "id": "ec55511b-cd20-4912-9899-6a3e5ac05031", - "length": "198000", - "number": "6", - "position": "6", - "recording": { - "id": "c8200a2c-fbae-4c01-be04-94818a069364", - "length": "199480", - "title": "Sexy and I Know It" - }, - "track_or_recording_length": "198000" - }, - { - "id": "df70c646-3b65-4331-a238-5a4e66da8a58", - "length": "228000", - "number": "7", - "position": "7", - "recording": { - "id": "cc2b9873-1d20-4180-81d4-fe963ba680c3", - "length": "228786", - "title": "She Doesn\u2019t Mind" - }, - "title": "She Doesn't Mind", - "track_or_recording_length": "228000" - }, - { - "id": "9f5fcbd2-6f57-43c2-b0ae-8b2021407a70", - "length": "207000", - "number": "8", - "position": "8", - "recording": { - "id": "95495197-8e3c-4fa2-8091-bf5f39351f10", - "length": "207000", - "title": "Young, Wild & Free" - }, - "track_or_recording_length": "207000" - }, - { - "id": "77b01272-6265-4a13-9add-ebafc7c02996", - "length": "197000", - "number": "9", - "position": "9", - "recording": { - "id": "d9a5d65e-04b1-4bef-bb81-1c24f96cd396", - "length": "199000", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "197000" - }, - { - "id": "6f14039d-873a-4284-8bb5-ac9c66df564f", - "length": "221000", - "number": "10", - "position": "10", - "recording": { - "id": "5e1f0cb7-c588-4efc-81ec-fd41ab284ee3", - "length": "221000", - "title": "Stronger (What Doesn\u2019t Kill You)" - }, - "title": "Stronger (What Doesn't Kill You)", - "track_or_recording_length": "221000" - }, - { - "id": "c1dde69d-753d-4ae7-8d18-f1a3b503c1b6", - "length": "199000", - "number": "11", - "position": "11", - "recording": { - "id": "275967cc-eadc-4e53-9276-97b834a0ed06", - "length": "201000", - "title": "Skinny Love" - }, - "track_or_recording_length": "199000" - }, - { - "id": "d04c88f3-5f48-4f80-98e7-3d469b499372", - "length": "246000", - "number": "12", - "position": "12", - "recording": { - "id": "27a3e84a-bdae-4fc3-9440-218371c6143d", - "length": "247000", - "title": "Good Feeling" - }, - "track_or_recording_length": "246000" - }, - { - "id": "9a303818-a47f-4f35-8420-5aa9d394fb00", - "length": "206000", - "number": "13", - "position": "13", - "recording": { - "id": "3fb3f3cc-0472-4a85-bd4f-d9098e938ca2", - "length": "207000", - "title": "Ode to the Bouncer" - }, - "track_or_recording_length": "206000" - }, - { - "id": "3e44a707-a9f1-4ff2-a3a9-da591992f673", - "length": "227000", - "number": "14", - "position": "14", - "recording": { - "id": "2d6f51c6-afc5-457e-9c58-689679c08d30", - "length": "227000", - "title": "The One That Got Away" - }, - "track_or_recording_length": "227000" - }, - { - "id": "ef919461-e6d5-4452-a62e-a7cd15759d46", - "length": "204000", - "number": "15", - "position": "15", - "recording": { - "id": "3d580574-56dc-4da4-bd67-d6c6a22b6bca", - "length": "204000", - "title": "1 Minute" - }, - "track_or_recording_length": "204000" - }, - { - "id": "9ba1ccdf-f161-421c-aadf-513cf7ac45d2", - "length": "189000", - "number": "16", - "position": "16", - "recording": { - "id": "44c0ddcd-47c0-48d0-821e-f68964cd54f6", - "length": "189000", - "title": "Break Out" - }, - "track_or_recording_length": "189000" - }, - { - "id": "a441555f-3a4c-4b34-a5c1-e25ec1dd0736", - "length": "189000", - "number": "17", - "position": "17", - "recording": { - "id": "bf765ed2-b169-487f-8e4b-3d3e1aa0e02e", - "length": "189000", - "title": "Curtain Call" - }, - "track_or_recording_length": "189000" - }, - { - "id": "f8a0c160-bcc8-4d28-a7f5-edb4116ebc26", - "length": "233000", - "number": "18", - "position": "18", - "recording": { - "id": "0404d8b1-1394-45ca-8fd9-e738a7c7b839", - "length": "235000", - "title": "Read All About It" - }, - "track_or_recording_length": "233000" - }, - { - "id": "05359bfd-0eee-4dd8-b9b8-557008552053", - "length": "210000", - "number": "19", - "position": "19", - "recording": { - "id": "351126f3-9028-4822-8544-6c715e55b9fe", - "length": "211000", - "title": "Home Again" - }, - "track_or_recording_length": "210000" - }, - { - "id": "fc510c18-9a07-4623-aa99-cd278685daea", - "length": "199000", - "number": "20", - "position": "20", - "recording": { - "disambiguation": "explicit", - "id": "87e161a9-8801-483d-8bb7-8d65973d9597", - "length": "200000", - "title": "You da One" - }, - "track_or_recording_length": "199000" - }, - { - "id": "92c5c00b-9d1b-49c1-bac1-28369d17c844", - "length": "221000", - "number": "21", - "position": "21", - "recording": { - "id": "797ae656-81d4-4d89-bddb-eca56f77ba72", - "length": "223266", - "title": "Rumour Has It" - }, - "track_or_recording_length": "221000" - }, - { - "id": "7cdd75d4-b0b6-441d-843e-da04cebf00cb", - "length": "201000", - "number": "22", - "position": "22", - "recording": { - "id": "2df5aa7a-e0c1-446a-8dfb-2491bb2d7b99", - "length": "200000", - "title": "Waar Is Kraan?" - }, - "track_or_recording_length": "201000" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "5b8a5ee5-0bb3-34cf-9a75-c27c44e341fc", - "iso-3166-1-code-list": [ - "BE" - ], - "name": "Belgium", - "sort-name": "Belgium" - }, - "date": "2012-02-24" - } - ], - "status": "Official", - "text-representation": { - "language": "mul" - }, - "title": "Maximum Hit Music 01 2012" - }, - { - "asin": "B006O872I0", - "barcode": "886919221725", - "country": "DE", - "cover-art-archive": { - "artwork": "false", - "back": "false", - "count": "0", - "front": "false" - }, - "date": "2012-02-24", - "id": "43844ce5-77ba-41c2-b266-69fe5a9544d1", - "medium-count": 1, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 20, - "track-list": [ - { - "id": "bfac4c4e-ef9e-450a-b37e-59a69fd0e000", - "length": "168000", - "number": "1", - "position": "1", - "recording": { - "id": "dcc6b800-fef3-4363-b907-8c825614ae53", - "length": "168000", - "title": "Ai se eu te pego" - }, - "track_or_recording_length": "168000" - }, - { - "id": "c26d8f0b-90c9-468e-83c6-5469b4025e8f", - "length": "202000", - "number": "2", - "position": "2", - "recording": { - "id": "699cc3de-94cb-488f-b7d6-7cb0484093c4", - "length": "202000", - "title": "Heart Skips a Beat" - }, - "track_or_recording_length": "202000" - }, - { - "id": "3f4243ec-53eb-4a3e-abc5-1bfd3993daa2", - "length": "199000", - "number": "3", - "position": "3", - "recording": { - "id": "562069d8-f697-44ed-accb-6b8faa47fa63", - "length": "198746", - "title": "What Makes You Beautiful" - }, - "track_or_recording_length": "199000" - }, - { - "id": "cd08cd15-a3f4-48d2-9c1d-68b080e1f6d1", - "length": "248000", - "number": "4", - "position": "4", - "recording": { - "id": "a393c1cc-e11b-400c-9e38-0a0915c01942", - "length": "248000", - "title": "Good Feeling" - }, - "track_or_recording_length": "248000" - }, - { - "id": "8c20d7df-342a-4aac-b2e6-4ccea52d28be", - "length": "217000", - "number": "5", - "position": "5", - "recording": { - "id": "a006dcb5-2ab1-407a-b3eb-083ca2ace162", - "length": "228120", - "title": "International Love" - }, - "track_or_recording_length": "217000" - }, - { - "id": "842e9f76-7d61-4119-a7a7-2c8654d45b1a", - "length": "219000", - "number": "6", - "position": "6", - "recording": { - "id": "ad1721bb-8c09-4614-9a8a-f199d3de2dca", - "length": "219000", - "title": "Troublemaker" - }, - "track_or_recording_length": "219000" - }, - { - "id": "9af622aa-fe3f-41c0-86df-4c237ace1024", - "length": "191000", - "number": "7", - "position": "7", - "recording": { - "id": "b3a9b09e-bce3-4321-b098-a9dac54bef3c", - "length": "191000", - "title": "Ma ch\u00e9rie" - }, - "track_or_recording_length": "191000" - }, - { - "id": "aa3e79f7-b71e-4388-bb1b-7a5316bd7dd0", - "length": "266000", - "number": "8", - "position": "8", - "recording": { - "id": "ed7fa7fe-f550-437a-87e9-3f1ff3d73f8a", - "length": "266000", - "title": "Marry the Night" - }, - "track_or_recording_length": "266000" - }, - { - "id": "6d421c50-6f53-417f-9e60-9f03c4227719", - "length": "199000", - "number": "9", - "position": "9", - "recording": { - "id": "48d0c803-6a33-4aee-9f07-02c46d2976ae", - "length": "199000", - "title": "Levels" - }, - "track_or_recording_length": "199000" - }, - { - "id": "54a17719-a840-4e1f-947d-45ad72a00f6f", - "length": "176000", - "number": "10", - "position": "10", - "recording": { - "id": "d14d5a0f-262d-4ea8-8938-8505ac583f87", - "length": "176000", - "title": "Le Bump" - }, - "track_or_recording_length": "176000" - }, - { - "id": "3f68e124-0423-453c-9023-68f1771f079a", - "length": "214000", - "number": "11", - "position": "11", - "recording": { - "id": "3d31842a-e524-4a0b-acf7-de085b7aa755", - "length": "214000", - "title": "Club Rocker" - }, - "track_or_recording_length": "214000" - }, - { - "id": "545dbe73-aa11-44ba-ac32-16be970e3e66", - "length": "185000", - "number": "12", - "position": "12", - "recording": { - "id": "9a608aeb-5ac8-413a-83b4-851e6f0d2d28", - "length": "185000", - "title": "All About Tonight" - }, - "track_or_recording_length": "185000" - }, - { - "id": "1a7f4b39-45a6-4557-ac9b-22e0189f50a5", - "length": "235000", - "number": "13", - "position": "13", - "recording": { - "id": "6c66e7bd-5ed1-4305-b151-cdfec3b2b310", - "length": "235000", - "title": "Time to Wander" - }, - "track_or_recording_length": "235000" - }, - { - "id": "ac7fc9dd-de70-4cbd-9932-a82738623918", - "length": "209000", - "number": "14", - "position": "14", - "recording": { - "id": "49ec1de2-053e-4f49-9f56-e019df544f09", - "length": "209000", - "title": "Don\u2019t Gimme That" - }, - "track_or_recording_length": "209000" - }, - { - "id": "de03a0e5-f466-4fcd-ad4f-f646a9aa77ba", - "length": "226000", - "number": "15", - "position": "15", - "recording": { - "id": "fa6b034b-7fa0-40c8-9b5e-0a044abaef68", - "length": "226000", - "title": "Anti Hero" - }, - "track_or_recording_length": "226000" - }, - { - "id": "2605eac2-8b4c-49f8-b8e3-498df400c578", - "length": "196000", - "number": "16", - "position": "16", - "recording": { - "id": "f30ea993-427f-4705-8343-e7d85322c7d5", - "length": "196000", - "title": "Der Schlumpfensound" - }, - "track_or_recording_length": "196000" - }, - { - "id": "2e943774-1275-407c-b5c5-ba7ab7fa7b51", - "length": "210000", - "number": "17", - "position": "17", - "recording": { - "id": "e3123c9c-9d77-4a77-a025-8a4a8891caa9", - "length": "210000", - "title": "Ich bin ich" - }, - "track_or_recording_length": "210000" - }, - { - "id": "236b8f81-6eb8-4ab3-8aa3-8c65809f6a7e", - "length": "228000", - "number": "18", - "position": "18", - "recording": { - "id": "bcbb33c4-ff41-4a15-bf8f-acb5bc8c9bf6", - "length": "228000", - "title": "F\u00fcr immer" - }, - "track_or_recording_length": "228000" - }, - { - "id": "9275b807-e4d9-411c-8ad5-8227049a0683", - "length": "245000", - "number": "19", - "position": "19", - "recording": { - "id": "2061a724-c03f-4e5e-95ca-03718327443f", - "length": "245000", - "title": "Bridge of Light" - }, - "track_or_recording_length": "245000" - }, - { - "id": "cb63324c-a7ce-4e58-8452-bcf22bc860c9", - "length": "213000", - "number": "20", - "position": "20", - "recording": { - "id": "54f67fc6-380b-4dc6-a0ec-27f914759c9f", - "length": "213000", - "title": "You Let the Sun Go Down" - }, - "track_or_recording_length": "213000" - } - ] - } - ], - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "85752fda-13c4-31a3-bee5-0e5cb1f51dad", - "iso-3166-1-code-list": [ - "DE" - ], - "name": "Germany", - "sort-name": "Germany" - }, - "date": "2012-02-24" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Toggo Music 30" - }, - { - "barcode": "5099964416526", - "country": "BE", - "cover-art-archive": { - "artwork": "true", - "back": "false", - "count": "1", - "front": "true" - }, - "date": "2012-03-29", - "id": "adfee805-9a7f-4cc4-947b-39480045d8ac", - "medium-count": 1, - "medium-list": [ - { - "format": "CD", - "position": "1", - "track-count": 22, - "track-list": [ - { - "id": "f4a23dd2-ad2c-308c-8ba8-54eabce7f2bb", - "length": "218000", - "number": "1", - "position": "1", - "recording": { - "id": "54f41803-d67e-4884-863c-740acb44e0d5", - "length": "216000", - "title": "I Follow Rivers (Live @ Giel! - VARA/3FM)" - }, - "title": "I Follow Rivers", - "track_or_recording_length": "218000" - }, - { - "id": "c920a3f9-8756-3f5f-885c-46b590511cda", - "length": "211000", - "number": "2", - "position": "2", - "recording": { - "id": "351126f3-9028-4822-8544-6c715e55b9fe", - "length": "211000", - "title": "Home Again" - }, - "track_or_recording_length": "211000" - }, - { - "id": "fcac843e-8fb3-3cb9-b7a4-4a854fde69c8", - "length": "223000", - "number": "3", - "position": "3", - "recording": { - "id": "93bcbeed-f8c8-47d4-8c00-c0c6f47c5932", - "length": "221826", - "title": "Bagagedrager" - }, - "track_or_recording_length": "223000" - }, - { - "id": "e5f1f2ae-e920-327d-9b1f-295aed775be8", - "length": "190000", - "number": "4", - "position": "4", - "recording": { - "id": "9b12bad9-772d-415b-8204-d08263e47ffb", - "length": "190000", - "title": "Take You Higher" - }, - "track_or_recording_length": "190000" - }, - { - "id": "b4641cee-6c1c-34a2-ad65-f0c43c3040ec", - "length": "279000", - "number": "5", - "position": "5", - "recording": { - "id": "574eafc0-6909-4278-94fa-083ea5aefc61", - "length": "278000", - "title": "Paradise" - }, - "track_or_recording_length": "279000" - }, - { - "id": "50543b86-0654-352a-8fc6-3f11e88d785d", - "length": "170000", - "number": "6", - "position": "6", - "recording": { - "disambiguation": "with orchestra", - "id": "db182e96-2096-47f1-af18-cba6ea93aac6", - "length": "171000", - "title": "Happiness" - }, - "track_or_recording_length": "170000" - }, - { - "id": "9811a4b1-9635-3c88-a9dc-1d6c7cd7c15a", - "length": "195000", - "number": "7", - "position": "7", - "recording": { - "id": "fffca927-770c-4bfc-8254-ea7b2bdc9f00", - "length": "196000", - "title": "Next to Me" - }, - "track_or_recording_length": "195000" - }, - { - "id": "75a3687d-6203-35c8-976c-65eedf8395ed", - "length": "193000", - "number": "8", - "position": "8", - "recording": { - "id": "6566e3b8-8b65-4457-89ea-fcd4b1b98e50", - "length": "193840", - "title": "Can\u2019t Say No" - }, - "title": "Can't Say No", - "track_or_recording_length": "193000" - }, - { - "id": "eb1f0351-65c3-30f5-b7e0-6272b0be9f3b", - "length": "179000", - "number": "9", - "position": "9", - "recording": { - "id": "4970c98e-f26f-4766-8636-92810907227a", - "length": "179306", - "title": "Hot Right Now" - }, - "track_or_recording_length": "179000" - }, - { - "id": "298d6130-9312-3057-93ad-b86418763dc3", - "length": "195000", - "number": "10", - "position": "10", - "recording": { - "id": "ff837bc4-757d-4cad-a102-8e70a0aeefbb", - "length": "197000", - "title": "One Thing" - }, - "track_or_recording_length": "195000" - }, - { - "id": "28554c00-0a68-3699-8cd2-62b98fffa8b4", - "length": "200000", - "number": "11", - "position": "11", - "recording": { - "id": "245dd11b-f0dd-4a61-9e88-81fde1706c26", - "length": "200000", - "title": "You da One" - }, - "track_or_recording_length": "200000" - }, - { - "id": "0e4e4a9a-6b70-3c77-a383-34b768f0ed31", - "length": "227000", - "number": "12", - "position": "12", - "recording": { - "id": "2d6f51c6-afc5-457e-9c58-689679c08d30", - "length": "227000", - "title": "The One That Got Away" - }, - "title": "The One that Got Away", - "track_or_recording_length": "227000" - }, - { - "id": "e6f417e2-922c-319e-847f-1a141b8f0196", - "length": "217000", - "number": "13", - "position": "13", - "recording": { - "id": "d0287cc4-19bb-461d-bbbd-0a31e1075e0c", - "length": "217000", - "title": "Get Outta My Way" - }, - "track_or_recording_length": "217000" - }, - { - "id": "044ed10f-053d-3784-94d4-dcce2183d85a", - "length": "194000", - "number": "14", - "position": "14", - "recording": { - "id": "b1712667-8305-43d3-bcce-1afbec1347df", - "length": "194000", - "title": "Momentum" - }, - "track_or_recording_length": "194000" - }, - { - "id": "646dba5c-0dd4-32a0-bfee-7af0bf0c6c86", - "length": "235000", - "number": "15", - "position": "15", - "recording": { - "id": "0404d8b1-1394-45ca-8fd9-e738a7c7b839", - "length": "235000", - "title": "Read All About It" - }, - "title": "Read All About it", - "track_or_recording_length": "235000" - }, - { - "id": "48e40bbc-7966-31e3-9904-96d815a99465", - "length": "228000", - "number": "16", - "position": "16", - "recording": { - "id": "f7139a78-fdaa-4c70-82ea-ff276b483076", - "length": "228000", - "title": "Alone Again" - }, - "track_or_recording_length": "228000" - }, - { - "id": "3a113dfd-1064-3324-8883-2989592d85d9", - "length": "192000", - "number": "17", - "position": "17", - "recording": { - "id": "2c979768-7c1c-4fe6-9b01-bc64779be567", - "length": "194440", - "title": "Seven Odd Years" - }, - "track_or_recording_length": "192000" - }, - { - "id": "cdf49ee9-8c90-31e8-b06d-993947a49564", - "length": "207000", - "number": "18", - "position": "18", - "recording": { - "id": "95495197-8e3c-4fa2-8091-bf5f39351f10", - "length": "207000", - "title": "Young, Wild & Free" - }, - "track_or_recording_length": "207000" - }, - { - "id": "721dccc8-05f8-3018-aab5-63f9704cc5f2", - "length": "228000", - "number": "19", - "position": "19", - "recording": { - "id": "cc2b9873-1d20-4180-81d4-fe963ba680c3", - "length": "228786", - "title": "She Doesn\u2019t Mind" - }, - "title": "She Doesn't Mind", - "track_or_recording_length": "228000" - }, - { - "id": "04190a4c-5a5c-3e0e-91a9-acb3057545b6", - "length": "201000", - "number": "20", - "position": "20", - "recording": { - "id": "e290a8c4-9f3c-4690-ba84-b4b98c035fcb", - "length": "201000", - "title": "Waar is Kraan" - }, - "track_or_recording_length": "201000" - }, - { - "id": "0c722da3-01f7-305c-88fe-77c37678737a", - "length": "190000", - "number": "21", - "position": "21", - "recording": { - "id": "12d29146-de9a-4a1b-bba7-7df89d8ddf8d", - "length": "188000", - "title": "Rock the Boat" - }, - "track_or_recording_length": "190000" - }, - { - "id": "7840ecf2-5441-3508-9bf3-15cdb5171524", - "length": "166000", - "number": "22", - "position": "22", - "recording": { - "id": "f04f2b7a-29a2-4df2-a099-5a06712db862", - "length": "166000", - "title": "Ai se eu te pego!" - }, - "title": "Ai Se Eu Te Pego!", - "track_or_recording_length": "166000" - } - ] - } - ], - "packaging": "Jewel Case", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "5b8a5ee5-0bb3-34cf-9a75-c27c44e341fc", - "iso-3166-1-code-list": [ - "BE" - ], - "name": "Belgium", - "sort-name": "Belgium" - }, - "date": "2012-03-29" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "MNM Big Hits 2012.1" - }, - { - "asin": "B007O4K0AU", - "barcode": "", - "country": "GB", - "cover-art-archive": { - "artwork": "true", - "back": "false", - "count": "2", - "front": "true" - }, - "date": "2012-04-02", - "id": "c0a24c6a-cdb7-426e-ac3e-24fd37015c90", - "medium-count": 2, - "medium-list": [ - { - "format": "Digital Media", - "position": "1", - "track-count": 21, - "track-list": [ - { - "id": "99365ea3-acc4-38de-a446-f7c2b44a0d1e", - "length": "246560", - "number": "1", - "position": "1", - "recording": { - "id": "5b6ad1ba-9e08-4570-bcef-e3343519070a", - "length": "245000", - "title": "Somebody That I Used to Know" - }, - "track_or_recording_length": "246560" - }, - { - "id": "d6fbeb43-fb8b-3bc1-91d5-17f5f7fdc54f", - "length": "259173", - "number": "2", - "position": "2", - "recording": { - "id": "c9ce338d-5fad-47b3-857f-5ca9faf48127", - "length": "259173", - "title": "Paradise (radio edit)" - }, - "title": "Paradise", - "track_or_recording_length": "259173" - }, - { - "id": "a6bd0ba0-a8f0-3b9a-8e68-799a251c703b", - "length": "184453", - "number": "3", - "position": "3", - "recording": { - "id": "28e418ee-9fb6-49e0-9f75-03184a09083b", - "length": "184000", - "title": "Lego House" - }, - "track_or_recording_length": "184453" - }, - { - "id": "e1328489-27d1-3041-9d96-62a4f7ea1ec1", - "length": "195706", - "number": "4", - "position": "4", - "recording": { - "id": "fffca927-770c-4bfc-8254-ea7b2bdc9f00", - "length": "196000", - "title": "Next to Me" - }, - "track_or_recording_length": "195706" - }, - { - "id": "576b089d-accb-318b-9623-49880754a7ad", - "length": "221546", - "number": "5", - "position": "5", - "recording": { - "id": "5e89cda2-94ab-4f90-bb40-241e61cdd247", - "length": "221946", - "title": "What Doesn\u2019t Kill You (Stronger)" - }, - "title": "Stronger (What Doesn't Kill You)", - "track_or_recording_length": "221546" - }, - { - "id": "001e1d10-3b26-3388-b1a1-ec8cd8305733", - "length": "200826", - "number": "6", - "position": "6", - "recording": { - "disambiguation": "edit", - "id": "4c6d5e16-7687-4a52-b7cc-ebf1aac5ecc9", - "length": "200826", - "title": "Domino" - }, - "track_or_recording_length": "200826" - }, - { - "id": "5362b25a-6625-326e-89ba-560c6847b2a2", - "length": "245520", - "number": "7", - "position": "7", - "recording": { - "id": "0069c0f7-9274-4b4b-a10e-110b90a4bcc0", - "length": "245000", - "title": "Titanium" - }, - "track_or_recording_length": "245520" - }, - { - "id": "e27f4bc4-d948-3c5c-a493-05f5a2dc2af8", - "length": "247160", - "number": "8", - "position": "8", - "recording": { - "id": "27a3e84a-bdae-4fc3-9440-218371c6143d", - "length": "247000", - "title": "Good Feeling" - }, - "track_or_recording_length": "247160" - }, - { - "id": "bd672994-fa6f-30f5-8e6c-14a05afb40b1", - "length": "228293", - "number": "9", - "position": "9", - "recording": { - "id": "4d1d764d-790a-439d-bb5d-0fc14ca00d55", - "length": "228293", - "title": "The One That Got Away (radio mix)" - }, - "track_or_recording_length": "228293" - }, - { - "id": "6faf5473-19ae-36cd-a077-15a8e1cff519", - "length": "263000", - "number": "10", - "position": "10", - "recording": { - "id": "f8bf90d6-2cc4-426d-9d63-c6eacf8d2076", - "length": "263893", - "title": "Last Time" - }, - "track_or_recording_length": "263000" - }, - { - "id": "ae325f1e-50bd-30e1-9538-6c661dd74558", - "length": "217106", - "number": "11", - "position": "11", - "recording": { - "id": "e8650a53-60a2-4420-b4d0-f0f67ea58a43", - "length": "216000", - "title": "Mama Do the Hump" - }, - "track_or_recording_length": "217106" - }, - { - "id": "f8fe2898-12e7-3989-ab0d-4224e0a99637", - "length": "202880", - "number": "12", - "position": "12", - "recording": { - "id": "f3af8160-e4e1-4ee7-91a3-3658c5d79d26", - "length": "202693", - "title": "Dance With Me Tonight" - }, - "track_or_recording_length": "202880" - }, - { - "id": "34649665-4964-3b0c-857f-6092a695e9aa", - "length": "195200", - "number": "13", - "position": "13", - "recording": { - "id": "f21f5ab6-0185-4701-998f-1d9586d2c8c2", - "length": "195200", - "title": "Kiss the Stars" - }, - "track_or_recording_length": "195200" - }, - { - "id": "a805d27a-34ae-32cc-9f07-500d705f65f7", - "length": "197240", - "number": "14", - "position": "14", - "recording": { - "id": "ff837bc4-757d-4cad-a102-8e70a0aeefbb", - "length": "197000", - "title": "One Thing" - }, - "track_or_recording_length": "197240" - }, - { - "id": "fc9e85da-14b1-34f7-9651-de9f88baa5e1", - "length": "177533", - "number": "15", - "position": "15", - "recording": { - "id": "d3897b23-0dba-46d9-9dd1-54812c01babc", - "length": "177533", - "title": "Seven Nation Army" - }, - "track_or_recording_length": "177533" - }, - { - "id": "c2bb6313-81f0-3230-92fe-30aecc4b525a", - "length": "215960", - "number": "16", - "position": "16", - "recording": { - "disambiguation": "radio edit", - "id": "b68bc787-a92b-4560-9170-420bcf42a91c", - "length": "215960", - "title": "Shake It Out" - }, - "track_or_recording_length": "215960" - }, - { - "id": "a5a88f80-7893-3df4-b879-3be09d8414c7", - "length": "277440", - "number": "17", - "position": "17", - "recording": { - "id": "c70ed9c3-ebe6-400f-87e2-33ebcbf1fd91", - "length": "277440", - "title": "Take Care (edited)" - }, - "track_or_recording_length": "277440" - }, - { - "id": "e9e345c9-8d6f-3e2d-92ad-45007d0ecda9", - "length": "285826", - "number": "18", - "position": "18", - "recording": { - "id": "ac71eb2c-0a25-4f06-acff-13bec69d06e1", - "length": "286000", - "title": "Born to Die" - }, - "track_or_recording_length": "285826" - }, - { - "id": "23d1754c-730e-398e-8951-37e5a2ae5d2c", - "length": "204933", - "number": "19", - "position": "19", - "recording": { - "id": "d056a318-4272-458c-be4d-47ead34c3d8d", - "length": "205000", - "title": "Cannonball" - }, - "track_or_recording_length": "204933" - }, - { - "id": "36a56879-4b94-3a4e-9140-0e80e568504b", - "length": "242160", - "number": "20", - "position": "20", - "recording": { - "id": "f7c1c333-a2ff-40cc-9428-b254f1f9baa9", - "length": "240987", - "title": "Proud" - }, - "track_or_recording_length": "242160" - }, - { - "id": "d0df8318-6cfc-300b-8ad0-85f255b77111", - "length": "171920", - "number": "21", - "position": "21", - "recording": { - "id": "b666c6cd-f044-4455-bc62-d2af0f3ec489", - "length": "170366", - "title": "Wherever You Are" - }, - "track_or_recording_length": "171920" - } - ] - }, - { - "format": "Digital Media", - "position": "2", - "track-count": 21, - "track-list": [ - { - "id": "1d54dcd8-6f95-3732-ac87-486cf09c89bb", - "length": "201146", - "number": "1", - "position": "1", - "recording": { - "id": "c8200a2c-fbae-4c01-be04-94818a069364", - "length": "199480", - "title": "Sexy and I Know It" - }, - "track_or_recording_length": "201146" - }, - { - "id": "478011af-de54-3982-9ccd-56f1e692ee78", - "length": "235066", - "number": "2", - "position": "2", - "recording": { - "disambiguation": "album version", - "id": "ffbe9f3f-57a4-4453-b1dc-4fc5a5f2bc2a", - "length": "233000", - "title": "Wild Ones" - }, - "track_or_recording_length": "235066" - }, - { - "id": "a8a8b290-52f2-301a-9a62-3ab22aeab324", - "length": "264640", - "number": "3", - "position": "3", - "recording": { - "id": "cbf0e52b-d15d-4506-a951-fd753bd9234f", - "length": "264000", - "title": "Marry the Night" - }, - "track_or_recording_length": "264640" - }, - { - "id": "c5aca0e9-e8b9-30ba-98bd-56a50de75200", - "length": "200560", - "number": "4", - "position": "4", - "recording": { - "disambiguation": "radio edit", - "id": "6528ab6c-74ca-41d8-8eb8-9bb61c82a78f", - "length": "199000", - "title": "Levels" - }, - "track_or_recording_length": "200560" - }, - { - "id": "4ed6bbc6-5dd6-3ca9-a13f-d2a6ce964de1", - "length": "228120", - "number": "5", - "position": "5", - "recording": { - "id": "a006dcb5-2ab1-407a-b3eb-083ca2ace162", - "length": "228120", - "title": "International Love" - }, - "track_or_recording_length": "228120" - }, - { - "id": "cff63635-d416-39b7-a4c2-1583cbc90f9d", - "length": "236706", - "number": "6", - "position": "6", - "recording": { - "id": "1dda6c46-b9f8-4d2c-8266-4e5767ea0777", - "length": "236706", - "title": "Dedication to My Ex (Miss That) (super clean version)" - }, - "track_or_recording_length": "236706" - }, - { - "id": "c5c9ec8a-9608-3bc4-adbc-1b897ccfed2a", - "length": "228626", - "number": "7", - "position": "7", - "recording": { - "id": "348ebaaa-9fb8-4429-a932-3b9d21b511ee", - "length": "227000", - "title": "She Doesn\u2019t Mind" - }, - "title": "She Doesn't Mind", - "track_or_recording_length": "228626" - }, - { - "id": "b6e6ee75-21ca-3833-89b3-289ca8836a8a", - "length": "195040", - "number": "8", - "position": "8", - "recording": { - "disambiguation": "edit", - "id": "21bf7f7f-5472-4e1c-98a4-ba7b37c75aa0", - "length": "194306", - "title": "Troublemaker" - }, - "track_or_recording_length": "195040" - }, - { - "id": "32872d21-d410-35f4-a335-e0f294a7c432", - "length": "228893", - "number": "9", - "position": "9", - "recording": { - "id": "b81c88ef-048f-4d04-b8b9-d33f5f59d9a9", - "length": "230000", - "title": "Elephant" - }, - "track_or_recording_length": "228893" - }, - { - "id": "e91a624c-a483-3689-a6cf-9aa59e98e8aa", - "length": "176773", - "number": "10", - "position": "10", - "recording": { - "id": "4e98fe6f-bd61-427d-a611-e370cc34389b", - "length": "177000", - "title": "Antidote (radio edit)" - }, - "track_or_recording_length": "176773" - }, - { - "id": "4fd6858c-a644-3068-885b-18009f3a08a6", - "length": "176146", - "number": "11", - "position": "11", - "recording": { - "id": "24351c69-554f-4f1a-b0ff-49511888ef8e", - "length": "175082", - "title": "When I Was a Youngster" - }, - "track_or_recording_length": "176146" - }, - { - "id": "5166c4e6-2753-3b7d-977b-e997a3810f65", - "length": "184733", - "number": "12", - "position": "12", - "recording": { - "id": "17e47b98-d314-4f07-bd07-0d7e38a30ae7", - "length": "184733", - "title": "Love Me" - }, - "track_or_recording_length": "184733" - }, - { - "id": "6133bc67-50d6-34ba-a9f2-11855084faac", - "length": "222426", - "number": "13", - "position": "13", - "recording": { - "disambiguation": "clean", - "id": "8ff90602-1b6a-4eb6-bca9-285aae876c2d", - "length": "222000", - "title": "A** Back Home (Get Yourself Back Home)" - }, - "title": "Get Yourself Back Home", - "track_or_recording_length": "222426" - }, - { - "id": "22858bc2-28b0-3d1d-94d2-a15b8d44d7b6", - "length": "200640", - "number": "14", - "position": "14", - "recording": { - "disambiguation": "clean", - "id": "cfffd8ac-7db3-4cac-b0dd-66eeaf898d87", - "length": "200013", - "title": "You da One" - }, - "title": "You da One (edited)", - "track_or_recording_length": "200640" - }, - { - "id": "9b2b1c57-a34e-35c0-bca6-ed64ab7b90a4", - "length": "206946", - "number": "15", - "position": "15", - "recording": { - "id": "2c606dca-db22-44d2-856d-d5efa747ebed", - "length": "206946", - "title": "Bright Lights" - }, - "title": "Bright Lights (Good Life), Part 2", - "track_or_recording_length": "206946" - }, - { - "id": "e869f5ba-601b-37f5-8dca-d9cfe5746837", - "length": "207466", - "number": "16", - "position": "16", - "recording": { - "id": "85a74782-b93c-44b7-b78d-1b414d2f6b73", - "length": "207466", - "title": "Twilight" - }, - "track_or_recording_length": "207466" - }, - { - "id": "dfe33a36-5aaf-38e3-8824-a9128e3fd60a", - "length": "199213", - "number": "17", - "position": "17", - "recording": { - "id": "f7139a78-fdaa-4c70-82ea-ff276b483076", - "length": "228000", - "title": "Alone Again" - }, - "track_or_recording_length": "199213" - }, - { - "id": "748ea2f8-9883-3c57-8cb3-7a533ad3cd09", - "length": "230293", - "number": "18", - "position": "18", - "recording": { - "id": "72c1fa89-c055-4303-b46e-e9ba41ef2b8c", - "length": "230813", - "title": "Who You Are" - }, - "track_or_recording_length": "230293" - }, - { - "id": "cd71a71e-0889-35b2-b42c-1545dfd62648", - "length": "223613", - "number": "19", - "position": "19", - "recording": { - "id": "49a040df-8765-43c8-9001-9c607c54db8b", - "length": "223613", - "title": "Ray Charles (clean)" - }, - "track_or_recording_length": "223613" - }, - { - "id": "64988bac-6830-3d0f-bdd3-ef36ac0834a2", - "length": "247533", - "number": "20", - "position": "20", - "recording": { - "id": "200c289b-8a67-4a6a-bb0c-9692694e2176", - "length": "247533", - "title": "T.H.E. (The Hardest Ever) (radio edit)" - }, - "track_or_recording_length": "247533" - }, - { - "id": "3dafeae3-db29-37ec-a784-802e415ed2d3", - "length": "219880", - "number": "21", - "position": "21", - "recording": { - "id": "9e6584ce-cac6-403b-9251-97db7aac2186", - "length": "218000", - "title": "Rockstar" - }, - "track_or_recording_length": "219880" - } - ] - } - ], - "packaging": "None", - "quality": "normal", - "release-event-count": 1, - "release-event-list": [ - { - "area": { - "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed", - "iso-3166-1-code-list": [ - "GB" - ], - "name": "United Kingdom", - "sort-name": "United Kingdom" - }, - "date": "2012-04-02" - } - ], - "status": "Official", - "text-representation": { - "language": "eng", - "script": "Latn" - }, - "title": "Now That\u2019s What I Call Music! 81" - } - ] -} \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 49d6f4d..80731ca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -109,6 +109,17 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" version = "0.4.3" +[[package]] +category = "main" +description = "Composable style cycles" +name = "cycler" +optional = false +python-versions = "*" +version = "0.10.0" + +[package.dependencies] +six = "*" + [[package]] category = "main" description = "Internationalized Domain Names in Applications (IDNA)" @@ -147,6 +158,32 @@ parso = ">=0.5.2" [package.extras] testing = ["colorama (0.4.1)", "docopt", "pytest (>=3.9.0,<5.0.0)"] +[[package]] +category = "main" +description = "A fast implementation of the Cassowary constraint solver" +name = "kiwisolver" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.1.0" + +[package.dependencies] +setuptools = "*" + +[[package]] +category = "main" +description = "Python plotting package" +name = "matplotlib" +optional = false +python-versions = ">=3.6" +version = "3.2.0" + +[package.dependencies] +cycler = ">=0.10" +kiwisolver = ">=1.0.1" +numpy = ">=1.11" +pyparsing = ">=2.0.1,<2.0.4 || >2.0.4,<2.1.2 || >2.1.2,<2.1.6 || >2.1.6" +python-dateutil = ">=2.1" + [[package]] category = "dev" description = "McCabe checker, plugin for flake8" @@ -163,6 +200,14 @@ optional = false python-versions = ">=3.5" version = "8.2.0" +[[package]] +category = "main" +description = "multidict implementation" +name = "multidict" +optional = false +python-versions = ">=3.5" +version = "4.7.5" + [[package]] category = "main" description = "Python bindings for the MusicBrainz NGS and the Cover Art Archive webservices" @@ -210,6 +255,14 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" version = "0.7.0" +[[package]] +category = "main" +description = "Python Imaging Library (Fork)" +name = "pillow" +optional = false +python-versions = ">=3.5" +version = "7.0.0" + [[package]] category = "dev" description = "plugin and hook calling mechanisms for python" @@ -306,7 +359,7 @@ toml = "*" dev = ["isort", "flake8", "pytest", "mypy"] [[package]] -category = "dev" +category = "main" description = "Python parsing module" name = "pyparsing" optional = false @@ -339,6 +392,17 @@ version = ">=0.12" checkqa-mypy = ["mypy (v0.761)"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +[[package]] +category = "main" +description = "Extensions to the standard Python datetime module" +name = "python-dateutil" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +version = "2.8.1" + +[package.dependencies] +six = ">=1.5" + [[package]] category = "dev" description = "JSON RPC 2.0 server library" @@ -418,7 +482,7 @@ version = "0.16.0" dev = ["pytest"] [[package]] -category = "dev" +category = "main" description = "Python 2 and 3 compatibility utilities" name = "six" optional = false @@ -487,6 +551,19 @@ optional = false python-versions = "*" version = "0.1.8" +[[package]] +category = "main" +description = "A little word cloud generator" +name = "wordcloud" +optional = false +python-versions = "*" +version = "1.6.0" + +[package.dependencies] +matplotlib = "*" +numpy = ">=1.6.1" +pillow = "*" + [[package]] category = "dev" description = "A formatter for Python code." @@ -509,7 +586,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] testing = ["jaraco.itertools", "func-timeout"] [metadata] -content-hash = "b3e363ce109826fbe16ba73b6102a62254689ead837a371aecd2857fa5ed9f45" +content-hash = "6755748d710bead6ddf5f543c09fb33a09b340dcff15466f7e6759ce9c659004" python-versions = "^3.7" [metadata.files] @@ -556,6 +633,10 @@ colorama = [ {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, ] +cycler = [ + {file = "cycler-0.10.0-py2.py3-none-any.whl", hash = "sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d"}, + {file = "cycler-0.10.0.tar.gz", hash = "sha256:cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"}, +] idna = [ {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, @@ -568,6 +649,61 @@ jedi = [ {file = "jedi-0.15.2-py2.py3-none-any.whl", hash = "sha256:1349c1e8c107095a55386628bb3b2a79422f3a2cab8381e34ce19909e0cf5064"}, {file = "jedi-0.15.2.tar.gz", hash = "sha256:e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807"}, ] +kiwisolver = [ + {file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7f4dd50874177d2bb060d74769210f3bce1af87a8c7cf5b37d032ebf94f0aca3"}, + {file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:fe51b79da0062f8e9d49ed0182a626a7dc7a0cbca0328f612c6ee5e4711c81e4"}, + {file = "kiwisolver-1.1.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f790f8b3dff3d53453de6a7b7ddd173d2e020fb160baff578d578065b108a05f"}, + {file = "kiwisolver-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f2b22153870ca5cf2ab9c940d7bc38e8e9089fa0f7e5856ea195e1cf4ff43d5a"}, + {file = "kiwisolver-1.1.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:e8bf074363ce2babeb4764d94f8e65efd22e6a7c74860a4f05a6947afc020ff2"}, + {file = "kiwisolver-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:05b5b061e09f60f56244adc885c4a7867da25ca387376b02c1efc29cc16bcd0f"}, + {file = "kiwisolver-1.1.0-cp27-none-win32.whl", hash = "sha256:47b8cb81a7d18dbaf4fed6a61c3cecdb5adec7b4ac292bddb0d016d57e8507d5"}, + {file = "kiwisolver-1.1.0-cp27-none-win_amd64.whl", hash = "sha256:b64916959e4ae0ac78af7c3e8cef4becee0c0e9694ad477b4c6b3a536de6a544"}, + {file = "kiwisolver-1.1.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:682e54f0ce8f45981878756d7203fd01e188cc6c8b2c5e2cf03675390b4534d5"}, + {file = "kiwisolver-1.1.0-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:d52e3b1868a4e8fd18b5cb15055c76820df514e26aa84cc02f593d99fef6707f"}, + {file = "kiwisolver-1.1.0-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:8aa7009437640beb2768bfd06da049bad0df85f47ff18426261acecd1cf00897"}, + {file = "kiwisolver-1.1.0-cp34-none-win32.whl", hash = "sha256:26f4fbd6f5e1dabff70a9ba0d2c4bd30761086454aa30dddc5b52764ee4852b7"}, + {file = "kiwisolver-1.1.0-cp34-none-win_amd64.whl", hash = "sha256:79bfb2f0bd7cbf9ea256612c9523367e5ec51d7cd616ae20ca2c90f575d839a2"}, + {file = "kiwisolver-1.1.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:3b2378ad387f49cbb328205bda569b9f87288d6bc1bf4cd683c34523a2341efe"}, + {file = "kiwisolver-1.1.0-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:aa716b9122307c50686356cfb47bfbc66541868078d0c801341df31dca1232a9"}, + {file = "kiwisolver-1.1.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:58e626e1f7dfbb620d08d457325a4cdac65d1809680009f46bf41eaf74ad0187"}, + {file = "kiwisolver-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:e3a21a720791712ed721c7b95d433e036134de6f18c77dbe96119eaf7aa08004"}, + {file = "kiwisolver-1.1.0-cp35-none-win32.whl", hash = "sha256:939f36f21a8c571686eb491acfffa9c7f1ac345087281b412d63ea39ca14ec4a"}, + {file = "kiwisolver-1.1.0-cp35-none-win_amd64.whl", hash = "sha256:9733b7f64bd9f807832d673355f79703f81f0b3e52bfce420fc00d8cb28c6a6c"}, + {file = "kiwisolver-1.1.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:acc4df99308111585121db217681f1ce0eecb48d3a828a2f9bbf9773f4937e9e"}, + {file = "kiwisolver-1.1.0-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:9105ce82dcc32c73eb53a04c869b6a4bc756b43e4385f76ea7943e827f529e4d"}, + {file = "kiwisolver-1.1.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:f16814a4a96dc04bf1da7d53ee8d5b1d6decfc1a92a63349bb15d37b6a263dd9"}, + {file = "kiwisolver-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:400599c0fe58d21522cae0e8b22318e09d9729451b17ee61ba8e1e7c0346565c"}, + {file = "kiwisolver-1.1.0-cp36-none-win32.whl", hash = "sha256:db1a5d3cc4ae943d674718d6c47d2d82488ddd94b93b9e12d24aabdbfe48caee"}, + {file = "kiwisolver-1.1.0-cp36-none-win_amd64.whl", hash = "sha256:5a52e1b006bfa5be04fe4debbcdd2688432a9af4b207a3f429c74ad625022641"}, + {file = "kiwisolver-1.1.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:a02f6c3e229d0b7220bd74600e9351e18bc0c361b05f29adae0d10599ae0e326"}, + {file = "kiwisolver-1.1.0-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:9491578147849b93e70d7c1d23cb1229458f71fc79c51d52dce0809b2ca44eea"}, + {file = "kiwisolver-1.1.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:5c7ca4e449ac9f99b3b9d4693debb1d6d237d1542dd6a56b3305fe8a9620f883"}, + {file = "kiwisolver-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a0c0a9f06872330d0dd31b45607197caab3c22777600e88031bfe66799e70bb0"}, + {file = "kiwisolver-1.1.0-cp37-none-win32.whl", hash = "sha256:8944a16020c07b682df861207b7e0efcd2f46c7488619cb55f65882279119389"}, + {file = "kiwisolver-1.1.0-cp37-none-win_amd64.whl", hash = "sha256:d3fcf0819dc3fea58be1fd1ca390851bdb719a549850e708ed858503ff25d995"}, + {file = "kiwisolver-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:933df612c453928f1c6faa9236161a1d999a26cd40abf1dc5d7ebbc6dbfb8fca"}, + {file = "kiwisolver-1.1.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:d22702cadb86b6fcba0e6b907d9f84a312db9cd6934ee728144ce3018e715ee1"}, + {file = "kiwisolver-1.1.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:210d8c39d01758d76c2b9a693567e1657ec661229bc32eac30761fa79b2474b0"}, + {file = "kiwisolver-1.1.0-cp38-none-win32.whl", hash = "sha256:76275ee077772c8dde04fb6c5bc24b91af1bb3e7f4816fd1852f1495a64dad93"}, + {file = "kiwisolver-1.1.0-cp38-none-win_amd64.whl", hash = "sha256:3b15d56a9cd40c52d7ab763ff0bc700edbb4e1a298dc43715ecccd605002cf11"}, + {file = "kiwisolver-1.1.0.tar.gz", hash = "sha256:53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75"}, +] +matplotlib = [ + {file = "matplotlib-3.2.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0711b07920919951b2c508a773c433cbe07bdad952ea84ed9d18ca7853ccbe8b"}, + {file = "matplotlib-3.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b93377c6720e7db9cbba57e856a21aae2ff707677a6ee6b3b9d485f22ed82697"}, + {file = "matplotlib-3.2.0-cp36-cp36m-win32.whl", hash = "sha256:8e931015769322ee6860cabb8f975f628788e851092fd5edbdb065b5a516e3af"}, + {file = "matplotlib-3.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:b21479a4478070c1c0f460e1bf1b65341e6a70ae0da905fcee836651450c66bb"}, + {file = "matplotlib-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0ab307e610302971012dc2387c97fc68e58c8eb00045a2c735da1b16353a3e3f"}, + {file = "matplotlib-3.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d75f5e952562f5e494ae92c1f917fc96c2ce09305a7c1bdc2e6502d3c61fbdc3"}, + {file = "matplotlib-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:9d174cc9681184023a7d520079eb0c085208761c6562710c1de7263d08217ab6"}, + {file = "matplotlib-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d281862a68b0bfce8f9e02a8e5acaa5cfbec37f37320f59b52eaf54b6423ec13"}, + {file = "matplotlib-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ee8acb1d4ee204e5cfe361d8f00d7e52c68f81c099b6c6048a3c76bf2c6b46e6"}, + {file = "matplotlib-3.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:be937f34047bc09ed22d6a19d970fdc61d5d3191aa62f3262fc7f308e6d2e7f9"}, + {file = "matplotlib-3.2.0-cp38-cp38-win32.whl", hash = "sha256:97a03e73f9ab71db8e4084894550c3af420c8ab1989b5e1306261b17576bf61b"}, + {file = "matplotlib-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:d5287cfcabad6f0f71a2627c1bbb6fb0cddacb9844f6c91f210604faa508f562"}, + {file = "matplotlib-3.2.0-pp373-pypy36_pp73-win32.whl", hash = "sha256:fc84f7c7cf1c5a9dbceadb7546818228f019d3b113ce5e362120c895fbba2944"}, + {file = "matplotlib-3.2.0.tar.gz", hash = "sha256:651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4"}, +] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, @@ -576,6 +712,25 @@ more-itertools = [ {file = "more-itertools-8.2.0.tar.gz", hash = "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"}, {file = "more_itertools-8.2.0-py3-none-any.whl", hash = "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c"}, ] +multidict = [ + {file = "multidict-4.7.5-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:fc3b4adc2ee8474cb3cd2a155305d5f8eda0a9c91320f83e55748e1fcb68f8e3"}, + {file = "multidict-4.7.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:42f56542166040b4474c0c608ed051732033cd821126493cf25b6c276df7dd35"}, + {file = "multidict-4.7.5-cp35-cp35m-win32.whl", hash = "sha256:7774e9f6c9af3f12f296131453f7b81dabb7ebdb948483362f5afcaac8a826f1"}, + {file = "multidict-4.7.5-cp35-cp35m-win_amd64.whl", hash = "sha256:c2c37185fb0af79d5c117b8d2764f4321eeb12ba8c141a95d0aa8c2c1d0a11dd"}, + {file = "multidict-4.7.5-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:e439c9a10a95cb32abd708bb8be83b2134fa93790a4fb0535ca36db3dda94d20"}, + {file = "multidict-4.7.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:85cb26c38c96f76b7ff38b86c9d560dea10cf3459bb5f4caf72fc1bb932c7136"}, + {file = "multidict-4.7.5-cp36-cp36m-win32.whl", hash = "sha256:620b37c3fea181dab09267cd5a84b0f23fa043beb8bc50d8474dd9694de1fa6e"}, + {file = "multidict-4.7.5-cp36-cp36m-win_amd64.whl", hash = "sha256:6e6fef114741c4d7ca46da8449038ec8b1e880bbe68674c01ceeb1ac8a648e78"}, + {file = "multidict-4.7.5-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:a326f4240123a2ac66bb163eeba99578e9d63a8654a59f4688a79198f9aa10f8"}, + {file = "multidict-4.7.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:dc561313279f9d05a3d0ffa89cd15ae477528ea37aa9795c4654588a3287a9ab"}, + {file = "multidict-4.7.5-cp37-cp37m-win32.whl", hash = "sha256:4b7df040fb5fe826d689204f9b544af469593fb3ff3a069a6ad3409f742f5928"}, + {file = "multidict-4.7.5-cp37-cp37m-win_amd64.whl", hash = "sha256:317f96bc0950d249e96d8d29ab556d01dd38888fbe68324f46fd834b430169f1"}, + {file = "multidict-4.7.5-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:b51249fdd2923739cd3efc95a3d6c363b67bbf779208e9f37fd5e68540d1a4d4"}, + {file = "multidict-4.7.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ae402f43604e3b2bc41e8ea8b8526c7fa7139ed76b0d64fc48e28125925275b2"}, + {file = "multidict-4.7.5-cp38-cp38-win32.whl", hash = "sha256:bb519becc46275c594410c6c28a8a0adc66fe24fef154a9addea54c1adb006f5"}, + {file = "multidict-4.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:544fae9261232a97102e27a926019100a9db75bec7b37feedd74b3aa82f29969"}, + {file = "multidict-4.7.5.tar.gz", hash = "sha256:aee283c49601fa4c13adc64c09c978838a7e812f85377ae130a24d7198c0331e"}, +] musicbrainzngs = [ {file = "musicbrainzngs-0.7.1-py2.py3-none-any.whl", hash = "sha256:e841a8f975104c0a72290b09f59326050194081a5ae62ee512f41915090e1a10"}, {file = "musicbrainzngs-0.7.1.tar.gz", hash = "sha256:ab1c0100fd0b305852e65f2ed4113c6de12e68afd55186987b8ed97e0f98e627"}, @@ -615,6 +770,30 @@ pathspec = [ {file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"}, {file = "pathspec-0.7.0.tar.gz", hash = "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"}, ] +pillow = [ + {file = "Pillow-7.0.0-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:5f3546ceb08089cedb9e8ff7e3f6a7042bb5b37c2a95d392fb027c3e53a2da00"}, + {file = "Pillow-7.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:9d2ba4ed13af381233e2d810ff3bab84ef9f18430a9b336ab69eaf3cd24299ff"}, + {file = "Pillow-7.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:ff3797f2f16bf9d17d53257612da84dd0758db33935777149b3334c01ff68865"}, + {file = "Pillow-7.0.0-cp35-cp35m-win32.whl", hash = "sha256:c18f70dc27cc5d236f10e7834236aff60aadc71346a5bc1f4f83a4b3abee6386"}, + {file = "Pillow-7.0.0-cp35-cp35m-win_amd64.whl", hash = "sha256:875358310ed7abd5320f21dd97351d62de4929b0426cdb1eaa904b64ac36b435"}, + {file = "Pillow-7.0.0-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:ab76e5580b0ed647a8d8d2d2daee170e8e9f8aad225ede314f684e297e3643c2"}, + {file = "Pillow-7.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a62ec5e13e227399be73303ff301f2865bf68657d15ea50b038d25fc41097317"}, + {file = "Pillow-7.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8ac6ce7ff3892e5deaab7abaec763538ffd011f74dc1801d93d3c5fc541feee2"}, + {file = "Pillow-7.0.0-cp36-cp36m-win32.whl", hash = "sha256:91b710e3353aea6fc758cdb7136d9bbdcb26b53cefe43e2cba953ac3ee1d3313"}, + {file = "Pillow-7.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:bf598d2e37cf8edb1a2f26ed3fb255191f5232badea4003c16301cb94ac5bdd0"}, + {file = "Pillow-7.0.0-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:5bfef0b1cdde9f33881c913af14e43db69815c7e8df429ceda4c70a5e529210f"}, + {file = "Pillow-7.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:dc058b7833184970d1248135b8b0ab702e6daa833be14035179f2acb78ff5636"}, + {file = "Pillow-7.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:c5ed816632204a2fc9486d784d8e0d0ae754347aba99c811458d69fcdfd2a2f9"}, + {file = "Pillow-7.0.0-cp37-cp37m-win32.whl", hash = "sha256:54ebae163e8412aff0b9df1e88adab65788f5f5b58e625dc5c7f51eaf14a6837"}, + {file = "Pillow-7.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:87269cc6ce1e3dee11f23fa515e4249ae678dbbe2704598a51cee76c52e19cda"}, + {file = "Pillow-7.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0a628977ac2e01ca96aaae247ec2bd38e729631ddf2221b4b715446fd45505be"}, + {file = "Pillow-7.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:62a889aeb0a79e50ecf5af272e9e3c164148f4bd9636cc6bcfa182a52c8b0533"}, + {file = "Pillow-7.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf4003aa538af3f4205c5fac56eacaa67a6dd81e454ffd9e9f055fff9f1bc614"}, + {file = "Pillow-7.0.0-cp38-cp38-win32.whl", hash = "sha256:7406f5a9b2fd966e79e6abdaf700585a4522e98d6559ce37fc52e5c955fade0a"}, + {file = "Pillow-7.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:5f7ae9126d16194f114435ebb79cc536b5682002a4fa57fa7bb2cbcde65f2f4d"}, + {file = "Pillow-7.0.0-pp373-pypy36_pp73-win32.whl", hash = "sha256:8453f914f4e5a3d828281a6628cf517832abfa13ff50679a4848926dac7c0358"}, + {file = "Pillow-7.0.0.tar.gz", hash = "sha256:4d9ed9a64095e031435af120d3c910148067087541131e82b3e8db302f4c8946"}, +] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, @@ -657,6 +836,10 @@ pytest = [ {file = "pytest-5.3.5-py3-none-any.whl", hash = "sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6"}, {file = "pytest-5.3.5.tar.gz", hash = "sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d"}, ] +python-dateutil = [ + {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, + {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, +] python-jsonrpc-server = [ {file = "python-jsonrpc-server-0.3.4.tar.gz", hash = "sha256:c73bf5495c9dd4d2f902755bedeb6da5afe778e0beee82f0e195c4655352fe37"}, {file = "python_jsonrpc_server-0.3.4-py3-none-any.whl", hash = "sha256:1f85f75f37f923149cc0aa078474b6df55b708e82ed819ca8846a65d7d0ada7f"}, @@ -747,6 +930,25 @@ wcwidth = [ {file = "wcwidth-0.1.8-py2.py3-none-any.whl", hash = "sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603"}, {file = "wcwidth-0.1.8.tar.gz", hash = "sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8"}, ] +wordcloud = [ + {file = "wordcloud-1.6.0-cp27-cp27m-macosx_10_6_x86_64.whl", hash = "sha256:b99157f068826697d93d2e5e61b1acff35591d5e534818368ccd56945b9a5f29"}, + {file = "wordcloud-1.6.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:60c9178ea11d6537f19dad7eb5387f2516737796827710c9409ab9602d9493c7"}, + {file = "wordcloud-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:0baf47567bd426bf65963d53a1aaa69af35c2e096dc0ad9073efd5833cccd20a"}, + {file = "wordcloud-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:52d0772e385e38144be2bdb58a0d7817f2c80db0640e1efad699cff8ea86533d"}, + {file = "wordcloud-1.6.0-cp34-cp34m-macosx_10_6_x86_64.whl", hash = "sha256:61156874a21fffb46cdfb3518bbc9865fbfe9973ecc36eff20e86792687e439b"}, + {file = "wordcloud-1.6.0-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:358f4ead931bc8297de3dbd3a26ce8d1e3fe27c1027cce091c1b7037e4ba4904"}, + {file = "wordcloud-1.6.0-cp34-cp34m-win_amd64.whl", hash = "sha256:473b660baee64578dad272a18253b59245a337f5dfa3a186e32cf20b0eee4110"}, + {file = "wordcloud-1.6.0-cp35-cp35m-macosx_10_6_x86_64.whl", hash = "sha256:950882b89298c318e5f7cf10027f00b4e09402e18f719cb656aea5209a57e5a9"}, + {file = "wordcloud-1.6.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a8d829e19431709c1310a505687fc7c0f869c48259f4a55b5bf387642ed6da46"}, + {file = "wordcloud-1.6.0-cp35-cp35m-win_amd64.whl", hash = "sha256:e9ae81e8dbb5953f8cf94083b990c760b179b4000dae2babd14827d61230fc69"}, + {file = "wordcloud-1.6.0-cp36-cp36m-macosx_10_6_x86_64.whl", hash = "sha256:ae6c0030a7fd09bd35713592ba005da9457f7d38f46dc807484c5e0a379d813c"}, + {file = "wordcloud-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c59387b35af772626d4a87b986eb8ab29d3d7ffca6f94da95f4c3a0961407df3"}, + {file = "wordcloud-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:b0256ca213eb52e5261307e64faaf242742ada1322bb9d5090ecdaa9b44540ee"}, + {file = "wordcloud-1.6.0-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:fc3db0cc71e4d5666f732c5b4b3c04a0d58242579cb6c6e5146ffd2890cc5d57"}, + {file = "wordcloud-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d4b970d4d30bc9baec9e8b2d7e69fb9771576bb09d6b6f6ce6f22403ca58d6de"}, + {file = "wordcloud-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3971ca6042745169e9645b3bbce64b790f8c211ad7c7d265049992506e033212"}, + {file = "wordcloud-1.6.0.tar.gz", hash = "sha256:4335deb87b7cd9f8a6ce12de0257d15f14f98874f326e7a839f27b2c8ac792ca"}, +] yapf = [ {file = "yapf-0.29.0-py2.py3-none-any.whl", hash = "sha256:cad8a272c6001b3401de3278238fdc54997b6c2e56baa751788915f879a52fca"}, {file = "yapf-0.29.0.tar.gz", hash = "sha256:712e23c468506bf12cadd10169f852572ecc61b266258422d45aaf4ad7ef43de"}, diff --git a/pyproject.toml b/pyproject.toml index c02ffbc..1068d84 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,8 @@ addict = "^2.2.1" progress = "^1.5" numpy = "^1.18.1" beautifultable = "^0.8.0" +wordcloud = "^1.6.0" +multidict = "^4.7.5" [tool.poetry.dev-dependencies] pytest = "^5.2" diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000..c04e13d Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/musicbrainzapi/.DS_Store b/src/musicbrainzapi/.DS_Store new file mode 100644 index 0000000..7715f7f Binary files /dev/null and b/src/musicbrainzapi/.DS_Store differ diff --git a/src/musicbrainzapi/api/.DS_Store b/src/musicbrainzapi/api/.DS_Store new file mode 100644 index 0000000..2d5534a Binary files /dev/null and b/src/musicbrainzapi/api/.DS_Store differ diff --git a/src/musicbrainzapi/api/command_builders/__init__.py b/src/musicbrainzapi/api/command_builders/__init__.py deleted file mode 100644 index 3bbab75..0000000 --- a/src/musicbrainzapi/api/command_builders/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import lyrics diff --git a/src/musicbrainzapi/api/command_builders/test.py b/src/musicbrainzapi/api/command_builders/test.py deleted file mode 100644 index a2d703d..0000000 --- a/src/musicbrainzapi/api/command_builders/test.py +++ /dev/null @@ -1,110 +0,0 @@ -import musicbrainzngs -from musicbrainzapi import __header__, __version__ -import addict - -from pprint import pprint - - -def main(): - musicbrainzngs.set_useragent( - __header__.__header__, __version__.__version__ - ) - resp_0 = musicbrainzngs.browse_release_groups( - # artist='1a425bbd-cca4-4b2c-aeb7-71cb176c828a', - artist='0383dadf-2a4e-4d10-a46a-e9e041da8eb3', - release_type=['album'], - limit=100, - ) - # pprint(resp_0) - resp_0 = addict.Dict(resp_0) - - release_group_ids = addict.Dict() - album_info = addict.Dict() - - release_group_ids = addict.Dict( - (i.id, i.title) - for i in resp_0['release-group-list'] - if i.type == 'Album' - ) - - all_albums = list() - - pprint(release_group_ids) - - pprint(len(release_group_ids)) - - for id, alb in release_group_ids.items(): - # print(id, alb) - - resp_1 = addict.Dict( - musicbrainzngs.browse_releases( - release_group=id, - release_type=['album'], - includes=['recordings'], - limit=100, - ) - ) - - album_track_count = [ - i['medium-list'][0]['track-count'] for i in resp_1['release-list'] - ] - - max_track_pos = album_track_count.index(max(album_track_count)) - - # print(max_track_pos) - - # print(album_track_count) - - album_tracks = resp_1['release-list'][max_track_pos] - - album_year = resp_1['release-list'][max_track_pos].date.split('-')[0] - - album_tracks = addict.Dict( - ( - alb + f' [{album_year}]', - [ - i.recording.title - for i in resp_1['release-list'][max_track_pos][ - 'medium-list' - ][0]['track-list'] - ], - ) - ) - - # pprint(resp_1['release-list'][3]) - # print(max_track_pos) - # pprint(album_tracks) - - all_albums.append(album_tracks) - - pprint(all_albums) - raise (SystemExit) - - # pprint(album_info) - - # resp_1 = addict.Dict( - # musicbrainzngs.browse_releases( - # release_group='1174aa3d-1c9e-4745-be8d-e21a61b1a22d', - # release_type=['album'], - # includes=['recordings'], - # limit=100, - # ) - # ) - - # resp_1 = addict.Dict(resp_1) - - # pprint(resp_1) - - # print(resp_1['release-list'][0]['medium-list'][0]['track-count']) - - # album_track_count = [ - # i['medium-list'][0]['track-count'] for i in resp_1['release-list'] - # ] - - # max_track_count = print(max(album_track_count)) - - # album = addict.Dict(()) - - -if __name__ == '__main__': - main() diff --git a/src/musicbrainzapi/api/lyrics/__init__.py b/src/musicbrainzapi/api/lyrics/__init__.py new file mode 100644 index 0000000..ddb4285 --- /dev/null +++ b/src/musicbrainzapi/api/lyrics/__init__.py @@ -0,0 +1,140 @@ +from __future__ import annotations +from typing import Union, Dict, List +from dataclasses import dataclass +import math + +from beautifultable import BeautifulTable +import click +import numpy as np + + +@dataclass +class Lyrics: + """Lyrics object for an artist. + """ + + artist_id: str + artist: str + country: Union[str, None] + all_albums_with_tracks: List[Dict[str, List[str]]] + all_albums_with_lyrics: List[Dict[str, List[str]]] + all_albums_lyrics_count: List[Dict[str, List[List[str, int]]]] + all_albums_lyrics_sum: List[Dict[str, List[int, str]]] + album_statistics: Dict[str, Dict[str, int]] + year_statistics: Dict[str, Dict[str, int]] + + _attributes = [ + 'all_albums_with_tracks', + 'all_albums_with_lyrics', + 'all_albums_lyrics_count', + 'all_albums_lyrics_sum', + 'album_statistics', + 'year_statistics', + ] + + def __init__(self) -> None: + pass + + def show_summary(self) -> None: + """Show the average word count for all lyrics + + Returns + ------- + None + """ + all_averages = [] + + for i in self.album_statistics.values(): + try: + all_averages.append(i['avg']) + except (TypeError, ValueError): + pass + # print(all_averages) + try: + final_average = math.ceil(np.mean(all_averages)) + except ValueError: + click.echo( + 'Oops! https://lyrics.ovh couldn\'t find any lyrics across any' + ' album. This is caused by inconsistent Artist names from' + ' Musicbrainz and lyrics.ovh. Try another artist.' + ) + raise (SystemExit) + output = BeautifulTable(max_width=200) + output.set_style(BeautifulTable.STYLE_BOX_ROUNDED) + output.column_headers = [ + 'Average number of words in tracks across all albums\n' + f'for {self.artist}' + ] + output.append_row([final_average]) + click.echo(output) + + return self + + def show_summary_statistics(self, group_by: str) -> None: + """Summary + + Parameters + ---------- + group_by : str + Parameter to group statistics by. Valid options are album or year + + Returns + ------- + None + """ + stats_obj = getattr(self, f'{group_by}_statistics') + stats = [ + 'avg', + 'std', + 'min', + 'max', + 'median', + 'count', + 'p_10', + 'p_25', + 'p_75', + 'p_90', + ] + output_0 = BeautifulTable(max_width=200) + output_0.set_style(BeautifulTable.STYLE_BOX_ROUNDED) + output_0.column_headers = [ + 'Descriptive statistics for number of words in tracks across all' + f' {group_by}s\nfor {self.artist}' + ] + output_1 = BeautifulTable(max_width=200) + output_1.set_style(BeautifulTable.STYLE_BOX_ROUNDED) + output_1.column_headers = [ + group_by, + stats[0], + stats[1], + stats[2], + stats[3], + stats[4], + stats[5], + stats[6], + stats[7], + stats[8], + stats[9], + ] + for group, s in stats_obj.items(): + try: + output_1.append_row( + [ + group, + s.get(stats[0]), + s.get(stats[1]), + s.get(stats[2]), + s.get(stats[3]), + s.get(stats[4]), + s.get(stats[5]), + s.get(stats[6]), + s.get(stats[7]), + s.get(stats[8]), + s.get(stats[9]), + ] + ) + except AttributeError: + continue + output_0.append_row([output_1]) + click.echo(output_0) + return self diff --git a/src/musicbrainzapi/api/command_builders/lyrics.py b/src/musicbrainzapi/api/lyrics/builder.py similarity index 55% rename from src/musicbrainzapi/api/command_builders/lyrics.py rename to src/musicbrainzapi/api/lyrics/builder.py index dfcfd60..f382c28 100644 --- a/src/musicbrainzapi/api/command_builders/lyrics.py +++ b/src/musicbrainzapi/api/lyrics/builder.py @@ -1,107 +1,49 @@ from __future__ import annotations -from abc import ABC, abstractmethod, abstractstaticmethod -from dataclasses import dataclass - -# from pprint import pprint -from typing import Union, List, Dict from collections import Counter import html import json +import math import os import string -import math +from typing import Union, Dict -from beautifultable import BeautifulTable -import musicbrainzngs -import click import addict -import requests +import click +import musicbrainzngs import numpy as np +import requests +from musicbrainzapi.api.lyrics.concrete_builder import LyricsConcreteBuilder +from musicbrainzapi.api.lyrics import Lyrics from musicbrainzapi.api import authenticate -class LyricsConcreteBuilder(ABC): - """docstring for Lyrics""" - - @property - @abstractmethod - def product(self) -> None: - pass - - @property - @abstractmethod - def artist(self) -> str: - pass - - @artist.setter - @abstractmethod - def artist(self, artist: str) -> None: - pass - - @property - @abstractmethod - def country(self) -> Union[str, None]: - pass - - @country.setter - @abstractmethod - def country(self, country: Union[str, None]) -> None: - pass - - @property - @abstractmethod - def artist_id(self) -> str: - pass - - @artist_id.setter - @abstractmethod - def artist_id(self, artist_id: str) -> None: - pass - - @abstractstaticmethod - def set_useragent(): - authenticate.set_useragent() - - # @abstractstaticmethod - # def browse_releases(self) -> dict: - # pass - - @abstractmethod - def __init__(self) -> None: - pass - - @abstractmethod - def reset(self) -> None: - pass - - @abstractmethod - def find_artists(self) -> None: - pass - - @abstractmethod - def sort_artists(self) -> None: - pass - - @abstractmethod - def get_accuracy_scores(self) -> None: - pass - - @abstractmethod - def get_top_five_results(self) -> None: - pass - - @abstractmethod - def find_all_albums(self) -> None: - pass - - @abstractmethod - def find_all_tracks(self) -> None: - pass - - class LyricsBuilder(LyricsConcreteBuilder): - """docstring for LyricsBuilder""" + """docstring for LyricsBuilder + + Attributes + ---------- + album_statistics : addict.Dict + Dictionary containing album statistics + all_albums : list + List of all albums + track titles + all_albums_lyrics : list + List of all albums + track lyrics + all_albums_lyrics_count : list + List of all albums + track lyrics counted by each word + all_albums_lyrics_sum : list + List of all albums + track lyrics counted and summed up. + all_albums_lyrics_url : list + List of all albums + link to lyrics api for each track. + musicbrainz_artists : addict.Dict + Dictionary of response from Musicbrainzapi + release_group_ids : addict.Dict + Dictionary of Musicbrainz release-group ids + total_track_count : int + Total number of tracks across all albums + year_statistics : addict.Dict + Dictionary containing album statistics + """ @property def product(self) -> Lyrics: @@ -152,25 +94,44 @@ class LyricsBuilder(LyricsConcreteBuilder): self.reset() def reset(self) -> None: + """Reset the builder and create new product. + """ self._product = Lyrics() def find_artists(self) -> None: + """Find artists from the musicbrainz api + + Returns + ------- + None + """ self.musicbrainz_artists = musicbrainzngs.search_artists( artist=self.artist, country=self.country ) - # pprint(self.musicbrainz_artists['artist-list']) return self def sort_artists(self) -> None: + """Sort the artists from the Musicbrainzapi + + Returns + ------- + None + """ self._sort_names = dict( - (i.get('id'), f'{i.get("sort-name")} | {i.get("disambiguation")}') + (i.get('id'), f'{i.get("name")} | {i.get("disambiguation")}') if i.get('disambiguation') is not None - else (i.get('id'), f'{i.get("sort-name")}') + else (i.get('id'), f'{i.get("name")}') for i in self.musicbrainz_artists['artist-list'] ) return self def get_accuracy_scores(self) -> None: + """Get accuracy scores from the Musicbrainzapi + + Returns + ------- + None + """ self._accuracy_scores = dict( (i.get('id'), int(i.get('ext:score', '0'))) for i in self.musicbrainz_artists['artist-list'] @@ -178,6 +139,12 @@ class LyricsBuilder(LyricsConcreteBuilder): return self def get_top_five_results(self) -> None: + """Get the top five artists from the Musicbrainzapi + + Returns + ------- + None + """ self._top_five_results = dict( (i, self._accuracy_scores.get(i)) for i in sorted( @@ -189,6 +156,12 @@ class LyricsBuilder(LyricsConcreteBuilder): return self def find_all_albums(self) -> None: + """Find all albums for the chosen artist + + Returns + ------- + None + """ limit, offset, page = (100, 0, 1) resp_0 = addict.Dict( @@ -245,6 +218,12 @@ class LyricsBuilder(LyricsConcreteBuilder): return self def find_all_tracks(self) -> None: + """Find all tracks from all albums. + + Returns + ------- + None + """ self.all_albums = list() total_albums = len(self.release_group_ids) self.total_track_count = 0 @@ -309,6 +288,12 @@ class LyricsBuilder(LyricsConcreteBuilder): return self def find_lyrics_urls(self) -> None: + """Construct the URL for the lyrics api. + + Returns + ------- + None + """ self.all_albums_lyrics_url = list() for x in self.all_albums: for alb, tracks in x.items(): @@ -326,8 +311,13 @@ class LyricsBuilder(LyricsConcreteBuilder): # pprint(self.all_albums_lyrics_url) return self - # change this for progressbar for i loop def find_all_lyrics(self) -> None: + """Get lyrics for each track from the lyrics api + + Returns + ------- + None + """ self.all_albums_lyrics = list() with click.progressbar( @@ -335,22 +325,28 @@ class LyricsBuilder(LyricsConcreteBuilder): label=f'Finding lyrics for {self.total_track_count}' f' tracks for {self.artist}. This may take some time! ☕️', ) as bar: + bar.update(5) for x in self.all_albums_lyrics_url: for alb, urls in x.items(): - bar.update(1) + # bar.update(1) update = len(urls) lyrics = addict.Dict( (alb, [self.request_lyrics_from_url(i) for i in urls]) ) self.all_albums_lyrics.append(lyrics) - bar.update(update - 1) + bar.update(update) with open(f'{os.getcwd()}/all_albums_lyrics.json', 'w') as f: json.dump(self.all_albums_lyrics, f, indent=2) return self def count_words_in_lyrics(self) -> None: - # remove punctuation, fix click bar + """Count all words in each track + + Returns + ------- + None + """ self.all_albums_lyrics_count = list() # print(self.total_track_count) with click.progressbar( @@ -376,12 +372,18 @@ class LyricsBuilder(LyricsConcreteBuilder): click.echo(f'Processed lyrics for {self.total_track_count} tracks.') return self - # rename this def calculate_average_all_albums(self) -> None: + """Summary + + Returns + ------- + None + Description + """ self.all_albums_lyrics_sum = list() - # album_lyrics = self.all_albums_lyrics_count - with open(f'{os.getcwd()}/lyrics_count.json', 'r') as f: - album_lyrics = json.load(f) + album_lyrics = self.all_albums_lyrics_count + # with open(f'{os.getcwd()}/lyrics_count.json', 'r') as f: + # album_lyrics = json.load(f) count = 0 for i in album_lyrics: count += len(i) @@ -406,15 +408,17 @@ class LyricsBuilder(LyricsConcreteBuilder): # print(d) self.all_albums_lyrics_sum.append(d) # print(count) - with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'w+') as f: - json.dump(self.all_albums_lyrics_sum, f) - return self + # with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'w+') as f: + # json.dump(self.all_albums_lyrics_sum, f) + # return self def calculate_final_average_by_album(self) -> None: + """Calculates descriptive statistics by album. + """ self.album_statistics = addict.Dict() - # album_lyrics = self.all_albums_lyrics_sum - with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f: - album_lyrics = json.load(f) + album_lyrics = self.all_albums_lyrics_sum + # with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f: + # album_lyrics = json.load(f) for i in album_lyrics: for album, count in i.items(): @@ -426,17 +430,18 @@ class LyricsBuilder(LyricsConcreteBuilder): self.album_statistics = addict.Dict( **self.album_statistics, **addict.Dict((album, _d)) ) - with open(f'{os.getcwd()}/album_statistics.json', 'w') as f: - json.dump(self.album_statistics, f, indent=2) + # with open(f'{os.getcwd()}/album_statistics.json', 'w') as f: + # json.dump(self.album_statistics, f, indent=2) # pprint(self.album_statistics) - # implement above in this def calculate_final_average_by_year(self) -> None: + """Calculates descriptive statistic by year. + """ group_by_years = addict.Dict() self.year_statistics = addict.Dict() - # album_lyrics = self.all_albums_lyrics_sum - with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f: - album_lyrics = json.load(f) + album_lyrics = self.all_albums_lyrics_sum + # with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f: + # album_lyrics = json.load(f) # Merge years together for i in album_lyrics: @@ -464,12 +469,38 @@ class LyricsBuilder(LyricsConcreteBuilder): @staticmethod def construct_lyrics_url(artist: str, song: str) -> str: + """Builds the URL for the lyrics api. + + Parameters + ---------- + artist : str + Artist + song : str + Track title + + Returns + ------- + str + URL for lyrics from the lyrics api. + """ lyrics_api_base = 'https://api.lyrics.ovh/v1' lyrics_api_url = html.escape(f'{lyrics_api_base}/{artist}/{song}') return lyrics_api_url @staticmethod def request_lyrics_from_url(url: str) -> str: + """Gets lyrics from the lyrics api. + + Parameters + ---------- + url : str + URL of the track for the lyrics api. + + Returns + ------- + str + Lyrics of the trakc + """ resp = requests.get(url) # No lyrics for a song will return a key of 'error', we pass on this. @@ -481,11 +512,35 @@ class LyricsBuilder(LyricsConcreteBuilder): @staticmethod def strip_punctuation(word: str) -> str: + """Removes punctuation from lyrics. + + Parameters + ---------- + word : str + Word to remove punctuation from. + + Returns + ------- + str + Same word without any punctuation. + """ _strip = word.translate(str.maketrans('', '', string.punctuation)) return _strip @staticmethod def get_descriptive_statistics(nums: list) -> Dict[str, int]: + """Calculates descriptive statistics. + + Parameters + ---------- + nums : list + A list containing total number of words from a track. + + Returns + ------- + Dict[str, int] + Dictionary of statistic and value. + """ if len(nums) == 0: return avg = math.ceil(np.mean(nums)) @@ -511,232 +566,3 @@ class LyricsBuilder(LyricsConcreteBuilder): ('count', count), ) return _d - - -class LyricsClickDirector: - """docstring for LyricsClickDirector""" - - def __init__(self) -> None: - self._builder = None - - @property - def builder(self) -> LyricsBuilder: - return self._builder - - @builder.setter - def builder(self, builder: LyricsBuilder) -> None: - self._builder = builder - - def _get_initial_artists(self, artist: str, country: str) -> None: - self.builder.artist = artist - self.builder.country = country - self.builder.set_useragent() - self.builder.find_artists() - self.builder.sort_artists() - self.builder.get_accuracy_scores() - self.builder.get_top_five_results() - return self - - def _confirm_final_artist(self) -> None: - artist_meta = None - for i, j in self.builder._top_five_results.items(): - artist_meta = 'Multiple' if j <= 100 else None - - if artist_meta == 'Multiple': - _position = [] - click.echo( - click.style( - f'Musicbrainz found several results for ' - f'{self.builder.artist[0]}. Which artist/group do you want' - '?', - fg='green', - ) - ) - for i, j in zip(self.builder._top_five_results, range(1, 6)): - click.echo( - f'[{j}] {self.builder._sort_names.get(i)}' - f' ({self.builder._accuracy_scores.get(i)}% match)' - ) - _position.append(i) - chosen = int( - click.prompt( - click.style(f'Enter choice, default is', blink=True), - default=1, - type=click.IntRange( - 1, len(self.builder._top_five_results) - ), - ) - ) - choice = _position[chosen - 1] - click.echo(f'You chose {self.builder._sort_names.get(choice)}') - self._artist = self.builder._sort_names.get(choice).split('|')[0] - self._artist_id = choice - - # Set artist and artistID on builder + product - self.builder.artist_id = self._artist_id - self.builder.artist = self._artist - - elif artist_meta is None: - click.echo( - f'Musicbrainz did not find any results for ' - f'{self.builder.artist[0]}. Check the spelling or consider ' - 'alternative names that the artist/group may go by.' - ) - raise SystemExit() - return self - - def _query_for_data(self) -> None: - self.builder.find_all_albums() - self.builder.find_all_tracks() - self.builder._product.all_albums_with_tracks = self.builder.all_albums - return self - - def _get_lyrics(self) -> None: - self.builder.find_lyrics_urls() - self.builder.find_all_lyrics() - self.builder._product.all_albums_with_lyrics = ( - self.builder.all_albums_lyrics - ) - self.builder.count_words_in_lyrics() - with open(f'{os.getcwd()}/lyrics_count.json', 'w+') as file: - json.dump( - self.builder.all_albums_lyrics_count, - file, - indent=2, - sort_keys=True, - ) - self.builder._product.all_albums_lyrics_count = ( - self.builder.all_albums_lyrics_count - ) - return self - - def _calculate_basic_statistics(self) -> None: - self.builder.calculate_average_all_albums() - self.builder._product.all_albums_lyrics_sum = ( - self.builder.all_albums_lyrics_sum - ) - return self - - def _calculate_descriptive_statistics(self) -> None: - self.builder.calculate_final_average_by_album() - self.builder.calculate_final_average_by_year() - self.builder._product.album_statistics = self.builder.album_statistics - self.builder._product.year_statistics = self.builder.year_statistics - return self - - def _dev(self) -> None: - self.builder.calculate_final_average_by_album() - self.builder.calculate_final_average_by_year() - self.builder._product.album_statistics = self.builder.album_statistics - self.builder._product.year_statistics = self.builder.year_statistics - self.builder._product.artist_id = None - self.builder._product.artist = 'Katzenjammer' - self.builder._product.show_summary() - self.builder._product.show_summary_statistics(group_by='year') - return self - - @staticmethod - def _get_product(builder_inst: LyricsBuilder) -> Lyrics: - return builder_inst._product - - -@dataclass -class Lyrics: - """docstring for Lyrics""" - - artist_id: str - artist: str - country: Union[str, None] - all_albums_with_tracks: List[Dict[str, List[str]]] - all_albums_with_lyrics: List[Dict[str, List[str]]] - all_albums_lyrics_count: List[Dict[str, List[List[str, int]]]] - all_albums_lyrics_sum: List[Dict[str, List[int, str]]] - album_statistics: Dict[str, Dict[str, int]] - year_statistics: Dict[str, Dict[str, int]] - - def __init__(self) -> None: - pass - - def show_summary(self): - all_averages = [] - - for i in self.album_statistics.values(): - try: - all_averages.append(i['avg']) - except (TypeError, ValueError): - pass - print(all_averages) - try: - final_average = math.ceil(np.mean(all_averages)) - except ValueError: - click.echo( - 'Oops! https://lyrics.ovh couldn\'t find any lyrics across all' - ' albums. This is caused by inconsistent Artist names from' - ' Musicbrainz and lyrics.ovh. Try another artist.' - ) - raise(SystemExit) - output = BeautifulTable(max_width=200) - output.set_style(BeautifulTable.STYLE_BOX_ROUNDED) - output.column_headers = [ - 'Average number of words in tracks across all albums\n' - f'for {self.artist}' - ] - output.append_row([final_average]) - click.echo(output) - - return self - - def show_summary_statistics(self, group_by: str) -> None: - stats_obj = getattr(self, f'{group_by}_statistics') - stats = [ - 'avg', - 'std', - 'min', - 'max', - 'median', - 'count', - 'p_10', - 'p_25', - 'p_75', - 'p_90', - ] - output_0 = BeautifulTable(max_width=200) - output_0.set_style(BeautifulTable.STYLE_BOX_ROUNDED) - output_0.column_headers = [ - 'Descriptive statistics for number of words in tracks across all' - f' {group_by}s\nfor {self.artist}' - ] - output_1 = BeautifulTable(max_width=200) - output_1.set_style(BeautifulTable.STYLE_BOX_ROUNDED) - output_1.column_headers = [ - group_by, - stats[0], - stats[1], - stats[2], - stats[3], - stats[4], - stats[5], - stats[6], - stats[7], - stats[8], - stats[9], - ] - for group, s in stats_obj.items(): - output_1.append_row( - [ - group, - s.get(stats[0]), - s.get(stats[1]), - s.get(stats[2]), - s.get(stats[3]), - s.get(stats[4]), - s.get(stats[5]), - s.get(stats[6]), - s.get(stats[7]), - s.get(stats[8]), - s.get(stats[9]), - ] - ) - output_0.append_row([output_1]) - click.echo(output_0) - return self diff --git a/src/musicbrainzapi/api/lyrics/concrete_builder.py b/src/musicbrainzapi/api/lyrics/concrete_builder.py new file mode 100644 index 0000000..2a6d5c0 --- /dev/null +++ b/src/musicbrainzapi/api/lyrics/concrete_builder.py @@ -0,0 +1,81 @@ +from __future__ import annotations +from abc import ABC, abstractstaticmethod, abstractmethod +from typing import Union + +from musicbrainzapi.api import authenticate + + +class LyricsConcreteBuilder(ABC): + """Abstract concrete builder for Lyrics + """ + + @property + @abstractmethod + def product(self) -> None: + pass + + @property + @abstractmethod + def artist(self) -> str: + pass + + @artist.setter + @abstractmethod + def artist(self, artist: str) -> None: + pass + + @property + @abstractmethod + def country(self) -> Union[str, None]: + pass + + @country.setter + @abstractmethod + def country(self, country: Union[str, None]) -> None: + pass + + @property + @abstractmethod + def artist_id(self) -> str: + pass + + @artist_id.setter + @abstractmethod + def artist_id(self, artist_id: str) -> None: + pass + + @abstractstaticmethod + def set_useragent(): + authenticate.set_useragent() + + @abstractmethod + def __init__(self) -> None: + pass + + @abstractmethod + def reset(self) -> None: + pass + + @abstractmethod + def find_artists(self) -> None: + pass + + @abstractmethod + def sort_artists(self) -> None: + pass + + @abstractmethod + def get_accuracy_scores(self) -> None: + pass + + @abstractmethod + def get_top_five_results(self) -> None: + pass + + @abstractmethod + def find_all_albums(self) -> None: + pass + + @abstractmethod + def find_all_tracks(self) -> None: + pass diff --git a/src/musicbrainzapi/api/lyrics/director.py b/src/musicbrainzapi/api/lyrics/director.py new file mode 100644 index 0000000..1918690 --- /dev/null +++ b/src/musicbrainzapi/api/lyrics/director.py @@ -0,0 +1,202 @@ +from __future__ import annotations +import json +import os + +import click + +from musicbrainzapi.api.lyrics.builder import LyricsBuilder +from musicbrainzapi.api.lyrics import Lyrics + + +class LyricsClickDirector: + """Director for Lyrics builder. + """ + + def __init__(self) -> None: + self._builder = None + + @property + def builder(self) -> LyricsBuilder: + return self._builder + + @builder.setter + def builder(self, builder: LyricsBuilder) -> None: + self._builder = builder + + def _get_initial_artists(self, artist: str, country: str) -> None: + """Search Musicbrainz api for an artist + + Parameters + ---------- + artist : str + Artist to search for + country : str + Country artist comes from. + + Returns + ------- + None + """ + self.builder.artist = artist + self.builder.country = country + self.builder.set_useragent() + self.builder.find_artists() + self.builder.sort_artists() + self.builder.get_accuracy_scores() + self.builder.get_top_five_results() + return self + + def _confirm_final_artist(self) -> None: + """Confirm the artist from the user. + + Returns + ------- + None + + Raises + ------ + SystemExit + If no artist is found will cleanly quit. + """ + artist_meta = None + for i, j in self.builder._top_five_results.items(): + artist_meta = 'Multiple' if j <= 100 else None + + if artist_meta == 'Multiple': + _position = [] + click.echo( + click.style( + f'Musicbrainz found several results for ' + f'{self.builder.artist[0]}. Which artist/group do you want' + '?', + fg='green', + ) + ) + for i, j in zip(self.builder._top_five_results, range(1, 6)): + click.echo( + f'[{j}] {self.builder._sort_names.get(i)}' + f' ({self.builder._accuracy_scores.get(i)}% match)' + ) + _position.append(i) + chosen = int( + click.prompt( + click.style(f'Enter choice, default is', blink=True), + default=1, + type=click.IntRange( + 1, len(self.builder._top_five_results) + ), + ) + ) + choice = _position[chosen - 1] + click.echo(f'You chose {self.builder._sort_names.get(choice)}') + self._artist = self.builder._sort_names.get(choice).split('|')[0] + self._artist_id = choice + + # Set artist and artistID on builder + product + self.builder.artist_id = self._artist_id + self.builder.artist = self._artist + + elif artist_meta is None: + click.echo( + f'Musicbrainz did not find any results for ' + f'{self.builder.artist[0]}. Check the spelling or consider ' + 'alternative names that the artist/group may go by.' + ) + raise SystemExit() + return self + + def _query_for_data(self) -> None: + """Query Musicbrainz api for albums + track data. + + Returns + ------- + None + """ + self.builder.find_all_albums() + self.builder.find_all_tracks() + self.builder._product.all_albums_with_tracks = self.builder.all_albums + return self + + def _get_lyrics(self) -> None: + """Get Lyrics for each track + + Returns + ------- + None + """ + self.builder.find_lyrics_urls() + self.builder.find_all_lyrics() + self.builder._product.all_albums_with_lyrics = ( + self.builder.all_albums_lyrics + ) + self.builder.count_words_in_lyrics() + with open(f'{os.getcwd()}/lyrics_count.json', 'w+') as file: + json.dump( + self.builder.all_albums_lyrics_count, + file, + indent=2, + sort_keys=True, + ) + self.builder._product.all_albums_lyrics_count = ( + self.builder.all_albums_lyrics_count + ) + return self + + def _calculate_basic_statistics(self) -> None: + """Calculate a basic average for all tracks. + + Returns + ------- + None + """ + self.builder.calculate_average_all_albums() + self.builder._product.all_albums_lyrics_sum = ( + self.builder.all_albums_lyrics_sum + ) + return self + + def _calculate_descriptive_statistics(self) -> None: + """Calculate descriptive statistics for album and/or year. + + Returns + ------- + None + """ + self.builder.calculate_final_average_by_album() + self.builder.calculate_final_average_by_year() + self.builder._product.album_statistics = self.builder.album_statistics + self.builder._product.year_statistics = self.builder.year_statistics + return self + + def _dev(self) -> None: + """Dev function - used for testing + + Returns + ------- + None + """ + self.builder.calculate_final_average_by_album() + self.builder.calculate_final_average_by_year() + self.builder._product.album_statistics = self.builder.album_statistics + self.builder._product.year_statistics = self.builder.year_statistics + self.builder._product.artist_id = None + self.builder._product.artist = 'Katzenjammer' + self.builder._product.show_summary() + self.builder._product.show_summary_statistics(group_by='year') + return self + + @staticmethod + def _get_product(builder_inst: LyricsBuilder) -> Lyrics: + """Returns the constructed Lyrics object + + Parameters + ---------- + builder_inst : LyricsBuilder + Builder class for Lyrics object + + Returns + ------- + Lyrics + Lyrics object + """ + return builder_inst._product diff --git a/src/musicbrainzapi/cli/cli.py b/src/musicbrainzapi/cli/cli.py index 10c8a0b..b784256 100644 --- a/src/musicbrainzapi/cli/cli.py +++ b/src/musicbrainzapi/cli/cli.py @@ -1,5 +1,4 @@ import os -import sys from importlib import import_module import click @@ -31,17 +30,16 @@ class ComplexCLI(click.MultiCommand): rv.sort() return rv + # def get_command(self, ctx, name): + # try: + # mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}') + # except ImportError as e: + # print(e) + # return + # return mod.cli + def get_command(self, ctx, name): - try: - if sys.version_info[0] == 2: - name = name.encode('ascii', 'replace') - mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}') - # mod = __import__( - # 'complex.commands.cmd_' + name, None, None, ['cli'] - # ) - except ImportError as e: - print(e) - return + mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}') return mod.cli @@ -50,25 +48,21 @@ class ComplexCLI(click.MultiCommand): '-p', '--path', type=click.Path( - exists=False, file_okay=False, resolve_path=True, writable=True + exists=True, file_okay=False, resolve_path=True, writable=True ), help='Path to save results.', - default=os.path.expanduser('~/.musicbrainzapi') + default=os.getcwd() ) -@click.option('-v', '--verbose', is_flag=True, help='Enables verbose mode.') +# @click.option('-v', '--verbose', is_flag=True, help='Enables verbose mode.') @click.version_option( version=__version__, prog_name=__header__, message=f'{__header__} version {__version__} 🎤', ) @pass_environment -def cli(ctx, verbose, path): +def cli(ctx, path): """A complex command line interface.""" - ctx.verbose = verbose + # ctx.verbose = verbose if path is not None: click.echo(f'Path set to {os.path.expanduser(path)}') ctx.path = os.path.expanduser(path) - - -if __name__ == '__main__': - cli() diff --git a/src/musicbrainzapi/cli/commands/cmd_lyrics.py b/src/musicbrainzapi/cli/commands/cmd_lyrics.py index 69f71a0..5679615 100644 --- a/src/musicbrainzapi/cli/commands/cmd_lyrics.py +++ b/src/musicbrainzapi/cli/commands/cmd_lyrics.py @@ -1,23 +1,32 @@ +import json from typing import Union import click +import matplotlib.pyplot as plt + from musicbrainzapi.cli.cli import pass_environment -from musicbrainzapi.api.command_builders import lyrics + +import musicbrainzapi.wordcloud +from musicbrainzapi.api.lyrics.builder import LyricsBuilder +from musicbrainzapi.api.lyrics.director import LyricsClickDirector -# @click.argument('path', required=False, type=click.Path(resolve_path=True)) -# @click.command(short_help='a test command') - - -@click.option('--dev', is_flag=True) +@click.option('--dev', is_flag=True, help='Development flag. Do not use.') @click.option( '--save-output', required=False, - help='Save the output to json files locally. Will use the path parameter if' - ' provided else defaults to current working directory.', + help='Save the output to json files locally. Will use the path parameter' + ' if provided else defaults to current working directory.', is_flag=True, - default=False + default=False, +) +@click.option( + '--wordcloud', + required=False, + help='Generate a wordcloud from lyrics.', + is_flag=True, + default=False, ) @click.option( '--show-summary', @@ -51,12 +60,30 @@ def cli( country: Union[str, None], dev: bool, show_summary: str, - save_output: bool + wordcloud: bool, + save_output: bool, ) -> None: - """Search for lyrics statistics of an Artist/Group.""" - # lyrics_obj = list() - director = lyrics.LyricsClickDirector() - builder = lyrics.LyricsBuilder() + """Search for lyrics statistics of an Artist/Group. + + Parameters + ---------- + ctx : musicbrainzapi.cli.cli.Environment + click environment class + artist : str + artist + country : Union[str, None] + country + dev : bool + dev flag - not to be used + show_summary : str + summary flag - used to display descriptive statistics + wordcloud : bool + wordcloud flag - used to create a wordcloud from lyrics + save_output : bool + save output flag - used to save output locally to disk + """ + director = LyricsClickDirector() + builder = LyricsBuilder() director.builder = builder if dev: director._dev() @@ -70,16 +97,44 @@ def cli( director._calculate_basic_statistics() if show_summary is not None: director._calculate_descriptive_statistics() - + # Get the Lyrics object lyrics_0 = director.builder.product # lyrics_obj.append(lyrics_0) # Show basic count lyrics_0.show_summary() + # Show summary statistics if show_summary == 'all': lyrics_0.show_summary_statistics(group_by='album') lyrics_0.show_summary_statistics(group_by='year') elif show_summary in ['album', 'year']: lyrics_0.show_summary_statistics(group_by=show_summary) + + # Show wordcloud + if wordcloud: + click.echo('Generating wordcloud') + cloud = musicbrainzapi.wordcloud.LyricsWordcloud.use_microphone( + lyrics_0.all_albums_lyrics_count + ) + cloud.create_word_cloud() + show = click.confirm( + 'Wordcloud ready - press enter to show.', default=True + ) + plt.imshow( + cloud.wc.recolor( + color_func=cloud.generate_grey_colours, random_state=3 + ), + interpolation='bilinear', + ) + plt.axis('off') + if show: + plt.show() + if save_output: + click.echo(f'Saving output to {ctx.path}') + path = ctx.path if ctx.path[-1] == '/' else ctx.path + '/' + attr = lyrics_0._attributes + for a in attr: + with open(f'{path}{a}.json', 'w') as f: + json.dump(getattr(lyrics_0, a), f, indent=2) diff --git a/src/musicbrainzapi/wordcloud/.DS_Store b/src/musicbrainzapi/wordcloud/.DS_Store new file mode 100644 index 0000000..188c945 Binary files /dev/null and b/src/musicbrainzapi/wordcloud/.DS_Store differ diff --git a/src/musicbrainzapi/wordcloud/__init__.py b/src/musicbrainzapi/wordcloud/__init__.py new file mode 100644 index 0000000..e6b816f --- /dev/null +++ b/src/musicbrainzapi/wordcloud/__init__.py @@ -0,0 +1,172 @@ +from __future__ import annotations +import collections +from importlib import resources +import random +import re +import typing + +from matplotlib import pyplot as plt +from PIL import Image +from wordcloud import STOPWORDS, WordCloud +import numpy as np + +from musicbrainzapi.api.lyrics import Lyrics + +if typing.TYPE_CHECKING: + import PIL.PngImagePlugin.PngImageFile + + +class LyricsWordcloud: + """Create a word cloud from Lyrics. + + Attributes + ---------- + all_albums_lyrics_count : list + List of all albums + track lyrics counted by each word + char_mask : np.array + numpy array containing data for the word cloud image + freq : collections.Counter + Counter object containing counts for all words across all tracks + lyrics_list : list + List of all words from all lyrics across all tracks. + pillow_img : PIL.PngImagePlugin.PngImageFile + pillow image of the word cloud base + wc : wordcloud.WordCloud + WordCloud object + """ + + def __init__( + self, + pillow_img: 'PIL.PngImagePlugin.PngImageFile', + all_albums_lyrics_count: 'Lyrics.all_albums_lyrics_count', + ): + """ + Parameters + ---------- + pillow_img : PIL.PngImagePlugin.PngImageFile + pillow image of the word cloud base + all_albums_lyrics_count : Lyrics.all_albums_lyrics_count + List of all albums + track lyrics counted by each word + """ + self.pillow_img = pillow_img + self.all_albums_lyrics_count = all_albums_lyrics_count + + @classmethod + def use_microphone( + cls, all_albums_lyrics_count: 'Lyrics.all_albums_lyrics_count', + ) -> LyricsWordcloud: + """Class method to instantiate with a microphone base image. + + Parameters + ---------- + all_albums_lyrics_count : Lyrics.all_albums_lyrics_count + List of all albums + track lyrics counted by each word + """ + mic_resource = resources.path( + 'musicbrainzapi.wordcloud.resources', 'mic.png' + ) + with mic_resource as m: + mic_img = Image.open(m) + + return cls(mic_img, all_albums_lyrics_count) + + def _get_lyrics_list(self) -> None: + """Gets all words from lyrics in a single list + cleans them. + + Returns + ------- + None + """ + self.lyrics_list = list() + for i in self.all_albums_lyrics_count: + for album, lyric in i.items(): + for track in lyric: + try: + for word in track: + for _ in range(1, word[1]): + cleaned = word[0] + cleaned = re.sub( + r'[\(\[].*?[\)\]]', ' ', cleaned + ) + cleaned = re.sub( + r'[^a-zA-Z0-9\s]', '', cleaned + ) + cleaned = cleaned.lower() + if cleaned in STOPWORDS: + continue + self.lyrics_list.append(cleaned) + except IndexError: + pass + return self + + def _get_frequencies(self) -> None: + """Get frequencies of words from a list. + """ + self.freq = collections.Counter(self.lyrics_list) + + def _get_char_mask(self) -> None: + """Gets a numpy array for the image file. + """ + self.char_mask = np.array(self.pillow_img) + + @staticmethod + def generate_grey_colours( + word: str, + font_size: str, + random_state: typing.Union[None, bool] = None, + *args, + **kwargs, + ) -> str: + colour = f'hsl(0, 0%, {random.randint(60, 100)}%)' + return colour + + def _generate_word_cloud(self) -> None: + """Generates a word cloud + + Returns + ------- + None + """ + self.wc = WordCloud( + max_words=150, + width=1500, + height=1500, + mask=self.char_mask, + random_state=1, + ).generate_from_frequencies(self.freq) + return self + + def _generate_plot(self) -> None: + """Plots the wordcloud and sets matplotlib options. + + Returns + ------- + None + """ + plt.imshow( + self.wc.recolor( + color_func=self.generate_grey_colours, random_state=3 + ), + interpolation='bilinear', + ) + plt.axis('off') + return self + + def show_word_cloud(self): + """Shows the word cloud. + """ + plt.show() + + def create_word_cloud(self) -> None: + """Creates a word cloud + + Returns + ------- + None + """ + self._get_lyrics_list() + self._get_frequencies() + self._get_char_mask() + self._generate_word_cloud() + self._generate_plot() + return self diff --git a/src/musicbrainzapi/wordcloud/resources/.DS_Store b/src/musicbrainzapi/wordcloud/resources/.DS_Store new file mode 100644 index 0000000..b8e6986 Binary files /dev/null and b/src/musicbrainzapi/wordcloud/resources/.DS_Store differ diff --git a/src/musicbrainzapi/wordcloud/resources/__init__.py b/src/musicbrainzapi/wordcloud/resources/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/musicbrainzapi/wordcloud/resources/mic.png b/src/musicbrainzapi/wordcloud/resources/mic.png new file mode 100644 index 0000000..a44c4bf Binary files /dev/null and b/src/musicbrainzapi/wordcloud/resources/mic.png differ