+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " <th>5</th>\n",
+ " <th>6</th>\n",
+ " <th>7</th>\n",
+ " <th>8</th>\n",
+ " <th>9</th>\n",
+ " <th>...</th>\n",
+ " <th>1061</th>\n",
+ " <th>1062</th>\n",
+ " <th>1063</th>\n",
+ " <th>1064</th>\n",
+ " <th>1065</th>\n",
+ " <th>1066</th>\n",
+ " <th>1067</th>\n",
+ " <th>1068</th>\n",
+ " <th>1069</th>\n",
+ " <th>1070</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>1497768</td>\n",
+ " <td>210315</td>\n",
+ " <td>123533</td>\n",
+ " <td>123537</td>\n",
+ " <td>117722</td>\n",
+ " <td>210284</td>\n",
+ " <td>1336394</td>\n",
+ " <td>107915</td>\n",
+ " <td>1308579</td>\n",
+ " <td>123808</td>\n",
+ " <td>...</td>\n",
+ " <td>310483</td>\n",
+ " <td>313269</td>\n",
+ " <td>313043</td>\n",
+ " <td>2389345</td>\n",
+ " <td>1245984</td>\n",
+ " <td>311907</td>\n",
+ " <td>310293</td>\n",
+ " <td>310289</td>\n",
+ " <td>106069</td>\n",
+ " <td>310543</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>annotation_count</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>5</td>\n",
+ " <td>4</td>\n",
+ " <td>6</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>6</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>1</td>\n",
+ " <td>16</td>\n",
+ " <td>15</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>api_path</th>\n",
+ " <td>/songs/1497768</td>\n",
+ " <td>/songs/210315</td>\n",
+ " <td>/songs/123533</td>\n",
+ " <td>/songs/123537</td>\n",
+ " <td>/songs/117722</td>\n",
+ " <td>/songs/210284</td>\n",
+ " <td>/songs/1336394</td>\n",
+ " <td>/songs/107915</td>\n",
+ " <td>/songs/1308579</td>\n",
+ " <td>/songs/123808</td>\n",
+ " <td>...</td>\n",
+ " <td>/songs/310483</td>\n",
+ " <td>/songs/313269</td>\n",
+ " <td>/songs/313043</td>\n",
+ " <td>/songs/2389345</td>\n",
+ " <td>/songs/1245984</td>\n",
+ " <td>/songs/311907</td>\n",
+ " <td>/songs/310293</td>\n",
+ " <td>/songs/310289</td>\n",
+ " <td>/songs/106069</td>\n",
+ " <td>/songs/310543</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>ctitle</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>...</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>full_title</th>\n",
+ " <td>All Together on the Wireless Machine by The Be...</td>\n",
+ " <td>A Little Rhyme by The Beatles (Ft. John & Rodn...</td>\n",
+ " <td>And I Love Her by The Beatles</td>\n",
+ " <td>Any Time at All by The Beatles</td>\n",
+ " <td>A Taste of Honey by The Beatles</td>\n",
+ " <td>Beatle Greetings by The Beatles (Ft. George Ha...</td>\n",
+ " <td>Can You Take Me Back by The Beatles</td>\n",
+ " <td>Carry That Weight by The Beatles</td>\n",
+ " <td>Down in Eastern Australia by The Beatles</td>\n",
+ " <td>Everybody's Trying to Be My Baby by The Beatles</td>\n",
+ " <td>...</td>\n",
+ " <td>You Can't Catch Me by The Rolling Stones</td>\n",
+ " <td>You Don't Have To Mean It by The Rolling Stones</td>\n",
+ " <td>You Got Me Rocking by The Rolling Stones</td>\n",
+ " <td>You Got the Silver by The Rolling Stones (Ft. ...</td>\n",
+ " <td>Don't Look Back by The Rolling Stones</td>\n",
+ " <td>Each and every day of the year by The Rolling ...</td>\n",
+ " <td>I'm A King Bee by The Rolling Stones</td>\n",
+ " <td>Little By Little by The Rolling Stones</td>\n",
+ " <td>Brown Sugar by The Rolling Stones</td>\n",
+ " <td>Citadel by The Rolling Stones</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>header_image_thumbnail_url</th>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1360709432_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/560d707ac51a528c952d...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/4268a08d2b36372eb6e8...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/9c0263f14c39b6df59e5...</td>\n",
+ " <td>https://images.genius.com/eb7fd9257058b77179cb...</td>\n",
+ " <td>https://images.genius.com/a8ed1f93846da84943a7...</td>\n",
+ " <td>https://images.rapgenius.com/ac969979ccb91a0d2...</td>\n",
+ " <td>https://images.genius.com/23bbf05f7ee8286a8905...</td>\n",
+ " <td>https://images.genius.com/6c322c96140487d56076...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/5b7d4f11893ff2fdeba7...</td>\n",
+ " <td>https://images.genius.com/31323212a74c2a8d99eb...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>header_image_url</th>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1360709432_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/560d707ac51a528c952d...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/4268a08d2b36372eb6e8...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/9c0263f14c39b6df59e5...</td>\n",
+ " <td>https://images.genius.com/eb7fd9257058b77179cb...</td>\n",
+ " <td>https://images.genius.com/a8ed1f93846da84943a7...</td>\n",
+ " <td>https://images.rapgenius.com/ac969979ccb91a0d2...</td>\n",
+ " <td>https://images.genius.com/23bbf05f7ee8286a8905...</td>\n",
+ " <td>https://images.genius.com/6c322c96140487d56076...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/5b7d4f11893ff2fdeba7...</td>\n",
+ " <td>https://images.genius.com/31323212a74c2a8d99eb...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>1497768</td>\n",
+ " <td>210315</td>\n",
+ " <td>123533</td>\n",
+ " <td>123537</td>\n",
+ " <td>117722</td>\n",
+ " <td>210284</td>\n",
+ " <td>1336394</td>\n",
+ " <td>107915</td>\n",
+ " <td>1308579</td>\n",
+ " <td>123808</td>\n",
+ " <td>...</td>\n",
+ " <td>310483</td>\n",
+ " <td>313269</td>\n",
+ " <td>313043</td>\n",
+ " <td>2389345</td>\n",
+ " <td>1245984</td>\n",
+ " <td>311907</td>\n",
+ " <td>310293</td>\n",
+ " <td>310289</td>\n",
+ " <td>106069</td>\n",
+ " <td>310543</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrics</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>...</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrics_owner_id</th>\n",
+ " <td>1549345</td>\n",
+ " <td>250962</td>\n",
+ " <td>46871</td>\n",
+ " <td>46871</td>\n",
+ " <td>70799</td>\n",
+ " <td>250962</td>\n",
+ " <td>1549345</td>\n",
+ " <td>116340</td>\n",
+ " <td>1549345</td>\n",
+ " <td>22533</td>\n",
+ " <td>...</td>\n",
+ " <td>354383</td>\n",
+ " <td>354608</td>\n",
+ " <td>354382</td>\n",
+ " <td>1217557</td>\n",
+ " <td>1549345</td>\n",
+ " <td>354385</td>\n",
+ " <td>354383</td>\n",
+ " <td>354383</td>\n",
+ " <td>16</td>\n",
+ " <td>354608</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>original_lyrics</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>...</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>path</th>\n",
+ " <td>/The-beatles-all-together-on-the-wireless-mach...</td>\n",
+ " <td>/The-beatles-a-little-rhyme-lyrics</td>\n",
+ " <td>/The-beatles-and-i-love-her-lyrics</td>\n",
+ " <td>/The-beatles-any-time-at-all-lyrics</td>\n",
+ " <td>/The-beatles-a-taste-of-honey-lyrics</td>\n",
+ " <td>/The-beatles-beatle-greetings-lyrics</td>\n",
+ " <td>/The-beatles-can-you-take-me-back-lyrics</td>\n",
+ " <td>/The-beatles-carry-that-weight-lyrics</td>\n",
+ " <td>/The-beatles-down-in-eastern-australia-lyrics</td>\n",
+ " <td>/The-beatles-everybodys-trying-to-be-my-baby-l...</td>\n",
+ " <td>...</td>\n",
+ " <td>/The-rolling-stones-you-cant-catch-me-lyrics</td>\n",
+ " <td>/The-rolling-stones-you-dont-have-to-mean-it-l...</td>\n",
+ " <td>/The-rolling-stones-you-got-me-rocking-lyrics</td>\n",
+ " <td>/The-rolling-stones-you-got-the-silver-lyrics</td>\n",
+ " <td>/The-rolling-stones-dont-look-back-lyrics</td>\n",
+ " <td>/The-rolling-stones-each-and-every-day-of-the-...</td>\n",
+ " <td>/The-rolling-stones-im-a-king-bee-lyrics</td>\n",
+ " <td>/The-rolling-stones-little-by-little-lyrics</td>\n",
+ " <td>/The-rolling-stones-brown-sugar-lyrics</td>\n",
+ " <td>/The-rolling-stones-citadel-lyrics</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>primary_artist</th>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 586, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " <td>{'id': 774, 'image_url': 'https://images.geniu...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>pyongs_count</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>15</td>\n",
+ " <td>2</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>1</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>...</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>7</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>song_art_image_thumbnail_url</th>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1360709432_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/560d707ac51a528c952d...</td>\n",
+ " <td>https://images.genius.com/ad1f59e8a03be4eb521e...</td>\n",
+ " <td>https://images.genius.com/4268a08d2b36372eb6e8...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/9c0263f14c39b6df59e5...</td>\n",
+ " <td>https://images.genius.com/eb7fd9257058b77179cb...</td>\n",
+ " <td>https://images.genius.com/a8ed1f93846da84943a7...</td>\n",
+ " <td>https://images.rapgenius.com/ac969979ccb91a0d2...</td>\n",
+ " <td>https://images.genius.com/23bbf05f7ee8286a8905...</td>\n",
+ " <td>https://images.genius.com/6c322c96140487d56076...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/076d49bcc219432b68b4...</td>\n",
+ " <td>https://images.genius.com/5b7d4f11893ff2fdeba7...</td>\n",
+ " <td>https://images.genius.com/31323212a74c2a8d99eb...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>stats</th>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False, 'p...</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False, 'p...</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>...</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False}</td>\n",
+ " <td>{'unreviewed_annotations': 0, 'hot': False, 'p...</td>\n",
+ " <td>{'unreviewed_annotations': 14, 'hot': False}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>title</th>\n",
+ " <td>All Together on the Wireless Machine</td>\n",
+ " <td>A Little Rhyme</td>\n",
+ " <td>And I Love Her</td>\n",
+ " <td>Any Time at All</td>\n",
+ " <td>A Taste of Honey</td>\n",
+ " <td>Beatle Greetings</td>\n",
+ " <td>Can You Take Me Back</td>\n",
+ " <td>Carry That Weight</td>\n",
+ " <td>Down in Eastern Australia</td>\n",
+ " <td>Everybody's Trying to Be My Baby</td>\n",
+ " <td>...</td>\n",
+ " <td>You Can't Catch Me</td>\n",
+ " <td>You Don't Have To Mean It</td>\n",
+ " <td>You Got Me Rocking</td>\n",
+ " <td>You Got the Silver</td>\n",
+ " <td>Don't Look Back</td>\n",
+ " <td>Each and every day of the year</td>\n",
+ " <td>I'm A King Bee</td>\n",
+ " <td>Little By Little</td>\n",
+ " <td>Brown Sugar</td>\n",
+ " <td>Citadel</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>url</th>\n",
+ " <td>https://genius.com/The-beatles-all-together-on...</td>\n",
+ " <td>https://genius.com/The-beatles-a-little-rhyme-...</td>\n",
+ " <td>https://genius.com/The-beatles-and-i-love-her-...</td>\n",
+ " <td>https://genius.com/The-beatles-any-time-at-all...</td>\n",
+ " <td>https://genius.com/The-beatles-a-taste-of-hone...</td>\n",
+ " <td>https://genius.com/The-beatles-beatle-greeting...</td>\n",
+ " <td>https://genius.com/The-beatles-can-you-take-me...</td>\n",
+ " <td>https://genius.com/The-beatles-carry-that-weig...</td>\n",
+ " <td>https://genius.com/The-beatles-down-in-eastern...</td>\n",
+ " <td>https://genius.com/The-beatles-everybodys-tryi...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-you-cant...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-you-dont...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-you-got-...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-you-got-...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-dont-loo...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-each-and...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-im-a-kin...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-little-b...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-brown-su...</td>\n",
+ " <td>https://genius.com/The-rolling-stones-citadel-...</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>18 rows × 1071 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 1497768 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1497768 \n",
+ "ctitle NaN \n",
+ "full_title All Together on the Wireless Machine by The Be... \n",
+ "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "id 1497768 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 1549345 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-all-together-on-the-wireless-mach... \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title All Together on the Wireless Machine \n",
+ "url https://genius.com/The-beatles-all-together-on... \n",
+ "\n",
+ " 1 \\\n",
+ "_id 210315 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/210315 \n",
+ "ctitle NaN \n",
+ "full_title A Little Rhyme by The Beatles (Ft. John & Rodn... \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "id 210315 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 250962 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-a-little-rhyme-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title A Little Rhyme \n",
+ "url https://genius.com/The-beatles-a-little-rhyme-... \n",
+ "\n",
+ " 2 \\\n",
+ "_id 123533 \n",
+ "annotation_count 5 \n",
+ "api_path /songs/123533 \n",
+ "ctitle NaN \n",
+ "full_title And I Love Her by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "id 123533 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 46871 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-and-i-love-her-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count 15 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n",
+ "title And I Love Her \n",
+ "url https://genius.com/The-beatles-and-i-love-her-... \n",
+ "\n",
+ " 3 \\\n",
+ "_id 123537 \n",
+ "annotation_count 4 \n",
+ "api_path /songs/123537 \n",
+ "ctitle NaN \n",
+ "full_title Any Time at All by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "id 123537 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 46871 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-any-time-at-all-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count 2 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Any Time at All \n",
+ "url https://genius.com/The-beatles-any-time-at-all... \n",
+ "\n",
+ " 4 \\\n",
+ "_id 117722 \n",
+ "annotation_count 6 \n",
+ "api_path /songs/117722 \n",
+ "ctitle NaN \n",
+ "full_title A Taste of Honey by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1360709432_... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/1360709432_... \n",
+ "id 117722 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 70799 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-a-taste-of-honey-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1360709432_... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title A Taste of Honey \n",
+ "url https://genius.com/The-beatles-a-taste-of-hone... \n",
+ "\n",
+ " 5 \\\n",
+ "_id 210284 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/210284 \n",
+ "ctitle NaN \n",
+ "full_title Beatle Greetings by The Beatles (Ft. George Ha... \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "id 210284 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 250962 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-beatle-greetings-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Beatle Greetings \n",
+ "url https://genius.com/The-beatles-beatle-greeting... \n",
+ "\n",
+ " 6 \\\n",
+ "_id 1336394 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1336394 \n",
+ "ctitle NaN \n",
+ "full_title Can You Take Me Back by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "id 1336394 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 1549345 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-can-you-take-me-back-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Can You Take Me Back \n",
+ "url https://genius.com/The-beatles-can-you-take-me... \n",
+ "\n",
+ " 7 \\\n",
+ "_id 107915 \n",
+ "annotation_count 6 \n",
+ "api_path /songs/107915 \n",
+ "ctitle NaN \n",
+ "full_title Carry That Weight by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/560d707ac51a528c952d... \n",
+ "header_image_url https://images.genius.com/560d707ac51a528c952d... \n",
+ "id 107915 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 116340 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-carry-that-weight-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count 1 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/560d707ac51a528c952d... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n",
+ "title Carry That Weight \n",
+ "url https://genius.com/The-beatles-carry-that-weig... \n",
+ "\n",
+ " 8 \\\n",
+ "_id 1308579 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1308579 \n",
+ "ctitle NaN \n",
+ "full_title Down in Eastern Australia by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "id 1308579 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 1549345 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-down-in-eastern-australia-lyrics \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Down in Eastern Australia \n",
+ "url https://genius.com/The-beatles-down-in-eastern... \n",
+ "\n",
+ " 9 \\\n",
+ "_id 123808 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/123808 \n",
+ "ctitle NaN \n",
+ "full_title Everybody's Trying to Be My Baby by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/4268a08d2b36372eb6e8... \n",
+ "header_image_url https://images.genius.com/4268a08d2b36372eb6e8... \n",
+ "id 123808 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 22533 \n",
+ "original_lyrics NaN \n",
+ "path /The-beatles-everybodys-trying-to-be-my-baby-l... \n",
+ "primary_artist {'id': 586, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/4268a08d2b36372eb6e8... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Everybody's Trying to Be My Baby \n",
+ "url https://genius.com/The-beatles-everybodys-tryi... \n",
+ "\n",
+ " ... \\\n",
+ "_id ... \n",
+ "annotation_count ... \n",
+ "api_path ... \n",
+ "ctitle ... \n",
+ "full_title ... \n",
+ "header_image_thumbnail_url ... \n",
+ "header_image_url ... \n",
+ "id ... \n",
+ "lyrics ... \n",
+ "lyrics_owner_id ... \n",
+ "original_lyrics ... \n",
+ "path ... \n",
+ "primary_artist ... \n",
+ "pyongs_count ... \n",
+ "song_art_image_thumbnail_url ... \n",
+ "stats ... \n",
+ "title ... \n",
+ "url ... \n",
+ "\n",
+ " 1061 \\\n",
+ "_id 310483 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/310483 \n",
+ "ctitle NaN \n",
+ "full_title You Can't Catch Me by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/9c0263f14c39b6df59e5... \n",
+ "header_image_url https://images.genius.com/9c0263f14c39b6df59e5... \n",
+ "id 310483 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354383 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-you-cant-catch-me-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/9c0263f14c39b6df59e5... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title You Can't Catch Me \n",
+ "url https://genius.com/The-rolling-stones-you-cant... \n",
+ "\n",
+ " 1062 \\\n",
+ "_id 313269 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/313269 \n",
+ "ctitle NaN \n",
+ "full_title You Don't Have To Mean It by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/eb7fd9257058b77179cb... \n",
+ "header_image_url https://images.genius.com/eb7fd9257058b77179cb... \n",
+ "id 313269 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354608 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-you-dont-have-to-mean-it-l... \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/eb7fd9257058b77179cb... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title You Don't Have To Mean It \n",
+ "url https://genius.com/The-rolling-stones-you-dont... \n",
+ "\n",
+ " 1063 \\\n",
+ "_id 313043 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/313043 \n",
+ "ctitle NaN \n",
+ "full_title You Got Me Rocking by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/a8ed1f93846da84943a7... \n",
+ "header_image_url https://images.genius.com/a8ed1f93846da84943a7... \n",
+ "id 313043 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354382 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-you-got-me-rocking-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/a8ed1f93846da84943a7... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title You Got Me Rocking \n",
+ "url https://genius.com/The-rolling-stones-you-got-... \n",
+ "\n",
+ " 1064 \\\n",
+ "_id 2389345 \n",
+ "annotation_count 4 \n",
+ "api_path /songs/2389345 \n",
+ "ctitle NaN \n",
+ "full_title You Got the Silver by The Rolling Stones (Ft. ... \n",
+ "header_image_thumbnail_url https://images.rapgenius.com/ac969979ccb91a0d2... \n",
+ "header_image_url https://images.rapgenius.com/ac969979ccb91a0d2... \n",
+ "id 2389345 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 1217557 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-you-got-the-silver-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.rapgenius.com/ac969979ccb91a0d2... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title You Got the Silver \n",
+ "url https://genius.com/The-rolling-stones-you-got-... \n",
+ "\n",
+ " 1065 \\\n",
+ "_id 1245984 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1245984 \n",
+ "ctitle NaN \n",
+ "full_title Don't Look Back by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/23bbf05f7ee8286a8905... \n",
+ "header_image_url https://images.genius.com/23bbf05f7ee8286a8905... \n",
+ "id 1245984 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 1549345 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-dont-look-back-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/23bbf05f7ee8286a8905... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Don't Look Back \n",
+ "url https://genius.com/The-rolling-stones-dont-loo... \n",
+ "\n",
+ " 1066 \\\n",
+ "_id 311907 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/311907 \n",
+ "ctitle NaN \n",
+ "full_title Each and every day of the year by The Rolling ... \n",
+ "header_image_thumbnail_url https://images.genius.com/6c322c96140487d56076... \n",
+ "header_image_url https://images.genius.com/6c322c96140487d56076... \n",
+ "id 311907 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354385 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-each-and-every-day-of-the-... \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/6c322c96140487d56076... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Each and every day of the year \n",
+ "url https://genius.com/The-rolling-stones-each-and... \n",
+ "\n",
+ " 1067 \\\n",
+ "_id 310293 \n",
+ "annotation_count 4 \n",
+ "api_path /songs/310293 \n",
+ "ctitle NaN \n",
+ "full_title I'm A King Bee by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "header_image_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "id 310293 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354383 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-im-a-king-bee-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title I'm A King Bee \n",
+ "url https://genius.com/The-rolling-stones-im-a-kin... \n",
+ "\n",
+ " 1068 \\\n",
+ "_id 310289 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/310289 \n",
+ "ctitle NaN \n",
+ "full_title Little By Little by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "header_image_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "id 310289 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354383 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-little-by-little-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False} \n",
+ "title Little By Little \n",
+ "url https://genius.com/The-rolling-stones-little-b... \n",
+ "\n",
+ " 1069 \\\n",
+ "_id 106069 \n",
+ "annotation_count 16 \n",
+ "api_path /songs/106069 \n",
+ "ctitle NaN \n",
+ "full_title Brown Sugar by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n",
+ "header_image_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n",
+ "id 106069 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 16 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-brown-sugar-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count 7 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n",
+ "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n",
+ "title Brown Sugar \n",
+ "url https://genius.com/The-rolling-stones-brown-su... \n",
+ "\n",
+ " 1070 \n",
+ "_id 310543 \n",
+ "annotation_count 15 \n",
+ "api_path /songs/310543 \n",
+ "ctitle NaN \n",
+ "full_title Citadel by The Rolling Stones \n",
+ "header_image_thumbnail_url https://images.genius.com/31323212a74c2a8d99eb... \n",
+ "header_image_url https://images.genius.com/31323212a74c2a8d99eb... \n",
+ "id 310543 \n",
+ "lyrics NaN \n",
+ "lyrics_owner_id 354608 \n",
+ "original_lyrics NaN \n",
+ "path /The-rolling-stones-citadel-lyrics \n",
+ "primary_artist {'id': 774, 'image_url': 'https://images.geniu... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/31323212a74c2a8d99eb... \n",
+ "stats {'unreviewed_annotations': 14, 'hot': False} \n",
+ "title Citadel \n",
+ "url https://genius.com/The-rolling-stones-citadel-... \n",
+ "\n",
+ "[18 rows x 1071 columns]"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "gsongs = pd.DataFrame(list(genius_tracks.find()))\n",
+ "gsongs.T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can get the lyrics for each song. We tidy it up as we go, to strip out formatting and the like.\n",
+ "\n",
+ "Note the use of [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) to strip out the HTML from the lyrics."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def genius_lyrics(song_url):\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'Authorization': 'Bearer ' + config['genius']['token'],\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request(song_url, headers=headers, method='GET')\n",
+ " html_doc = urllib.request.urlopen(request)\n",
+ " soup = BeautifulSoup(html_doc, 'html.parser')\n",
+ "# lyrics = soup.find('lyrics').get_text()\n",
+ " if soup.find('div', class_='lyrics'):\n",
+ " lyrics = soup.find('div', class_='lyrics').get_text()\n",
+ " else:\n",
+ " lyrics = ''\n",
+ " return sanitise_lyrics(lyrics)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def sanitise_lyrics(lyrics):\n",
+ " l2 = re.sub('\\[[^\\]]*\\]', '', lyrics)\n",
+ " l3 = re.sub('\\[|\\]', '', l2)\n",
+ " l4 = re.sub('(\\s)+', ' ', l3)\n",
+ " l5 = re.sub('[,.!?;:]', '', l4)\n",
+ " return l5.strip().lower(), lyrics"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(\"oh ain't she sweet well see her walking down that street yes i ask you very confidentially ain't she sweet oh ain't she nice well look her over once or twice yes i ask you very confidentially ain't she nice just cast an eye in her direction oh me oh my ain't that perfection oh i repeat well don't you think that's kind of neat yes i ask you very confidentially ain't she sweet oh ain't she sweet well see her walking down that street yes i ask you very confidentially ain't she sweet oh ain't she nice well look her over once or twice yes i ask you very confidentially ain't she nice just cast an eye in her direction oh me oh my ain't that perfection oh i repeat well don't you think that's kind of neat yes i ask you very confidentially ain't she sweet oh ain't she sweet well see her walking down that street well i ask you very confidentially ain't she sweet well i ask you very confidentially ain't she sweet\",\n",
+ " \"\\n\\n[Chorus 1]\\nOh ain't she sweet\\nWell see her walking down that street\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 2]\\nOh ain't she nice\\nWell look her over once or twice\\nYes I ask you very confidentially\\nAin't she nice?\\n\\n[Chorus 3]\\nJust cast an eye\\nIn her direction\\nOh me oh my\\nAin't that perfection?\\n\\n[Chorus 4]\\nOh I repeat\\nWell don't you think that's kind of neat?\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 1]\\nOh ain't she sweet\\nWell see her walking down that street\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 2]\\nOh ain't she nice\\nWell look her over once or twice\\nYes I ask you very confidentially\\nAin't she nice?\\n\\n[Chorus 3]\\nJust cast an eye\\nIn her direction\\nOh me oh my\\nAin't that perfection?\\n\\n[Chorus 4]\\nOh I repeat\\nWell don't you think that's kind of neat?\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 1]\\nOh ain't she sweet\\nWell see her walking down that street\\nWell I ask you very confidentially\\nAin't she sweet?\\nWell I ask you very confidentially\\nAin't she sweet?\\n\\n\")"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "assl = genius_lyrics('https://genius.com/The-beatles-aint-she-sweet-lyrics')\n",
+ "assl"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': 1497768,\n",
+ " 'lyrics': 'when i was sitting on my piano one day a magical thought came my way to write a number for the bbc kenny everett mccartney all together on the wireless machine kenny everett mccartney all together on the wireless machine kenny everett mccartney all together on the wireless machine',\n",
+ " 'original_lyrics': '\\n\\nWhen I was sitting on my piano one day\\nA magical thought came my way\\nTo write a number for the BBC\\nKenny Everett McCartney\\nAll together on the wireless machine\\nKenny Everett McCartney\\nAll together on the wireless machine\\nKenny Everett McCartney\\nAll together on the wireless machine\\n\\n',\n",
+ " 'title': 'All Together on the Wireless Machine'}"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "for gsong in genius_tracks.find():\n",
+ " if 'lyrics' not in gsong:\n",
+ " lyrics, original_lyrics = genius_lyrics(gsong['url'])\n",
+ " genius_tracks.update_one({'_id': gsong['_id']}, \n",
+ " {'$set': {'lyrics': lyrics, 'original_lyrics': original_lyrics}})\n",
+ "genius_tracks.find_one({}, ['title', 'lyrics', 'original_lyrics'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'original_lyrics_text'"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_tracks.create_index([('original_lyrics', pymongo.TEXT)])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\"\\n\\nClaudine's back in jail again\\nClaudine's back in jail (again)\\nClaudine's back in jail again\\nClaudine\\n\\nClaudine's back in jail again\\nClaudine's back in jail (again)\\nShe only does it at weekends\\nClaudine\\nOh, Claudine\\n\\nNow only Spider knows for sure\\nBut he ain't talkin' about it any more\\nIs he, Claudine?\\n\\nThere's blood in the chalet\\nAnd blood in the snow\\n(She)Washed her hands of the whole damn show\\nThe best thing you could do, Claudine\\n\\nShot him once right through the head\\nShot him twice right through the chest\\nThe judge says (ruled) it was an accident\\nClaudine\\nAccidents will happen\\n(In the best homes)\\n\\nAnd Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\n(Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\n\\nClaudine) (additional chorus)\\nI'll tell you something\\nNow Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\nTell you one more\\n\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nHuh Claudine?\\n\\nOh Claudine...\\n\\nOooo ...\\nWhat about the children, baby?\\nPoor, poor children\\n\\nNow I threaten my wife with a gun\\nI always leave the safety on\\nI recommend it\\nClaudine\\n\\nNow she pistol whipped me once or twice\\nBut she never tried to take my life\\n(What do you think about that)\\nClaudine\\n\\nThe prettiest girl I ever seen\\nI saw you on the movie screen\\nHope you don't try to make a sacrifice of me\\nClaudine\\n(Don't get trigger happy with me)\\nDon't wave a gun at me\\n(Claudine)\\n\\nI said Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\nI said Claudine's back in jail again\\nClaudine's back in jail again\\nShe only does it at weekends\\nClaudine\\n\\nKeith, will you put that weapon down?\\n\\nOh Claudine\\n\\nOh Claudine\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nI'm not talking about the kind of clothes she wears\\nLook at that stupid girl\\nI'm not talking about the way she combs her hair\\nLook at that stupid girl\\n\\nThe way she powders her nose\\nHer vanity shows and it shows\\nShe's the worst thing in this world\\nWell, look at that stupid girl\\n\\n[Verse 2]\\nI'm not talking about the way she digs for gold\\nLook at that stupid girl\\nWell, I'm talking about the way she grabs and holds\\nLook at that stupid girl\\n\\nThe way she talks about someone else\\nThat she don't even know herself\\nShe's the sickest thing in this world\\nWell, look at that stupid girl\\n\\n[Chorus]\\nWell, I'm sick and tired and I really have my doubts\\nI've tried and tried, but it never really works out\\n\\n[Verse 3]\\nLike a lady-in-waiting to a virgin queen\\nLook at that stupid girl\\nShe bitches about things that she's never seen\\nLook at that stupid girl\\n\\nIt doesn't matter if she dyes her hair\\nOr the color of the shoes she wears\\nShe's the worst thing in this world\\nWell, look at that stupid girl\\n\\n[Guitar Break]\\n\\n[Verse 4]\\nLike a lady-in-waiting to a virgin queen\\nLook at that stupid girl\\nShe bitches about things that she's never seen\\nLook at that stupid girl\\n\\nAnd she purrs like a pussycat\\nThen she turns around and hisses back\\nShe's the sickest thing in this world\\nLook at that stupid girl\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nWent out walking through the wood the other day\\nAnd the world was a carpet laid before me\\nThe buds were bursting and the air smelled sweet and strange\\nAnd it seemed about a hundred years ago\\nMary and I, we would sit upon a gate\\nJust gazing at some dragon in the sky\\nWhat tender days, we had no secrets hid away\\nWell, it seemed about a hundred years ago\\nNow all my friends are wearing worried smiles\\nLiving out a dream of what they was\\nDon't you think it's sometimes wise not to grow up?\\nWend out walking through the wood the other day\\nCan't you see the furrows in my forehead?\\nWhat tender days, we had no secrets hid away\\nNow it seems about a hundred years ago\\nNow if you see me drinking bad red wine\\nDon't worry 'bout this man that you love\\nDon't you think it's sometimes wise not to grow up?\\n\\n[Chorus]\\nYou're going to kiss and say good-bye, yeah, I warn you[x2]\\nYou're going to kiss and say good-bye, oh Lord, I warn you\\n\\n[Verse 2]\\nAnd please excuse me while I hide away\\nCall me lazy bones\\nIsn’t got no time to waste away\\nLazy bones has not got no time to waste away\\nDon't you think it's just about time to hide away? Yeah, yeah!\\n\\n\",\n",
+ " \"\\n\\n[Instrument break]\\n\\n[Verse 1]\\nI don't like you\\nBut I love you\\nSeems that I'm always\\nThinking of you\\nOh, oh, oh\\nYou treat me badly\\nI love you madly\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\n[Verse 2]\\nI don't want you\\nBut I need you\\nDon't want to kiss you\\nBut I need to\\nOh, oh, oh\\nYou do me wrong now\\nMy love is strong now\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\n[Chorus]\\nI love you and all I want you to do\\nIs just hold me, hold me, hold me, hold me\\nTighter\\nTighter\\n\\n[Verse 3]\\nI want to leave you\\nDon't want to stay here\\nDon't want to spend\\nAnother day here\\nOh, oh, oh, I want to split now\\nI just can quit now\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\nI love you and all I want you to do\\nIs just hold me, hold me, hold me, hold me\\n\\n[Outro]\\nYou've really got a hold on me\\nYou've really got a hold on me\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nThe best things in life are free\\nBut you can keep them for the birds and bees\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want\\n\\nYour loving gives me a thrill\\nBut your loving don't pay my bills\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want\\n\\n[Chorus] [x2]\\nMoney don't get everything it's true\\nWhat it don't get, I can't use\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want, wah\\n\\n[Verse 2]\\nWell now give me money\\nA lot of money\\nWow, yeah, I want to be free\\nOh I want money\\nThat's what I want\\nThat's what I want, well\\nNow give me money\\nA lot of money\\nWow, yeah, you need money\\nNow, give me money\\nThat's what I want, yeah\\nThat's what I want\\n\\n\",\n",
+ " '\\n\\n[Intro]\\nI say hey, Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\n\\n[Chorus][x2]\\nI tell you Mona what I want to do\\nI will build a house next door to you\\nCan I see you sometimes?\\nWe can blow kisses through the blinds\\nYeah can I out come out on the front\\nAnd listen to my heart go bumped bump\\nI need you baby that is no lie\\nWithout your love I would surely die\\nI say hey, Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\nI say hey, hey Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\n\\n',\n",
+ " \"\\n\\n[Verse 1]\\nNow, if you want to hear some boogie like I am going to play\\nIt is just an old piano and a knockout bass\\nThe drummer's man's a cat, they call Charlie McCoy\\nYou know, remember that rubber legged boy?\\nMama, cooking chicken fried and bacon grease\\nCome on along boys, it is just down the road apiece\\n\\n[Chorus][x2]\\nWell there is a place you really get your kicks\\nIt is open every night about twelve to six\\nNow if you want to hear some boogie you can get your fill\\nAnd shove and sting like an old steam drill\\nCome on along you can lose your lead\\nDown the road, down the road, down the road apiece\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nSun turnin' 'round with graceful motion\\nWe're setting off with soft explosion\\nBound for a star with fiery oceans\\nIt's so very lonely, you're a hundred light years from home\\nFreezing red deserts turn to dark\\nEnergy here in every part\\nIt's so very lonely, you're six hundred light years from home\\n\\n[Chorus]\\nIt's so very lonely, you're a thousand light years from home\\nIt's so very lonely, you're a thousand light years from home\\n\\n[Verse 2]\\nBell flight fourteen you now can land\\nSee you on Aldebaran, safe on the green desert sand\\nIt's so very lonely, you're two thousand light years from home\\nIt's so very lonely, you're two thousand light years from home\\n\\n\",\n",
+ " '\\n\\n[Intro]\\nWell if you ever plan to motor west\\nJust take my way that is the highway that is the best\\n\\n[Verse]\\nGet your kicks on Route 66\\nWell it winds from Chicago to L.A\\nMore than 2000 miles all the way\\nGet your kicks on Route 66\\n\\n[Chorus][x2]\\nWell goes from St. Louie down to Missouri\\nOklahoma city looks oh so pretty\\nYou will see Amarillo and Gallup, New Mexico\\nFlagstaff, Arizona do not forget Winona\\nKingman, Barstow, San Bernardino\\nWould you get hip to this kindly tip\\nAnd go take that California trip\\nGet your kicks on Route 66\\n\\n',\n",
+ " \"\\n\\nWell, they tell me of a pie up in the sky\\nWaiting for me when I die\\nBut between the day you're born and when you die\\nYou know, they never seem to hear even your cry\\n\\nChorus:\\nSo as sure as the sun will shine\\nI'm gonna get my share now what is mine\\nAnd then the harder they come\\nThe harder they fall\\nOne and all\\nThe harder they come\\nThe harder they fall\\nOne and all\\n\\nAnd the oppressors are trying to track me down\\nThey're trying to drive me underground\\nAnd they think that they have got the battle won\\nI say, forgive them Lord, they know not what they've done\\n\\nAnd I keep on fighting for the things I want\\nThough I know that when you're dead you can't\\nBut I'd rather be a free man in my grave\\nThan living as a puppet or a slave\\n\\n\"]"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[t['original_lyrics'] for t in genius_tracks.find({'$text': {'$search': 'chorus'}}, limit=10)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Matching datasets<a name=\"matchingdatasets\"></a>\n",
+ "Now it's time to match up the datasets. First, we simplify the titles of the tracks, to sidestep differences in punctuation, capitalisation, and the like.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def canonical_name(text):\n",
+ " t1 = re.sub(' - .*', '', text) # Strip the \" - Remastered 2015\" suffix\n",
+ " t2 = re.sub('[^\\w\\s]', '', t1) # strip all characters except letters, numbers, and whitespace\n",
+ " t3 = re.sub('\\s+', ' ', t2) # collapse whitespace\n",
+ " return t3.lower() # convert to lowercase and return"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'a hard days night'"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "canonical_name(\"A Hard Day's Night - Live / Remastered\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Add the simplified title to each track in the Spotify and Genius collections."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for t in tracks.find():\n",
+ " tracks.update_one({'_id': t['_id']}, {'$set': {'ctitle': canonical_name(t['name'])}})\n",
+ "for t in genius_tracks.find():\n",
+ " genius_tracks.update_one({'_id': t['_id']}, {'$set': {'ctitle': canonical_name(t['title'])}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('you cant always get what you want',\n",
+ " ['You Can’t Always Get What You Want - Live',\n",
+ " \"You Can't Always Get What You Want - Live Licks Tour - 2009 Re-Mastered Digital Version\",\n",
+ " \"You Can't Always Get What You Want - Live / Remastered 2009\",\n",
+ " 'You Can’t Always Get What You Want - Live']),\n",
+ " ('next time you see me',\n",
+ " ['Next Time You See Me - Live', 'Next Time You See Me - Live']),\n",
+ " ('fixing a hole',\n",
+ " ['Fixing A Hole - Remastered',\n",
+ " 'Fixing A Hole - Remix',\n",
+ " 'Fixing A Hole - Speech And Take 3']),\n",
+ " ('harlem shuffle', ['Harlem Shuffle', 'Harlem Shuffle - Remastered']),\n",
+ " ('back to zero', ['Back To Zero', 'Back To Zero - Remastered']),\n",
+ " ('sgt peppers lonely hearts club band',\n",
+ " [\"Sgt. Pepper's Lonely Hearts Club Band - Remastered\",\n",
+ " \"Sgt. Pepper's Lonely Hearts Club Band - Reprise / Remastered\",\n",
+ " \"Sgt. Pepper's Lonely Hearts Club Band - Remix\",\n",
+ " \"Sgt. Pepper's Lonely Hearts Club Band - Take 9 And Speech\"]),\n",
+ " ('im free',\n",
+ " [\"I'm Free - Live At The Beacon Theatre, New York / 2006\",\n",
+ " \"I'm Free - Live / Remastered 2009\"]),\n",
+ " ('lies', ['Lies - Remastered', 'Lies - Remastered']),\n",
+ " ('happy',\n",
+ " ['Happy - Live',\n",
+ " 'Happy - Live',\n",
+ " 'Happy - Live Licks Tour - 2009 Re-Mastered Digital Version']),\n",
+ " ('get back', ['Get Back - Remastered 2015', 'Get Back - Remastered']),\n",
+ " ('gimme shelter',\n",
+ " ['Gimme Shelter - Live',\n",
+ " 'Gimme Shelter - Live',\n",
+ " 'Gimme Shelter - Live',\n",
+ " 'Gimme Shelter - Live',\n",
+ " 'Gimme Shelter - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Gimme Shelter - Live']),\n",
+ " ('i want to hold your hand',\n",
+ " ['I Want To Hold Your Hand - Live / Bonus Track',\n",
+ " 'I Want To Hold Your Hand - Remastered 2015']),\n",
+ " ('roll over beethoven',\n",
+ " ['Roll Over Beethoven - Saturday Club / 1963',\n",
+ " 'Roll Over Beethoven - Live / Remastered',\n",
+ " 'Roll Over Beethoven - Remastered']),\n",
+ " ('cant be seen',\n",
+ " [\"Can't Be Seen - Live / Remastered 2009\", \"Can't Be Seen - Remastered\"]),\n",
+ " ('midnight rambler',\n",
+ " ['Midnight Rambler - Live',\n",
+ " 'Midnight Rambler - Live',\n",
+ " 'Midnight Rambler - Live',\n",
+ " 'Midnight Rambler - Live',\n",
+ " 'Midnight Rambler - Live',\n",
+ " 'Midnight Rambler - Live']),\n",
+ " ('dirty work', ['Dirty Work', 'Dirty Work - Remastered']),\n",
+ " ('all you need is love',\n",
+ " ['All You Need Is Love - Remastered 2015',\n",
+ " 'All You Need Is Love - Remastered',\n",
+ " 'All You Need Is Love - Remastered 2009']),\n",
+ " ('not fade away',\n",
+ " ['Not Fade Away - Live',\n",
+ " 'Not Fade Away - Live',\n",
+ " 'Not Fade Away - Live',\n",
+ " 'Not Fade Away - Live / Remastered 2009']),\n",
+ " ('slipping away',\n",
+ " ['Slipping Away - Live',\n",
+ " 'Slipping Away - Live',\n",
+ " 'Slipping Away - Live',\n",
+ " 'Slipping Away - Live / Remastered 2009',\n",
+ " 'Slipping Away - Remastered']),\n",
+ " ('faraway eyes',\n",
+ " ['Faraway Eyes - Live',\n",
+ " 'Faraway Eyes - Live',\n",
+ " 'Faraway Eyes - Live',\n",
+ " 'Faraway Eyes - Live At The Beacon Theatre, New York / 2006']),\n",
+ " ('angie',\n",
+ " ['Angie - Live',\n",
+ " 'Angie - Live',\n",
+ " 'Angie - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Angie - Live / Remastered 2009',\n",
+ " 'Angie - Live']),\n",
+ " ('come together',\n",
+ " ['Come Together - Remastered 2015', 'Come Together - Remastered']),\n",
+ " ('cant buy me love',\n",
+ " [\"Can't Buy Me Love - Live / Remastered\",\n",
+ " \"Can't Buy Me Love - Remastered 2015\",\n",
+ " \"Can't Buy Me Love - Remastered\"]),\n",
+ " ('brown sugar',\n",
+ " ['Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live',\n",
+ " 'Brown Sugar - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Brown Sugar - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Brown Sugar - Live / Remastered 2009',\n",
+ " 'Brown Sugar - Live']),\n",
+ " ('baby please dont go',\n",
+ " [\"Baby Please Don't Go - Live / Instrumental\",\n",
+ " \"Baby Please Don't Go - Live\",\n",
+ " \"Baby Please Don't Go - Live\"]),\n",
+ " ('sgt peppers lonely hearts club band reprise',\n",
+ " [\"Sgt. Pepper's Lonely Hearts Club Band (Reprise) - Speech And Take 8\",\n",
+ " \"Sgt. Pepper's Lonely Hearts Club Band (Reprise) - Remix\"]),\n",
+ " ('the long and winding road',\n",
+ " ['The Long And Winding Road - Remastered 2015',\n",
+ " 'The Long And Winding Road - Remastered']),\n",
+ " ('when im sixtyfour',\n",
+ " [\"When I'm Sixty-Four - Take 2\", \"When I'm Sixty-Four - Remix\"]),\n",
+ " ('some girls',\n",
+ " ['Some Girls - Remastered',\n",
+ " 'Some Girls - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Some Girls - Remastered']),\n",
+ " ('connection',\n",
+ " ['Connection - Live',\n",
+ " 'Connection - Live',\n",
+ " 'Connection - Live',\n",
+ " 'Connection - Live At The Beacon Theatre, New York / 2006']),\n",
+ " ('shattered',\n",
+ " ['Shattered - Live',\n",
+ " 'Shattered - Live',\n",
+ " 'Shattered - Remastered',\n",
+ " 'Shattered - Remastered',\n",
+ " 'Shattered - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Shattered - Live / Remastered 2009']),\n",
+ " ('the worst', ['The Worst - Live', 'The Worst - Remastered']),\n",
+ " ('little red rooster',\n",
+ " ['Little Red Rooster - Live / Remastered 2009',\n",
+ " 'Little Red Rooster - Live In Ireland / 1965']),\n",
+ " ('sad sad sad',\n",
+ " ['Sad Sad Sad - Live / Remastered 2009', 'Sad Sad Sad - Remastered']),\n",
+ " ('the spider and the fly',\n",
+ " ['The Spider And The Fly - Yeah Yeah / 1965',\n",
+ " 'The Spider And The Fly - Live',\n",
+ " 'The Spider And The Fly - Live / Remastered 2009']),\n",
+ " ('a day in the life',\n",
+ " ['A Day In The Life - Take 1 With Hums',\n",
+ " 'A Day In The Life - Remastered',\n",
+ " 'A Day In The Life - Remix']),\n",
+ " ('you got me rockin',\n",
+ " ['You Got Me Rockin’ - Live', 'You Got Me Rockin’ - Live']),\n",
+ " ('things we said today',\n",
+ " ['Things We Said Today - Live / Remastered',\n",
+ " 'Things We Said Today - Remastered']),\n",
+ " ('being for the benefit of mr kite',\n",
+ " ['Being For The Benefit Of Mr. Kite! - Remastered',\n",
+ " 'Being For The Benefit Of Mr. Kite! - Remix',\n",
+ " 'Being For The Benefit Of Mr. Kite! - Take 4']),\n",
+ " ('had it with you', ['Had It With You', 'Had It With You - Remastered']),\n",
+ " ('time is on my side',\n",
+ " ['Time Is On My Side - Live / Remastered 2009',\n",
+ " 'Time Is On My Side - Live In Ireland / 1965']),\n",
+ " ('tumbling dice',\n",
+ " ['Tumbling Dice - Live',\n",
+ " 'Tumbling Dice - Live',\n",
+ " 'Tumbling Dice - Live',\n",
+ " 'Tumbling Dice - Live',\n",
+ " 'Tumbling Dice - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Tumbling Dice - Live']),\n",
+ " ('yellow submarine',\n",
+ " ['Yellow Submarine - Remastered 2015',\n",
+ " 'Yellow Submarine - Remastered',\n",
+ " 'Yellow Submarine - Remastered']),\n",
+ " ('beast of burden',\n",
+ " ['Beast Of Burden - Live',\n",
+ " 'Beast Of Burden - Live',\n",
+ " 'Beast Of Burden - Live',\n",
+ " 'Beast Of Burden - Remastered',\n",
+ " 'Beast Of Burden - Remastered',\n",
+ " 'Beast Of Burden - Live Licks Tour - 2009 Re-Mastered Digital Version']),\n",
+ " ('lovely rita',\n",
+ " ['Lovely Rita - Speech And Take 9',\n",
+ " 'Lovely Rita - Remastered',\n",
+ " 'Lovely Rita - Remix']),\n",
+ " ('neighbours',\n",
+ " ['Neighbours - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Neighbours - Remastered']),\n",
+ " ('dead flowers',\n",
+ " ['Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live',\n",
+ " 'Dead Flowers - Live / Remastered 2009']),\n",
+ " ('paint it black',\n",
+ " ['Paint It Black - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Paint It Black - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Paint It Black - Live / Remastered 2009',\n",
+ " 'Paint It Black - Live']),\n",
+ " ('respectable',\n",
+ " ['Respectable - Live',\n",
+ " 'Respectable - Live',\n",
+ " 'Respectable - Remastered',\n",
+ " 'Respectable - Remastered']),\n",
+ " ('just my imagination',\n",
+ " ['Just My Imagination - Live',\n",
+ " 'Just My Imagination - Live At The Beacon Theatre, New York / 2006']),\n",
+ " ('tell me why', ['Tell Me Why', 'Tell Me Why - Remastered']),\n",
+ " ('little by little',\n",
+ " ['Little By Little - The Joe Loss Pop Show / 1964', 'Little By Little']),\n",
+ " ('got my mojo workin',\n",
+ " [\"Got My Mojo Workin' - Live\", \"Got My Mojo Workin' - Live\"]),\n",
+ " ('little ta',\n",
+ " ['Little T&A - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Little T&A - Remastered']),\n",
+ " ('far away eyes',\n",
+ " ['Far Away Eyes - Live',\n",
+ " 'Far Away Eyes - Remastered',\n",
+ " 'Far Away Eyes - Remastered']),\n",
+ " ('rock and a hard place',\n",
+ " ['Rock And A Hard Place - Live / Remastered 2009',\n",
+ " 'Rock And A Hard Place - Remastered']),\n",
+ " ('long distance call',\n",
+ " ['Long Distance Call - Live', 'Long Distance Call - Live']),\n",
+ " ('start me up',\n",
+ " ['Start Me Up - Live',\n",
+ " 'Start Me Up - Live',\n",
+ " 'Start Me Up - Live',\n",
+ " 'Start Me Up - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Start Me Up - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Start Me Up - Live / Remastered 2009',\n",
+ " 'Start Me Up - Live / Remastered 2009',\n",
+ " 'Start Me Up - Remastered',\n",
+ " 'Start Me Up - Live']),\n",
+ " ('let it bleed',\n",
+ " ['Let It Bleed - Live',\n",
+ " 'Let It Bleed - Live',\n",
+ " 'Let It Bleed - Live / Remastered 2009']),\n",
+ " ('fight', ['Fight', 'Fight - Remastered']),\n",
+ " ('route 66',\n",
+ " ['Route 66 - Blues In Rhythm / 1964', 'Route 66 - Live In Ireland / 1965']),\n",
+ " ('one hit to the body',\n",
+ " ['One Hit (To The Body)', 'One Hit (To The Body) - Remastered']),\n",
+ " ('let me go',\n",
+ " ['Let Me Go - Live / Remastered 2009', 'Let Me Go - Remastered']),\n",
+ " ('just my imagination running away with me',\n",
+ " ['Just My Imagination (Running Away With Me) - Remastered',\n",
+ " 'Just My Imagination (Running Away With Me) - Live / Remastered 2009',\n",
+ " 'Just My Imagination (Running Away With Me) - Remastered']),\n",
+ " ('down in the bottom',\n",
+ " ['Down In The Bottom - Live', 'Down In The Bottom - Live']),\n",
+ " ('you got the silver',\n",
+ " ['You Got The Silver - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'You Got The Silver - Live']),\n",
+ " ('i cant get no satisfaction',\n",
+ " [\"(I Can't Get No) Satisfaction - Saturday Club / 1965\",\n",
+ " \"(I Can't Get No) Satisfaction - Live At The Beacon Theatre, New York / 2006\",\n",
+ " \"(I Can't Get No) Satisfaction - Live Licks Tour / Remastered 2009\",\n",
+ " \"(I Can't Get No) Satisfaction - Live / Remastered 2009\",\n",
+ " \"(I Can't Get No) Satisfaction - Live / Remastered 2009\",\n",
+ " \"(I Can't Get No) Satisfaction - Live\"]),\n",
+ " ('sleep tonight', ['Sleep Tonight', 'Sleep Tonight - Remastered']),\n",
+ " ('she loves you',\n",
+ " ['She Loves You - Live / Remastered', 'She Loves You - Mono / Remastered']),\n",
+ " ('clouds in my heart',\n",
+ " ['Clouds In My Heart - Live', 'Clouds In My Heart - Live']),\n",
+ " ('love me do',\n",
+ " ['Love Me Do - Mono / Remastered', 'Love Me Do - Remastered 2009']),\n",
+ " ('its all over now',\n",
+ " [\"It's All Over Now - The Joe Loss Pop Show / 1964\",\n",
+ " \"It's All Over Now - Live\"]),\n",
+ " ('miss you',\n",
+ " ['Miss You - Live',\n",
+ " 'Miss You - Live',\n",
+ " 'Miss You - Live',\n",
+ " 'Miss You - Live',\n",
+ " 'Miss You - Remastered',\n",
+ " 'Miss You - Live',\n",
+ " 'Miss You - Live / Remastered 2009',\n",
+ " 'Miss You - Remastered',\n",
+ " 'Miss You - Live']),\n",
+ " ('mannish boy', ['Mannish Boy - Live', 'Mannish Boy - Live']),\n",
+ " ('its only rock n roll but i like it',\n",
+ " [\"It's Only Rock N Roll (But I Like It) - Live\",\n",
+ " \"It's Only Rock 'n' Roll (But I Like It) - Live Licks Tour - 2009 Re-Mastered Digital Version\",\n",
+ " \"It's Only Rock 'N Roll (But I Like It) - Live\"]),\n",
+ " ('when the whip comes down',\n",
+ " ['When The Whip Comes Down - Live',\n",
+ " 'When The Whip Comes Down - Live',\n",
+ " 'When The Whip Comes Down - Remastered',\n",
+ " 'When The Whip Comes Down - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'When The Whip Comes Down - Remastered']),\n",
+ " ('monkey man',\n",
+ " ['Monkey Man - Live',\n",
+ " 'Monkey Man - Live Licks Tour - 2009 Re-Mastered Digital Version']),\n",
+ " ('eight days a week',\n",
+ " ['Eight Days A Week - Remastered 2015', 'Eight Days A Week - Remastered']),\n",
+ " ('wild horses',\n",
+ " ['Wild Horses - Live',\n",
+ " 'Wild Horses - Live',\n",
+ " 'Wild Horses - Live',\n",
+ " 'Wild Horses - Live / Remastered 2009']),\n",
+ " ('shes leaving home',\n",
+ " [\"She's Leaving Home - Remastered\",\n",
+ " \"She's Leaving Home - Remix\",\n",
+ " \"She's Leaving Home - Take 1 / Instrumental\"]),\n",
+ " ('everybody needs somebody to love',\n",
+ " ['Everybody Needs Somebody To Love - Top Gear / 1965',\n",
+ " 'Everybody Needs Somebody To Love - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Everybody Needs Somebody To Love - Live In Ireland / 1965']),\n",
+ " ('one eyed woman', ['One Eyed Woman - Live', 'One Eyed Woman - Live']),\n",
+ " ('rip this joint',\n",
+ " ['Rip This Joint - Live',\n",
+ " 'Rip This Joint - Live',\n",
+ " 'Rip This Joint - Live',\n",
+ " 'Rip This Joint - Live',\n",
+ " 'Rip This Joint - Live',\n",
+ " 'Rip This Joint - Live']),\n",
+ " ('winning ugly', ['Winning Ugly', 'Winning Ugly - Remastered']),\n",
+ " ('yesterday', ['Yesterday - Remastered 2015', 'Yesterday - Remastered']),\n",
+ " ('street fighting man',\n",
+ " ['Street Fighting Man - Live',\n",
+ " 'Street Fighting Man - Live',\n",
+ " 'Street Fighting Man - Live',\n",
+ " 'Street Fighting Man - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Street Fighting Man - Live / Remastered 2009',\n",
+ " 'Street Fighting Man - Live']),\n",
+ " ('a hard days night',\n",
+ " [\"A Hard Day's Night - Live / Remastered\",\n",
+ " \"A Hard Day's Night - Remastered 2015\",\n",
+ " \"A Hard Day's Night - Remastered\"]),\n",
+ " ('within you without you',\n",
+ " ['Within You Without You - Take 1 / Indian Instruments',\n",
+ " 'Within You Without You - Remastered',\n",
+ " 'Within You Without You - Remix']),\n",
+ " ('all down the line',\n",
+ " ['All Down The Line - Live',\n",
+ " 'All Down The Line - Live',\n",
+ " 'All Down The Line - Live',\n",
+ " 'All Down The Line - Live',\n",
+ " 'All Down The Line - Live',\n",
+ " 'All Down The Line - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'All Down The Line - Live']),\n",
+ " ('good morning good morning',\n",
+ " ['Good Morning Good Morning - Take 8',\n",
+ " 'Good Morning Good Morning - Remastered',\n",
+ " 'Good Morning Good Morning - Remix']),\n",
+ " ('you dont have to mean it',\n",
+ " [\"You Don't Have To Mean It - Live Licks Tour - 2009 Re-Mastered Digital Version\",\n",
+ " \"You Don't Have To Mean It - Remastered\"]),\n",
+ " ('love in vain',\n",
+ " ['Love In Vain - Live',\n",
+ " 'Love In Vain - Live',\n",
+ " 'Love In Vain - Live',\n",
+ " 'Love In Vain - Live / Remastered 2009']),\n",
+ " ('you dont have to go',\n",
+ " [\"You Don't Have To Go - Live\", \"You Don't Have To Go - Live\"]),\n",
+ " ('boys', ['Boys - Live / Remastered', 'Boys - Remastered 2009']),\n",
+ " ('bitch', ['Bitch - Live', 'Bitch - Live']),\n",
+ " ('the last time',\n",
+ " ['The Last Time - Top Gear / 1965',\n",
+ " 'The Last Time - Live In Ireland / 1965']),\n",
+ " ('honky tonk women',\n",
+ " ['Honky Tonk Women - Live',\n",
+ " 'Honky Tonk Women - Live',\n",
+ " 'Honky Tonk Women - Live',\n",
+ " 'Honky Tonk Women - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Honky Tonk Women - Live',\n",
+ " 'Honky Tonk Women - Live']),\n",
+ " ('twist and shout',\n",
+ " ['Twist And Shout - Live / Remastered',\n",
+ " 'Twist And Shout - Remastered 2009']),\n",
+ " ('hoochie coochie man',\n",
+ " ['Hoochie Coochie Man - Live', 'Hoochie Coochie Man - Live']),\n",
+ " ('introduction', ['Introduction - Live', 'Introduction - Live']),\n",
+ " ('champagne and reefer',\n",
+ " ['Champagne And Reefer - Live', 'Champagne And Reefer - Live']),\n",
+ " ('i go wild',\n",
+ " ['I Go Wild - Live',\n",
+ " 'I Go Wild - Live',\n",
+ " 'I Go Wild - Live',\n",
+ " 'I Go Wild - Remastered',\n",
+ " 'I Go Wild - Live']),\n",
+ " ('help',\n",
+ " ['Help! - Live / Remastered',\n",
+ " 'Help! - Remastered 2015',\n",
+ " 'Help! - Remastered']),\n",
+ " ('she was hot',\n",
+ " ['She Was Hot - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'She Was Hot - Remastered']),\n",
+ " ('sympathy for the devil',\n",
+ " ['Sympathy For The Devil - Live At Beacon Theatre, New York / 2006',\n",
+ " 'Sympathy For The Devil - Live / Remastered 2009',\n",
+ " 'Sympathy For The Devil - Live']),\n",
+ " ('ticket to ride',\n",
+ " ['Ticket To Ride - Live / Remastered',\n",
+ " 'Ticket To Ride - Remastered 2015',\n",
+ " 'Ticket To Ride - Remastered']),\n",
+ " ('im moving on',\n",
+ " [\"I'm Moving On - The Joe Loss Pop Show / 1964\",\n",
+ " \"I'm Moving On - Live In Ireland / 1965\"]),\n",
+ " ('black limousine',\n",
+ " ['Black Limousine - Live', 'Black Limousine - Remastered']),\n",
+ " ('out of control', ['Out Of Control - Remastered', 'Out Of Control - Live']),\n",
+ " ('dizzy miss lizzy',\n",
+ " ['Dizzy Miss Lizzy - Live / Remastered', 'Dizzy Miss Lizzy - Remastered']),\n",
+ " ('you cant do that',\n",
+ " [\"You Can't Do That - Live / Bonus Track\",\n",
+ " \"You Can't Do That - Remastered\"]),\n",
+ " ('with a little help from my friends',\n",
+ " ['With A Little Help From My Friends - Remastered',\n",
+ " 'With A Little Help From My Friends - Remix',\n",
+ " 'With A Little Help From My Friends - Take 1 / False Start And Take 2 / Instrumental']),\n",
+ " ('babys in black',\n",
+ " [\"Baby's In Black - Live / Bonus Track\", \"Baby's In Black - Remastered\"]),\n",
+ " ('i will', ['I Will - Remastered', 'I Will']),\n",
+ " ('strawberry fields forever',\n",
+ " ['Strawberry Fields Forever - Take 7',\n",
+ " 'Strawberry Fields Forever - Take 26',\n",
+ " 'Strawberry Fields Forever - Stereo Mix 2015',\n",
+ " 'Strawberry Fields Forever - Remastered 2009']),\n",
+ " ('eleanor rigby',\n",
+ " ['Eleanor Rigby - Remastered 2015', 'Eleanor Rigby - Remastered']),\n",
+ " ('jumpin jack flash',\n",
+ " [\"Jumpin' Jack Flash - Live\",\n",
+ " \"Jumpin' Jack Flash - Live\",\n",
+ " 'Jumpin’ Jack Flash - Live',\n",
+ " \"Jumpin' Jack Flash - Live\",\n",
+ " 'Jumpin’ Jack Flash - Live',\n",
+ " 'Jumpin’ Jack Flash - Live',\n",
+ " 'Jumpin’ Jack Flash - Live',\n",
+ " \"Jumpin' Jack Flash - Live / Remastered 2009\",\n",
+ " \"Jumpin' Jack Flash - Live\"]),\n",
+ " ('before they make me run',\n",
+ " ['Before They Make Me Run - Remastered',\n",
+ " 'Before They Make Me Run - Remastered',\n",
+ " 'Before They Make Me Run - Live']),\n",
+ " ('hello goodbye',\n",
+ " ['Hello, Goodbye - Remastered 2015', 'Hello, Goodbye - Remastered 2009']),\n",
+ " ('hold back', ['Hold Back', 'Hold Back - Remastered']),\n",
+ " ('let it be', ['Let It Be - Remastered 2015', 'Let It Be - Remastered']),\n",
+ " ('continental drift',\n",
+ " ['Continental Drift - Live / Remastered 2009',\n",
+ " 'Continental Drift - Remastered']),\n",
+ " ('sweet virginia',\n",
+ " ['Sweet Virginia - Live',\n",
+ " 'Sweet Virginia - Live',\n",
+ " 'Sweet Virginia - Live',\n",
+ " 'Sweet Virginia - Live / Remastered 2009']),\n",
+ " ('rock me baby',\n",
+ " ['Rock Me Baby - Live',\n",
+ " 'Rock Me, Baby - Live Licks Tour - 2009 Re-Mastered Digital Version']),\n",
+ " ('getting better',\n",
+ " ['Getting Better - Remastered',\n",
+ " 'Getting Better - Remix',\n",
+ " 'Getting Better - Take 1 / Instrumental And Speech At The End']),\n",
+ " ('penny lane',\n",
+ " ['Penny Lane - Take 6 / Instrumental',\n",
+ " 'Penny Lane - Stereo Mix 2017',\n",
+ " 'Penny Lane - Remastered 2015',\n",
+ " 'Penny Lane - Remastered 2009']),\n",
+ " ('shine a light',\n",
+ " ['Shine A Light - Live',\n",
+ " 'Shine A Light - Live',\n",
+ " 'Shine A Light - Live',\n",
+ " 'Shine A Light - Live',\n",
+ " 'Shine A Light - Live At The Beacon Theatre, New York / 2006',\n",
+ " 'Shine A Light - Live / Remastered 2009',\n",
+ " 'Shine a Light - Live']),\n",
+ " ('like a rolling stone',\n",
+ " ['Like A Rolling Stone - Live',\n",
+ " 'Like A Rolling Stone - Live',\n",
+ " 'Like A Rolling Stone - Live',\n",
+ " 'Like A Rolling Stone - Live',\n",
+ " 'Like a Rolling Stone - Live',\n",
+ " 'Like A Rolling Stone - Live / Remastered 2009']),\n",
+ " ('lucy in the sky with diamonds',\n",
+ " ['Lucy In The Sky With Diamonds - Remastered',\n",
+ " 'Lucy In The Sky With Diamonds - Remix',\n",
+ " 'Lucy In The Sky With Diamonds - Take 1']),\n",
+ " ('worried about you',\n",
+ " ['Worried About You - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 'Worried About You - Remastered']),\n",
+ " ('cant you hear me knocking',\n",
+ " [\"Can't You Hear Me Knocking - Live\",\n",
+ " \"Can't You Hear Me Knocking - Live Licks Tour - 2009 Re-Mastered Digital Version\"]),\n",
+ " ('live with me',\n",
+ " ['Live With Me - Live',\n",
+ " 'Live With Me - Live',\n",
+ " 'Live With Me - Live At The Beacon Theatre, New York / 2006']),\n",
+ " ('too rude', ['Too Rude', 'Too Rude - Remastered']),\n",
+ " ('i wanna be your man',\n",
+ " ['I Wanna Be Your Man - Saturday Club / 1964',\n",
+ " 'I Wanna Be Your Man - Remastered']),\n",
+ " ('key to the highway',\n",
+ " ['Key To The Highway - Piano Instrumental',\n",
+ " 'Key To The Highway - Piano Instrumental/Remastered 2009']),\n",
+ " ('down the road apiece',\n",
+ " ['Down The Road Apiece - Top Gear / 1965',\n",
+ " 'Down The Road Apiece - Live In Ireland / 1965']),\n",
+ " ('everybodys trying to be my baby',\n",
+ " ['Everybody’s Trying To Be My Baby - Live / Bonus Track',\n",
+ " \"Everybody's Trying To Be My Baby - Remastered\"]),\n",
+ " ('something', ['Something - Remastered 2015', 'Something - Remastered']),\n",
+ " ('all my loving',\n",
+ " ['All My Loving - Live / Remastered', 'All My Loving - Remastered'])]"
+ ]
+ },
+ "execution_count": 60,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ctitles = set([t['ctitle'] for t in tracks.find()])\n",
+ "\n",
+ "[(ct, [t['name'] for t in tracks.find({'ctitle': ct})]) \n",
+ " for ct in ctitles\n",
+ " if tracks.find({'ctitle': ct}).count() > 1\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('you cant always get what you want',\n",
+ " [('You Can’t Always Get What You Want - Live', 0.409),\n",
+ " (\"You Can't Always Get What You Want - Live / Remastered 2009\", 0.419)]),\n",
+ " ('fixing a hole',\n",
+ " [('Fixing A Hole - Remastered', 0.0783),\n",
+ " ('Fixing A Hole - Remix', 0.0678),\n",
+ " ('Fixing A Hole - Speech And Take 3', 0.0437)]),\n",
+ " ('harlem shuffle',\n",
+ " [('Harlem Shuffle', 0.224), ('Harlem Shuffle - Remastered', 0.319)]),\n",
+ " ('back to zero',\n",
+ " [('Back To Zero', 0.064), ('Back To Zero - Remastered', 0.0767)]),\n",
+ " ('lies', [('Lies - Remastered', 0.524), ('Lies - Remastered', 0.472)]),\n",
+ " ('get back',\n",
+ " [('Get Back - Remastered 2015', 0.0959), ('Get Back - Remastered', 0.61)]),\n",
+ " ('roll over beethoven',\n",
+ " [('Roll Over Beethoven - Saturday Club / 1963', 0.316),\n",
+ " ('Roll Over Beethoven - Live / Remastered', 0.634),\n",
+ " ('Roll Over Beethoven - Remastered', 0.0952)]),\n",
+ " ('dirty work', [('Dirty Work', 0.0878), ('Dirty Work - Remastered', 0.0808)]),\n",
+ " ('all you need is love',\n",
+ " [('All You Need Is Love - Remastered 2015', 0.263),\n",
+ " ('All You Need Is Love - Remastered', 0.286),\n",
+ " ('All You Need Is Love - Remastered 2009', 0.155)]),\n",
+ " ('slipping away',\n",
+ " [('Slipping Away - Live / Remastered 2009', 0.106),\n",
+ " ('Slipping Away - Remastered', 0.421)]),\n",
+ " ('come together',\n",
+ " [('Come Together - Remastered 2015', 0.1),\n",
+ " ('Come Together - Remastered', 0.0926)]),\n",
+ " ('cant buy me love',\n",
+ " [(\"Can't Buy Me Love - Remastered 2015\", 0.325),\n",
+ " (\"Can't Buy Me Love - Remastered\", 0.321)]),\n",
+ " ('sgt peppers lonely hearts club band reprise',\n",
+ " [(\"Sgt. Pepper's Lonely Hearts Club Band (Reprise) - Speech And Take 8\",\n",
+ " 0.148),\n",
+ " (\"Sgt. Pepper's Lonely Hearts Club Band (Reprise) - Remix\", 0.463)]),\n",
+ " ('the long and winding road',\n",
+ " [('The Long And Winding Road - Remastered 2015', 0.0718),\n",
+ " ('The Long And Winding Road - Remastered', 0.0559)]),\n",
+ " ('when im sixtyfour',\n",
+ " [(\"When I'm Sixty-Four - Take 2\", 0.0747),\n",
+ " (\"When I'm Sixty-Four - Remix\", 0.142)]),\n",
+ " ('some girls',\n",
+ " [('Some Girls - Remastered', 0.409), ('Some Girls - Remastered', 0.51)]),\n",
+ " ('shattered',\n",
+ " [('Shattered - Remastered', 0.124), ('Shattered - Remastered', 0.122)]),\n",
+ " ('the spider and the fly',\n",
+ " [('The Spider And The Fly - Yeah Yeah / 1965', 0.0691),\n",
+ " ('The Spider And The Fly - Live / Remastered 2009', 0.352)]),\n",
+ " ('being for the benefit of mr kite',\n",
+ " [('Being For The Benefit Of Mr. Kite! - Remastered', 0.0992),\n",
+ " ('Being For The Benefit Of Mr. Kite! - Remix', 0.105),\n",
+ " ('Being For The Benefit Of Mr. Kite! - Take 4', 0.432)]),\n",
+ " ('had it with you',\n",
+ " [('Had It With You', 0.0655), ('Had It With You - Remastered', 0.0744)]),\n",
+ " ('yellow submarine',\n",
+ " [('Yellow Submarine - Remastered 2015', 0.543),\n",
+ " ('Yellow Submarine - Remastered', 0.528),\n",
+ " ('Yellow Submarine - Remastered', 0.438)]),\n",
+ " ('beast of burden',\n",
+ " [('Beast Of Burden - Remastered', 0.0389),\n",
+ " ('Beast Of Burden - Remastered', 0.0382)]),\n",
+ " ('lovely rita',\n",
+ " [('Lovely Rita - Speech And Take 9', 0.384),\n",
+ " ('Lovely Rita - Remastered', 0.118),\n",
+ " ('Lovely Rita - Remix', 0.0946)]),\n",
+ " ('respectable',\n",
+ " [('Respectable - Remastered', 0.0677),\n",
+ " ('Respectable - Remastered', 0.0677)]),\n",
+ " ('tell me why',\n",
+ " [('Tell Me Why', 0.0512), ('Tell Me Why - Remastered', 0.307)]),\n",
+ " ('little by little',\n",
+ " [('Little By Little - The Joe Loss Pop Show / 1964', 0.531),\n",
+ " ('Little By Little', 0.212)]),\n",
+ " ('got my mojo workin',\n",
+ " [(\"Got My Mojo Workin' - Live\", 0.686),\n",
+ " (\"Got My Mojo Workin' - Live\", 0.659)]),\n",
+ " ('far away eyes',\n",
+ " [('Far Away Eyes - Remastered', 0.258),\n",
+ " ('Far Away Eyes - Remastered', 0.232)]),\n",
+ " ('one hit to the body',\n",
+ " [('One Hit (To The Body)', 0.62),\n",
+ " ('One Hit (To The Body) - Remastered', 0.688)]),\n",
+ " ('just my imagination running away with me',\n",
+ " [('Just My Imagination (Running Away With Me) - Remastered', 0.411),\n",
+ " ('Just My Imagination (Running Away With Me) - Remastered', 0.322)]),\n",
+ " ('i cant get no satisfaction',\n",
+ " [(\"(I Can't Get No) Satisfaction - Saturday Club / 1965\", 0.106),\n",
+ " (\"(I Can't Get No) Satisfaction - Live / Remastered 2009\", 0.511),\n",
+ " (\"(I Can't Get No) Satisfaction - Live\", 0.357)]),\n",
+ " ('sleep tonight',\n",
+ " [('Sleep Tonight', 0.273), ('Sleep Tonight - Remastered', 0.297)]),\n",
+ " ('love me do',\n",
+ " [('Love Me Do - Mono / Remastered', 0.154),\n",
+ " ('Love Me Do - Remastered 2009', 0.227)]),\n",
+ " ('miss you',\n",
+ " [('Miss You - Remastered', 0.364),\n",
+ " ('Miss You - Remastered', 0.236),\n",
+ " ('Miss You - Live', 0.646)]),\n",
+ " ('when the whip comes down',\n",
+ " [('When The Whip Comes Down - Remastered', 0.242),\n",
+ " ('When The Whip Comes Down - Remastered', 0.205)]),\n",
+ " ('eight days a week',\n",
+ " [('Eight Days A Week - Remastered 2015', 0.215),\n",
+ " ('Eight Days A Week - Remastered', 0.119)]),\n",
+ " ('shes leaving home',\n",
+ " [(\"She's Leaving Home - Remastered\", 0.106),\n",
+ " (\"She's Leaving Home - Remix\", 0.117),\n",
+ " (\"She's Leaving Home - Take 1 / Instrumental\", 0.125)]),\n",
+ " ('everybody needs somebody to love',\n",
+ " [('Everybody Needs Somebody To Love - Top Gear / 1965', 0.496),\n",
+ " ('Everybody Needs Somebody To Love - Live In Ireland / 1965', 0.296)]),\n",
+ " ('winning ugly',\n",
+ " [('Winning Ugly', 0.693), ('Winning Ugly - Remastered', 0.689)]),\n",
+ " ('yesterday',\n",
+ " [('Yesterday - Remastered 2015', 0.0968),\n",
+ " ('Yesterday - Remastered', 0.0886)]),\n",
+ " ('a hard days night',\n",
+ " [(\"A Hard Day's Night - Remastered 2015\", 0.0983),\n",
+ " (\"A Hard Day's Night - Remastered\", 0.0996)]),\n",
+ " ('within you without you',\n",
+ " [('Within You Without You - Take 1 / Indian Instruments', 0.134),\n",
+ " ('Within You Without You - Remastered', 0.486),\n",
+ " ('Within You Without You - Remix', 0.289)]),\n",
+ " ('all down the line',\n",
+ " [('All Down The Line - Live', 0.39),\n",
+ " ('All Down The Line - Live At The Beacon Theatre, New York / 2006',\n",
+ " 0.466)]),\n",
+ " ('good morning good morning',\n",
+ " [('Good Morning Good Morning - Take 8', 0.158),\n",
+ " ('Good Morning Good Morning - Remix', 0.5)]),\n",
+ " ('love in vain',\n",
+ " [('Love In Vain - Live', 0.62),\n",
+ " ('Love In Vain - Live / Remastered 2009', 0.158)]),\n",
+ " ('twist and shout',\n",
+ " [('Twist And Shout - Live / Remastered', 0.508),\n",
+ " ('Twist And Shout - Remastered 2009', 0.0414)]),\n",
+ " ('introduction',\n",
+ " [('Introduction - Live', 0.389), ('Introduction - Live', 0.45)]),\n",
+ " ('help',\n",
+ " [('Help! - Remastered 2015', 0.0776), ('Help! - Remastered', 0.0994)]),\n",
+ " ('ticket to ride',\n",
+ " [('Ticket To Ride - Live / Remastered', 0.366),\n",
+ " ('Ticket To Ride - Remastered 2015', 0.259),\n",
+ " ('Ticket To Ride - Remastered', 0.233)]),\n",
+ " ('im moving on',\n",
+ " [(\"I'm Moving On - The Joe Loss Pop Show / 1964\", 0.361),\n",
+ " (\"I'm Moving On - Live In Ireland / 1965\", 0.616)]),\n",
+ " ('dizzy miss lizzy',\n",
+ " [('Dizzy Miss Lizzy - Live / Remastered', 0.496),\n",
+ " ('Dizzy Miss Lizzy - Remastered', 0.0962)]),\n",
+ " ('with a little help from my friends',\n",
+ " [('With A Little Help From My Friends - Remastered', 0.389),\n",
+ " ('With A Little Help From My Friends - Remix', 0.22),\n",
+ " ('With A Little Help From My Friends - Take 1 / False Start And Take 2 / Instrumental',\n",
+ " 0.154)]),\n",
+ " ('i will', [('I Will - Remastered', 0.0822), ('I Will', 0.113)]),\n",
+ " ('strawberry fields forever',\n",
+ " [('Strawberry Fields Forever - Take 7', 0.111),\n",
+ " ('Strawberry Fields Forever - Take 26', 0.335),\n",
+ " ('Strawberry Fields Forever - Stereo Mix 2015', 0.0884),\n",
+ " ('Strawberry Fields Forever - Remastered 2009', 0.0713)]),\n",
+ " ('eleanor rigby',\n",
+ " [('Eleanor Rigby - Remastered 2015', 0.359),\n",
+ " ('Eleanor Rigby - Remastered', 0.305)]),\n",
+ " ('before they make me run',\n",
+ " [('Before They Make Me Run - Remastered', 0.0499),\n",
+ " ('Before They Make Me Run - Remastered', 0.0532)]),\n",
+ " ('hello goodbye',\n",
+ " [('Hello, Goodbye - Remastered 2015', 0.525),\n",
+ " ('Hello, Goodbye - Remastered 2009', 0.414)]),\n",
+ " ('hold back', [('Hold Back', 0.343), ('Hold Back - Remastered', 0.368)]),\n",
+ " ('let it be',\n",
+ " [('Let It Be - Remastered 2015', 0.112), ('Let It Be - Remastered', 0.111)]),\n",
+ " ('getting better',\n",
+ " [('Getting Better - Remastered', 0.0712),\n",
+ " ('Getting Better - Remix', 0.0953),\n",
+ " ('Getting Better - Take 1 / Instrumental And Speech At The End', 0.183)]),\n",
+ " ('penny lane',\n",
+ " [('Penny Lane - Take 6 / Instrumental', 0.118),\n",
+ " ('Penny Lane - Stereo Mix 2017', 0.113),\n",
+ " ('Penny Lane - Remastered 2015', 0.16),\n",
+ " ('Penny Lane - Remastered 2009', 0.136)]),\n",
+ " ('lucy in the sky with diamonds',\n",
+ " [('Lucy In The Sky With Diamonds - Remastered', 0.139),\n",
+ " ('Lucy In The Sky With Diamonds - Remix', 0.156),\n",
+ " ('Lucy In The Sky With Diamonds - Take 1', 0.106)]),\n",
+ " ('worried about you',\n",
+ " [('Worried About You - Live Licks Tour - 2009 Re-Mastered Digital Version',\n",
+ " 0.47),\n",
+ " ('Worried About You - Remastered', 0.0865)]),\n",
+ " ('too rude', [('Too Rude', 0.0245), ('Too Rude - Remastered', 0.0231)]),\n",
+ " ('i wanna be your man',\n",
+ " [('I Wanna Be Your Man - Saturday Club / 1964', 0.0925),\n",
+ " ('I Wanna Be Your Man - Remastered', 0.292)]),\n",
+ " ('key to the highway',\n",
+ " [('Key To The Highway - Piano Instrumental', 0.132),\n",
+ " ('Key To The Highway - Piano Instrumental/Remastered 2009', 0.138)]),\n",
+ " ('everybodys trying to be my baby',\n",
+ " [('Everybody’s Trying To Be My Baby - Live / Bonus Track', 0.448),\n",
+ " (\"Everybody's Trying To Be My Baby - Remastered\", 0.134)]),\n",
+ " ('something',\n",
+ " [('Something - Remastered 2015', 0.144), ('Something - Remastered', 0.138)])]"
+ ]
+ },
+ "execution_count": 61,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ctitles = set([t['ctitle'] for t in tracks.find()])\n",
+ "\n",
+ "[(ct, [(t['name'], t['liveness']) for t in tracks.find({'ctitle': ct, 'liveness': {'$lt': 0.7}})]) \n",
+ " for ct in ctitles\n",
+ " if tracks.find({'ctitle': ct, 'liveness': {'$lt': 0.7}}).count() > 1\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('sweet little sixteen',\n",
+ " 'Sweet Little Sixteen - Live',\n",
+ " 'Sweet Little Sixteen'),\n",
+ " ('sweet little sixteen',\n",
+ " 'Sweet Little Sixteen - Live',\n",
+ " 'Sweet Little Sixteen'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Saturday Club / 1963',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Saturday Club / 1963',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('memphis tennessee',\n",
+ " 'Memphis, Tennessee - Saturday Club / 1963',\n",
+ " 'Memphis, Tennessee'),\n",
+ " ('memphis tennessee',\n",
+ " 'Memphis, Tennessee - Saturday Club / 1963',\n",
+ " 'Memphis Tennessee'),\n",
+ " ('i wanna be your man',\n",
+ " 'I Wanna Be Your Man - Saturday Club / 1964',\n",
+ " 'I Wanna Be Your Man'),\n",
+ " ('i wanna be your man',\n",
+ " 'I Wanna Be Your Man - Saturday Club / 1964',\n",
+ " 'I Wanna Be Your Man'),\n",
+ " ('carol', 'Carol - Saturday Club / 1964', 'Carol'),\n",
+ " ('carol', 'Carol - Saturday Club / 1964', 'Carol'),\n",
+ " ('little by little',\n",
+ " 'Little By Little - The Joe Loss Pop Show / 1964',\n",
+ " 'Little by Little'),\n",
+ " ('little by little',\n",
+ " 'Little By Little - The Joe Loss Pop Show / 1964',\n",
+ " 'Little By Little'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live', 'Wild Horses'),\n",
+ " ('twist and shout', 'Twist And Shout - Live / Remastered', 'Twist and Shout'),\n",
+ " ('twist and shout',\n",
+ " 'Twist And Shout - Live / Remastered',\n",
+ " 'Twist and shout - reloved version'),\n",
+ " ('twist and shout',\n",
+ " 'Twist And Shout - Live / Remastered',\n",
+ " 'Twist And Shout - Remastered 2009'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Live / Remastered',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Live / Remastered',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('she loves you', 'She Loves You - Live / Remastered', 'She Loves You'),\n",
+ " ('she loves you',\n",
+ " 'She Loves You - Live / Remastered',\n",
+ " 'She loves you - reloved version'),\n",
+ " ('i want to hold your hand',\n",
+ " 'I Want To Hold Your Hand - Live / Bonus Track',\n",
+ " 'I Want to Hold Your Hand'),\n",
+ " ('i want to hold your hand',\n",
+ " 'I Want To Hold Your Hand - Live / Bonus Track',\n",
+ " 'I Want to Hold Your Hand'),\n",
+ " ('love me do', 'Love Me Do - Mono / Remastered', 'Love Me Do'),\n",
+ " ('love me do',\n",
+ " 'Love Me Do - Mono / Remastered',\n",
+ " 'Love Me Do - Spankox Liverpool Remix'),\n",
+ " ('she loves you', 'She Loves You - Mono / Remastered', 'She Loves You'),\n",
+ " ('she loves you',\n",
+ " 'She Loves You - Mono / Remastered',\n",
+ " 'She loves you - reloved version'),\n",
+ " ('i want to hold your hand',\n",
+ " 'I Want To Hold Your Hand - Remastered 2015',\n",
+ " 'I Want to Hold Your Hand'),\n",
+ " ('i want to hold your hand',\n",
+ " 'I Want To Hold Your Hand - Remastered 2015',\n",
+ " 'I Want to Hold Your Hand'),\n",
+ " ('yesterday', 'Yesterday - Remastered 2015', 'Yesterday'),\n",
+ " ('yesterday', 'Yesterday - Remastered 2015', 'Yesterday'),\n",
+ " ('i will', 'I Will - Remastered', 'I Will'),\n",
+ " ('i will', 'I Will - Remastered', 'I Will'),\n",
+ " ('youve got to hide your love away',\n",
+ " \"You've Got To Hide Your Love Away - Remastered\",\n",
+ " \"You've Got to Hide Your Love Away\"),\n",
+ " ('youve got to hide your love away',\n",
+ " \"You've Got To Hide Your Love Away - Remastered\",\n",
+ " \"You've Got To Hide Your Love Away - Take 5, Mono\"),\n",
+ " ('yesterday', 'Yesterday - Remastered', 'Yesterday'),\n",
+ " ('yesterday', 'Yesterday - Remastered', 'Yesterday'),\n",
+ " ('little by little', 'Little By Little', 'Little by Little'),\n",
+ " ('little by little', 'Little By Little', 'Little By Little'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Remastered',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('roll over beethoven',\n",
+ " 'Roll Over Beethoven - Remastered',\n",
+ " 'Roll Over Beethoven'),\n",
+ " ('i wanna be your man',\n",
+ " 'I Wanna Be Your Man - Remastered',\n",
+ " 'I Wanna Be Your Man'),\n",
+ " ('i wanna be your man',\n",
+ " 'I Wanna Be Your Man - Remastered',\n",
+ " 'I Wanna Be Your Man'),\n",
+ " ('money thats what i want',\n",
+ " \"Money (That's What I Want) - Remastered\",\n",
+ " \"Money (That's What I Want)\"),\n",
+ " ('money thats what i want',\n",
+ " \"Money (That's What I Want) - Remastered\",\n",
+ " \"Money (That's What I Want) - Remastered 2009\"),\n",
+ " ('please please me',\n",
+ " 'Please Please Me - Remastered 2009',\n",
+ " 'Please Please Me'),\n",
+ " ('please please me',\n",
+ " 'Please Please Me - Remastered 2009',\n",
+ " 'Please, Please Me'),\n",
+ " ('love me do', 'Love Me Do - Remastered 2009', 'Love Me Do'),\n",
+ " ('love me do',\n",
+ " 'Love Me Do - Remastered 2009',\n",
+ " 'Love Me Do - Spankox Liverpool Remix'),\n",
+ " ('ps i love you', 'P.S. I Love You - Remastered 2009', 'P.S. I Love You'),\n",
+ " ('ps i love you',\n",
+ " 'P.S. I Love You - Remastered 2009',\n",
+ " 'P.s. i love you - reloved version'),\n",
+ " ('twist and shout', 'Twist And Shout - Remastered 2009', 'Twist and Shout'),\n",
+ " ('twist and shout',\n",
+ " 'Twist And Shout - Remastered 2009',\n",
+ " 'Twist and shout - reloved version'),\n",
+ " ('twist and shout',\n",
+ " 'Twist And Shout - Remastered 2009',\n",
+ " 'Twist And Shout - Remastered 2009'),\n",
+ " ('i will', 'I Will', 'I Will'),\n",
+ " ('i will', 'I Will', 'I Will'),\n",
+ " ('paranoid android', 'Paranoid Android', 'Paranoid Android'),\n",
+ " ('paranoid android', 'Paranoid Android', 'Paranoid Android'),\n",
+ " ('high and dry', 'High And Dry', 'High and Dry'),\n",
+ " ('high and dry', 'High And Dry', 'High And Dry'),\n",
+ " ('wild horses', 'Wild Horses - Live / Remastered 2009', 'Wild Horses'),\n",
+ " ('wild horses', 'Wild Horses - Live / Remastered 2009', 'Wild Horses'),\n",
+ " ('pain in my heart',\n",
+ " 'Pain In My Heart - Live In Ireland / 1965',\n",
+ " 'Pain In My Heart'),\n",
+ " ('pain in my heart',\n",
+ " 'Pain In My Heart - Live In Ireland / 1965',\n",
+ " 'Pain In My Heart - Live In Ireland / 1965')]"
+ ]
+ },
+ "execution_count": 62,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[(t['ctitle'], t['name'], g['title']) \n",
+ " for t in tracks.find()\n",
+ " for g in genius_tracks.find({'ctitle': t['ctitle']})\n",
+ " if genius_tracks.find({'ctitle': t['ctitle']}).count() > 1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now to see what the differences are. Find the tracks that are in both collections, and tracks that are in only one."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(541, 521, 107)"
+ ]
+ },
+ "execution_count": 63,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "in_both = set((g['ctitle'], g['primary_artist']['name'])\n",
+ " for g in genius_tracks.find({}, ['ctitle', 'primary_artist.name']) \n",
+ " if tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "\n",
+ "genius_only = set((g['ctitle'], g['primary_artist']['name']) \n",
+ " for g in genius_tracks.find({}, ['ctitle', 'primary_artist.name']) \n",
+ " if not tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "\n",
+ "spotify_only = set((s['ctitle'], s['artist_name'])\n",
+ " for s in tracks.find({}, ['ctitle', 'artist_name']) \n",
+ " if not genius_tracks.find({'ctitle': s['ctitle']}).count())\n",
+ "\n",
+ "len(in_both), len(genius_only), len(spotify_only)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('if u cant dance', 'Spice Girls'),\n",
+ " ('champagne and reefer', 'The Rolling Stones'),\n",
+ " ('key to the highway', 'The Rolling Stones'),\n",
+ " ('stop', 'Spice Girls'),\n",
+ " ('right back at ya', 'Spice Girls'),\n",
+ " ('you dont have to go', 'Muddy Waters'),\n",
+ " ('let love lead the way', 'Spice Girls'),\n",
+ " ('county jail', 'Muddy Waters'),\n",
+ " ('trouble no more', 'Muddy Waters'),\n",
+ " ('time goes by', 'Spice Girls'),\n",
+ " ('little ta', 'The Rolling Stones'),\n",
+ " ('pepperland', 'George Martin'),\n",
+ " ('you got me rockin', 'The Rolling Stones'),\n",
+ " ('sea of holes', 'George Martin'),\n",
+ " ('next time you see me', 'The Rolling Stones'),\n",
+ " ('something kinda funny', 'Spice Girls'),\n",
+ " ('untitled', 'Radiohead'),\n",
+ " ('if you wanna have some fun', 'Spice Girls'),\n",
+ " ('wasting my time', 'Spice Girls'),\n",
+ " ('packt like sardines in a crushed tin box', 'Radiohead'),\n",
+ " ('do it', 'Spice Girls'),\n",
+ " ('march of the meanies', 'George Martin'),\n",
+ " ('codex illum sphere', 'Radiohead'),\n",
+ " ('spice up your life', 'Spice Girls'),\n",
+ " ('oxygen', 'Spice Girls'),\n",
+ " ('the lady is a vamp', 'Spice Girls'),\n",
+ " ('last time lover', 'Spice Girls'),\n",
+ " ('sweet little angel', 'Muddy Waters'),\n",
+ " ('instrumental 1', 'The Rolling Stones'),\n",
+ " ('long distance call', 'The Rolling Stones'),\n",
+ " ('who do you think you are', 'Spice Girls'),\n",
+ " ('wannabe', 'Spice Girls'),\n",
+ " ('one eyed woman', 'The Rolling Stones'),\n",
+ " ('love thing', 'Spice Girls'),\n",
+ " ('youre gonna miss me when im gone', 'Muddy Waters'),\n",
+ " ('pepperland laid waste', 'George Martin'),\n",
+ " ('outro', 'Jimi Hendrix'),\n",
+ " ('everybody needs somebody to love finale', 'The Rolling Stones'),\n",
+ " ('sea of monsters', 'George Martin'),\n",
+ " ('2 become 1', 'Spice Girls'),\n",
+ " ('just my imagination', 'The Rolling Stones'),\n",
+ " ('say youll be there', 'Spice Girls'),\n",
+ " ('viva forever', 'Spice Girls'),\n",
+ " ('bullet proof i wish i was', 'Radiohead'),\n",
+ " ('holler', 'Spice Girls'),\n",
+ " ('flip flop and fly', 'Muddy Waters'),\n",
+ " ('naked', 'Spice Girls'),\n",
+ " ('denying', 'Spice Girls'),\n",
+ " ('clouds in my heart', 'The Rolling Stones'),\n",
+ " ('when im sixty four', 'The Beatles'),\n",
+ " ('fannie mae', 'The Rolling Stones'),\n",
+ " ('i will los angeles version', 'Radiohead'),\n",
+ " ('little by little shed', 'Radiohead'),\n",
+ " ('hi heel sneakers', 'The Rolling Stones'),\n",
+ " ('i cant turn you loose', 'Bob Clearmountain'),\n",
+ " ('mama', 'Spice Girls'),\n",
+ " ('bloom jamie xx rework', 'Radiohead'),\n",
+ " ('faraway eyes', 'The Rolling Stones'),\n",
+ " ('saturday night divas', 'Spice Girls'),\n",
+ " ('jumping jack flash', 'The Rolling Stones'),\n",
+ " ('got my mojo workin', 'The Rolling Stones'),\n",
+ " ('never give up on the good times', 'Spice Girls'),\n",
+ " ('get down with me', 'Spice Girls'),\n",
+ " ('revolution 1', 'The Beatles'),\n",
+ " ('instrumental 2', 'The Rolling Stones'),\n",
+ " ('weekend love', 'Spice Girls'),\n",
+ " ('country boy', 'Muddy Waters'),\n",
+ " ('move over', 'Spice Girls'),\n",
+ " ('kansas city heyheyheyhey', 'The Beatles'),\n",
+ " ('dollars cents', 'Radiohead'),\n",
+ " ('a punch up at a wedding', 'Radiohead'),\n",
+ " ('too much', 'Spice Girls'),\n",
+ " ('honky tonk woman', 'The Rolling Stones'),\n",
+ " ('sea of time', 'George Martin')]"
+ ]
+ },
+ "execution_count": 64,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[s for s in spotify_only \n",
+ " if 'rmx' not in s[0]\n",
+ " if 'remix' not in s[0]\n",
+ " if 'live' not in s[0]\n",
+ " if 'intro' not in s[0]\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('sha la la la la', 'The Beatles'),\n",
+ " ('susie q', 'The Rolling Stones'),\n",
+ " ('nobodys child', 'The Beatles'),\n",
+ " ('prodigal son', 'The Rolling Stones'),\n",
+ " ('come and get it', 'The Beatles'),\n",
+ " ('surprise surprise', 'The Rolling Stones'),\n",
+ " ('i promise', 'Radiohead'),\n",
+ " ('keep your hands off my baby', 'The Beatles'),\n",
+ " ('four guys', 'James Richards'),\n",
+ " ('so divine aladdin story', 'The Rolling Stones'),\n",
+ " ('punchdrunk lovesick singalong', 'Radiohead'),\n",
+ " ('im talking about you', 'The Beatles'),\n",
+ " ('bebopalula', 'The Beatles'),\n",
+ " ('gangsters maul', 'The Rolling Stones'),\n",
+ " ('the daily mail', 'Radiohead'),\n",
+ " ('plundered my soul', 'The Rolling Stones'),\n",
+ " ('i need you baby mona', 'The Rolling Stones'),\n",
+ " ('clarabella', 'The Beatles'),\n",
+ " ('everyone needs someone to hate', 'On A Friday'),\n",
+ " ('what is that you say', 'Radiohead'),\n",
+ " ('i call your name', 'The Beatles'),\n",
+ " ('congratulations', 'The Rolling Stones'),\n",
+ " ('tell me', 'The Rolling Stones'),\n",
+ " ('gotta get away', 'The Rolling Stones'),\n",
+ " ('empty heart', 'The Rolling Stones'),\n",
+ " ('wake up in the morning', 'The Rolling Stones'),\n",
+ " ('crying waiting hoping', 'The Beatles'),\n",
+ " ('if you cant rock me', 'The Rolling Stones'),\n",
+ " ('money', 'The Rolling Stones'),\n",
+ " ('the harder they come', 'The Rolling Stones'),\n",
+ " ('sympathy for the devil fatboy slim remix', 'The Rolling Stones'),\n",
+ " ('i just dont understand', 'The Beatles'),\n",
+ " ('still a fool', 'The Rolling Stones'),\n",
+ " ('dandelion', 'The Rolling Stones'),\n",
+ " ('good times', 'The Rolling Stones'),\n",
+ " ('lull', 'Radiohead'),\n",
+ " ('searchin', 'The Beatles'),\n",
+ " ('down home girl', 'The Rolling Stones'),\n",
+ " ('lozenge of love', 'Radiohead'),\n",
+ " ('harlem shuffle ny mix', 'The Rolling Stones'),\n",
+ " ('stop breaking down', 'The Rolling Stones'),\n",
+ " ('i froze up', 'Radiohead'),\n",
+ " ('to know her is to love her', 'The Beatles'),\n",
+ " ('drift away', 'The Rolling Stones'),\n",
+ " ('somewhere', 'Ali brustofski'),\n",
+ " ('if i was a dancer dance part 2', 'The Rolling Stones'),\n",
+ " ('youve got a hold on me', 'The Beatles'),\n",
+ " ('the beatles seventh christmas record', 'The Beatles'),\n",
+ " ('how do you do it', 'The Beatles'),\n",
+ " ('mailman bring me no more blues', 'The Beatles'),\n",
+ " ('corinna', 'The Rolling Stones'),\n",
+ " ('the storm', 'The Rolling Stones'),\n",
+ " ('sweet black angel', 'The Rolling Stones'),\n",
+ " ('mothers little helper', 'The Rolling Stones'),\n",
+ " ('dont lie to me', 'The Rolling Stones'),\n",
+ " ('free as a bird', 'The Beatles'),\n",
+ " ('the lantern', 'The Rolling Stones'),\n",
+ " ('molasses', 'Radiohead'),\n",
+ " ('hello little girl', 'The Beatles'),\n",
+ " ('yove got to hide your love away', 'The Beatles'),\n",
+ " ('she said yeah', 'The Rolling Stones'),\n",
+ " ('the fool on the hill demo', 'The Beatles'),\n",
+ " ('million dollar question', 'Radiohead'),\n",
+ " ('19th nervous breakdown', 'The Rolling Stones'),\n",
+ " ('i forgot to remember to forget', 'The Beatles'),\n",
+ " ('stoned', 'The Rolling Stones'),\n",
+ " ('have you seen your mother baby standing in the shadow',\n",
+ " 'The Rolling Stones'),\n",
+ " ('staircase', 'Radiohead'),\n",
+ " ('cant get next to you', 'The Rolling Stones'),\n",
+ " ('a picture of you', 'The Beatles'),\n",
+ " ('let it loose', 'The Rolling Stones'),\n",
+ " ('memphis', 'The Beatles'),\n",
+ " ('rain fall down william remix', 'The Rolling Stones'),\n",
+ " ('riding on a bus', 'The Beatles'),\n",
+ " ('in spite of all the danger', 'The Beatles'),\n",
+ " ('bad to me', 'The Beatles'),\n",
+ " ('eleanor rigbyjulia transition', 'The Beatles'),\n",
+ " ('goin home', 'The Rolling Stones'),\n",
+ " ('anyway you look at it', 'The Rolling Stones'),\n",
+ " ('try a little harder', 'The Rolling Stones'),\n",
+ " ('suzy parker', 'The Beatles'),\n",
+ " ('we want the stones', 'The Rolling Stones'),\n",
+ " ('cry for a shadow', 'The Beatles'),\n",
+ " ('untogether', 'Radiohead'),\n",
+ " ('sweet georgia brown', 'The Beatles'),\n",
+ " ('cocksucker blues', 'The Rolling Stones'),\n",
+ " ('no expectations', 'The Rolling Stones'),\n",
+ " ('give peace a chance', 'The Beatles'),\n",
+ " ('tell me why ep', 'The Beatles'),\n",
+ " ('hand of fate', 'The Rolling Stones'),\n",
+ " ('swanee river', 'The Beatles'),\n",
+ " ('cuttooth', 'Radiohead'),\n",
+ " ('jazz piano song', 'The Beatles'),\n",
+ " ('wonderwall', 'Radiohead'),\n",
+ " ('that girl belongs to yesterday', 'The Rolling Stones'),\n",
+ " ('this boy', 'The Beatles'),\n",
+ " ('country honk', 'The Rolling Stones'),\n",
+ " ('within you without youtomorrow never knows', 'The Beatles'),\n",
+ " ('we love you', 'The Rolling Stones'),\n",
+ " ('diddley daddy', 'The Rolling Stones'),\n",
+ " ('get off of my cloud', 'The Rolling Stones'),\n",
+ " ('sing this all together', 'The Rolling Stones'),\n",
+ " ('stupid car', 'Radiohead'),\n",
+ " ('sure to fall', 'The Beatles'),\n",
+ " ('wish you were here', 'Radiohead'),\n",
+ " ('meet me in the bottom', 'The Rolling Stones'),\n",
+ " ('harry patch in memory of', 'Radiohead'),\n",
+ " ('lets dance', 'The Beatles'),\n",
+ " ('what is it that you say', 'On A Friday'),\n",
+ " ('set fire to that lot', 'The Beatles'),\n",
+ " ('step inside love', 'The Beatles'),\n",
+ " ('what goes on girl', 'The Beatles'),\n",
+ " ('too much monkey business', 'The Beatles'),\n",
+ " ('john lennon vs bill oreilly', 'Nice Peter'),\n",
+ " ('sing this all together see what happens', 'The Rolling Stones'),\n",
+ " ('somebody else', 'Radiohead'),\n",
+ " ('it should be you', 'The Rolling Stones'),\n",
+ " ('downtown suzie', 'The Rolling Stones'),\n",
+ " ('i want none of this', 'Radiohead'),\n",
+ " ('revolution i', 'The Beatles'),\n",
+ " ('100 years ago', 'The Rolling Stones'),\n",
+ " ('bishops robes', 'Radiohead'),\n",
+ " ('whatd i say', 'The Beatles'),\n",
+ " ('on with the show', 'The Rolling Stones'),\n",
+ " ('talkin about you', 'The Rolling Stones'),\n",
+ " ('nothin shakin', 'The Beatles'),\n",
+ " ('road runner', 'The Rolling Stones'),\n",
+ " ('crinsk dee night', 'The Beatles'),\n",
+ " ('dear doctor', 'The Rolling Stones'),\n",
+ " ('ventilator blues', 'The Rolling Stones'),\n",
+ " ('sure to fall in love with you', 'The Beatles'),\n",
+ " ('short and curlies', 'The Rolling Stones'),\n",
+ " ('tell me baby how many times', 'The Rolling Stones'),\n",
+ " ('james bond theme', 'The Beatles'),\n",
+ " ('someone else', 'On A Friday'),\n",
+ " ('spectre', 'Radiohead'),\n",
+ " ('doncha bother me', 'The Rolling Stones'),\n",
+ " ('three cool cats', 'The Beatles'),\n",
+ " ('bright lights big city', 'The Rolling Stones'),\n",
+ " ('blood red wine', 'The Rolling Stones'),\n",
+ " ('if youve got trouble', 'The Beatles'),\n",
+ " ('how can you be sure', 'Radiohead'),\n",
+ " ('little t a', 'The Rolling Stones'),\n",
+ " ('matchbox', 'The Beatles'),\n",
+ " ('ill wind', 'Radiohead'),\n",
+ " ('what to do', 'The Rolling Stones'),\n",
+ " ('kansas city', 'The Beatles'),\n",
+ " ('dance little sister', 'The Rolling Stones'),\n",
+ " ('being for the benefit of mr kitei want you shes so heavyhelter skelter',\n",
+ " 'The Beatles'),\n",
+ " ('da doo ron ron', 'The Rolling Stones'),\n",
+ " ('lewis mistreated', 'Radiohead'),\n",
+ " ('besame mucho', 'The Beatles'),\n",
+ " ('from fluff to you', 'The Beatles'),\n",
+ " ('big ideas', 'Radiohead'),\n",
+ " ('worrywort', 'Radiohead'),\n",
+ " ('criss cross man', 'The Rolling Stones'),\n",
+ " ('heart of stone', 'The Rolling Stones'),\n",
+ " ('who am i', 'The Rolling Stones'),\n",
+ " ('ruby baby', 'The Beatles'),\n",
+ " ('dream baby', 'The Beatles'),\n",
+ " ('little queenie', 'The Rolling Stones'),\n",
+ " ('why', 'The Beatles'),\n",
+ " ('winter', 'The Rolling Stones'),\n",
+ " ('im coming up', 'On A Friday'),\n",
+ " ('i just want to see his face', 'The Rolling Stones'),\n",
+ " ('linda lu', 'The Rolling Stones'),\n",
+ " ('killer cars', 'Radiohead'),\n",
+ " ('ceremony', 'Radiohead'),\n",
+ " ('the beatles third christmas record', 'The Beatles'),\n",
+ " ('all sold out', 'The Rolling Stones'),\n",
+ " ('a moon shaped pool tracklist album cover', 'Radiohead'),\n",
+ " ('casino boogie', 'The Rolling Stones'),\n",
+ " ('yesterdays papers', 'The Rolling Stones'),\n",
+ " ('im gonna sit right down and cry over you', 'The Beatles'),\n",
+ " ('ill get you', 'The Beatles'),\n",
+ " ('ill wear it proudly', 'Radiohead'),\n",
+ " ('im not signifying', 'The Rolling Stones'),\n",
+ " ('flight 505', 'The Rolling Stones'),\n",
+ " ('one more try', 'The Rolling Stones'),\n",
+ " ('shake your hips', 'The Rolling Stones'),\n",
+ " ('turd on the run', 'The Rolling Stones'),\n",
+ " ('luxury', 'The Rolling Stones'),\n",
+ " ('pay your dues', 'The Rolling Stones'),\n",
+ " ('ya ya', 'The Beatles'),\n",
+ " ('banana co', 'Radiohead'),\n",
+ " ('lucille', 'The Beatles'),\n",
+ " ('the sheik of araby', 'The Beatles'),\n",
+ " ('dear wack', 'The Beatles'),\n",
+ " ('andrews blues', 'The Rolling Stones'),\n",
+ " ('gnik nus', 'The Beatles'),\n",
+ " ('beautiful dreamer', 'The Beatles'),\n",
+ " ('ooh my arms speech', 'The Beatles'),\n",
+ " ('these are my twisted words', 'Radiohead'),\n",
+ " ('nothing touches me', 'Radiohead'),\n",
+ " ('sleepy city', 'The Rolling Stones'),\n",
+ " ('ive been loving you too long', 'The Rolling Stones'),\n",
+ " ('good times bad times', 'The Rolling Stones'),\n",
+ " ('john wesley harding', 'The Rolling Stones'),\n",
+ " ('miss you dr dre remix 2002', 'The Rolling Stones'),\n",
+ " ('everything is turning to gold', 'The Rolling Stones'),\n",
+ " ('pass the wine sophia loren', 'The Rolling Stones'),\n",
+ " ('reelin and rockin', 'The Rolling Stones'),\n",
+ " ('just a rumour', 'The Beatles'),\n",
+ " ('highway child', 'The Rolling Stones'),\n",
+ " ('long long while', 'The Rolling Stones'),\n",
+ " ('miss amanda jones', 'The Rolling Stones'),\n",
+ " ('everybody lies through their teeth', 'On A Friday'),\n",
+ " ('burning bush', 'Radiohead'),\n",
+ " ('im down', 'The Beatles'),\n",
+ " ('teddy boy', 'The Beatles'),\n",
+ " ('i aint superstitious', 'The Rolling Stones'),\n",
+ " ('step inside love los paranoias', 'The Beatles'),\n",
+ " ('fog', 'Radiohead'),\n",
+ " ('the singer not the song', 'The Rolling Stones'),\n",
+ " ('soldier of love', 'The Beatles'),\n",
+ " ('backstreet girl', 'The Rolling Stones'),\n",
+ " ('nothing from nothing', 'The Rolling Stones'),\n",
+ " ('shout', 'The Beatles'),\n",
+ " ('melody', 'The Rolling Stones'),\n",
+ " ('just a rumour speech', 'The Beatles'),\n",
+ " ('under the board walk', 'The Rolling Stones'),\n",
+ " ('doom and gloom', 'The Rolling Stones'),\n",
+ " ('whos been sleeping here', 'The Rolling Stones'),\n",
+ " ('cherry oh baby', 'The Rolling Stones'),\n",
+ " ('some other guy', 'The Beatles'),\n",
+ " ('ride on baby', 'The Rolling Stones'),\n",
+ " ('crazy mama', 'The Rolling Stones'),\n",
+ " ('my bonnie', 'Tony Sheridan'),\n",
+ " ('polyethylene parts 1 2', 'Radiohead'),\n",
+ " ('please go home', 'The Rolling Stones'),\n",
+ " ('coke babies', 'Radiohead'),\n",
+ " ('hey negrita', 'The Rolling Stones'),\n",
+ " ('2000 man', 'The Rolling Stones'),\n",
+ " ('shes a rainbow', 'The Rolling Stones'),\n",
+ " ('sittin on a fence', 'The Rolling Stones'),\n",
+ " ('i am waiting', 'The Rolling Stones'),\n",
+ " ('memo from turner', 'The Rolling Stones'),\n",
+ " ('drive my carthe wordwhat youre doing', 'The Beatles'),\n",
+ " ('the under assistant west coast promotion man', 'The Rolling Stones'),\n",
+ " ('ill be on my way', 'The Beatles'),\n",
+ " ('fingerprint file', 'The Rolling Stones'),\n",
+ " ('happy song', 'On A Friday'),\n",
+ " ('dancing with mr d', 'The Rolling Stones'),\n",
+ " ('union city blue', 'Radiohead'),\n",
+ " ('i want to be loved', 'The Rolling Stones'),\n",
+ " ('how i made my millions', 'Radiohead'),\n",
+ " ('words of love ep', 'The Beatles'),\n",
+ " ('pearly', 'Radiohead'),\n",
+ " ('jump on top of me', 'The Rolling Stones'),\n",
+ " ('2000 light years from home', 'The Rolling Stones'),\n",
+ " ('the rocky road to dublin', 'The Chieftains'),\n",
+ " ('kid a tracklist album cover', 'Radiohead'),\n",
+ " ('if you really want to be my friend', 'The Rolling Stones'),\n",
+ " ('climbing up a bloody great hill', 'Radiohead'),\n",
+ " ('glass onion love remix', 'The Beatles'),\n",
+ " ('open pick', 'Radiohead'),\n",
+ " ('it hurts me too', 'The Rolling Stones'),\n",
+ " ('dancing in the light', 'The Rolling Stones'),\n",
+ " ('from us to you', 'The Beatles'),\n",
+ " ('some things just stick in your mind', 'The Rolling Stones'),\n",
+ " ('i dont know why', 'The Rolling Stones'),\n",
+ " ('real love', 'The Beatles'),\n",
+ " ('my girl', 'The Rolling Stones'),\n",
+ " ('packt like sardines in a crushd tin box', 'Radiohead'),\n",
+ " ('stranger in my arms', 'The Beatles'),\n",
+ " ('the hippy hippy shake', 'The Beatles'),\n",
+ " ('september in the rain', 'The Beatles'),\n",
+ " ('look what youve done', 'The Rolling Stones'),\n",
+ " ('sing a song for you', 'Radiohead'),\n",
+ " ('melatonin', 'Radiohead'),\n",
+ " ('not guilty', 'The Beatles'),\n",
+ " ('fanny mae', 'The Rolling Stones'),\n",
+ " ('its not easy', 'The Rolling Stones'),\n",
+ " ('im gonna drive', 'The Rolling Stones'),\n",
+ " ('inside my head', 'Radiohead'),\n",
+ " ('supercollider', 'Radiohead'),\n",
+ " ('hallelujah i love her so', 'The Beatles'),\n",
+ " ('following the river', 'The Rolling Stones'),\n",
+ " ('out of time', 'The Rolling Stones'),\n",
+ " ('bad boy', 'The Beatles'),\n",
+ " ('saints when the saints go marching in', 'The Beatles'),\n",
+ " ('blue suede shoes', 'The Beatles'),\n",
+ " ('come togetherdear prudence', 'The Beatles'),\n",
+ " ('permanent daylight', 'Radiohead'),\n",
+ " ('one and one is two', 'The Beatles'),\n",
+ " ('love', 'The Beatles'),\n",
+ " ('you know my name look up the number', 'The Beatles'),\n",
+ " ('youll be mine', 'The Beatles'),\n",
+ " ('lonesome tears in my eyes', 'The Beatles'),\n",
+ " ('moonlight bay', 'The Beatles'),\n",
+ " ('its for you', 'The Beatles'),\n",
+ " ('parachute woman', 'The Rolling Stones'),\n",
+ " ('wish i never met you', 'The Rolling Stones'),\n",
+ " ('title 5', 'The Rolling Stones'),\n",
+ " ('paint it blacker', 'Plan B'),\n",
+ " ('aint too proud to beg', 'The Rolling Stones'),\n",
+ " ('india rubber', 'Radiohead'),\n",
+ " ('she smiled sweetly', 'The Rolling Stones'),\n",
+ " ('rain', 'The Beatles'),\n",
+ " ('faithless the wonderboy', 'Radiohead'),\n",
+ " ('love these goon shows', 'The Beatles'),\n",
+ " ('dollars and cents', 'Radiohead'),\n",
+ " ('so how come no one loves me', 'The Beatles'),\n",
+ " ('hide your love', 'The Rolling Stones'),\n",
+ " ('talk show host', 'Radiohead'),\n",
+ " ('a little rhyme', 'The Beatles'),\n",
+ " ('rhinestone cowboy', 'Radiohead'),\n",
+ " ('like dreamers do', 'The Beatles'),\n",
+ " ('i dont know why aka dont know why i love you', 'The Rolling Stones'),\n",
+ " ('the honeymoon song', 'The Beatles'),\n",
+ " ('upside down', 'Radiohead'),\n",
+ " ('summertime blues', 'The Rolling Stones'),\n",
+ " ('lift', 'Radiohead'),\n",
+ " ('jiving sister fanny', 'The Rolling Stones'),\n",
+ " ('the amazing sounds of orgy', 'Radiohead'),\n",
+ " ('moonlight', 'The Beatles'),\n",
+ " ('i get a kick out of you', 'The Rolling Stones'),\n",
+ " ('stray cat blues', 'The Rolling Stones'),\n",
+ " ('sinking ship', 'On A Friday'),\n",
+ " ('give it up', 'On A Friday'),\n",
+ " ('my bonnie', 'The Beatles'),\n",
+ " ('con le mie lacrime', 'The Rolling Stones'),\n",
+ " ('slow down', 'The Beatles'),\n",
+ " ('baby whats wrong', 'The Rolling Stones'),\n",
+ " ('dont ever change', 'The Beatles'),\n",
+ " ('cinnamon girl', 'Radiohead'),\n",
+ " ('can you hear the music', 'The Rolling Stones'),\n",
+ " ('were wastin time', 'The Rolling Stones'),\n",
+ " ('if you let me', 'The Rolling Stones'),\n",
+ " ('play with fire', 'The Rolling Stones'),\n",
+ " ('something happened to me yesterday', 'The Rolling Stones'),\n",
+ " ('goodbye girl', 'The Rolling Stones'),\n",
+ " ('memory motel', 'The Rolling Stones'),\n",
+ " ('thats alright mama', 'The Beatles'),\n",
+ " ('palo alto', 'Radiohead'),\n",
+ " ('grown up wrong', 'The Rolling Stones'),\n",
+ " ('hiheel sneakers', 'The Rolling Stones'),\n",
+ " ('ladies and gentlemen the rolling stones', 'The Rolling Stones'),\n",
+ " ('manowar', 'Radiohead'),\n",
+ " ('fortune teller', 'The Rolling Stones'),\n",
+ " ('nobody does it better', 'Radiohead'),\n",
+ " ('bullet proofi wish i was', 'Radiohead'),\n",
+ " ('you know my name', 'The Beatles'),\n",
+ " ('blackbirdyesterday', 'The Beatles'),\n",
+ " ('junk', 'The Beatles'),\n",
+ " ('my obsession', 'The Rolling Stones'),\n",
+ " ('yes i am', 'Radiohead'),\n",
+ " ('because i know you love me so', 'The Beatles'),\n",
+ " ('another beatles christmas record', 'The Beatles'),\n",
+ " ('through the lonely nights', 'The Rolling Stones'),\n",
+ " ('i cant help it', 'The Rolling Stones'),\n",
+ " ('pop is dead', 'Radiohead'),\n",
+ " ('losing my touch', 'The Rolling Stones'),\n",
+ " ('saints', 'The Beatles'),\n",
+ " ('hitch hike', 'The Rolling Stones'),\n",
+ " ('the happy rishikesh song', 'The Beatles'),\n",
+ " ('all together on the wireless machine', 'The Beatles'),\n",
+ " ('dont look back', 'The Rolling Stones'),\n",
+ " ('fancyman blues', 'The Rolling Stones'),\n",
+ " ('cool calm and collected', 'The Rolling Stones'),\n",
+ " ('i think im going mad', 'The Rolling Stones'),\n",
+ " ('have a banana speech', 'The Beatles'),\n",
+ " ('fasttrack', 'Radiohead'),\n",
+ " ('till the next goodbye', 'The Rolling Stones'),\n",
+ " ('the beatles 1968 christmas record', 'The Beatles'),\n",
+ " ('get back aka no pakistanis', 'The Beatles'),\n",
+ " ('ladytron', 'Radiohead'),\n",
+ " ('jingle bells', 'The Beatles'),\n",
+ " ('hey crawdaddy', 'The Rolling Stones'),\n",
+ " ('complicated', 'The Rolling Stones'),\n",
+ " ('wicked child', 'Radiohead'),\n",
+ " ('in another land', 'The Rolling Stones'),\n",
+ " ('coming down again', 'The Rolling Stones'),\n",
+ " ('on the beach', 'Radiohead'),\n",
+ " ('travellin man', 'The Rolling Stones'),\n",
+ " ('reminiscing', 'The Beatles'),\n",
+ " ('id much rather be with the boys', 'The Rolling Stones'),\n",
+ " ('citadel', 'The Rolling Stones'),\n",
+ " ('hound dog', 'The Rolling Stones'),\n",
+ " ('a reminder', 'Radiohead'),\n",
+ " ('the butcher', 'Radiohead'),\n",
+ " ('you can make it if you try', 'The Rolling Stones'),\n",
+ " ('watching rainbows', 'The Beatles'),\n",
+ " ('child of the moon', 'The Rolling Stones'),\n",
+ " ('think', 'The Rolling Stones'),\n",
+ " ('thank you girl', 'The Beatles'),\n",
+ " ('follow me around', 'Radiohead'),\n",
+ " ('sympathy for the devil the neptunes remix', 'The Rolling Stones'),\n",
+ " ('sad day', 'The Rolling Stones'),\n",
+ " ('the trickster', 'Radiohead'),\n",
+ " ('mr b', 'Radiohead'),\n",
+ " ('johnny b goode', 'The Beatles'),\n",
+ " ('you know what to do', 'The Beatles'),\n",
+ " ('honest i do', 'The Rolling Stones'),\n",
+ " ('the thief', 'Radiohead'),\n",
+ " ('blue turns to grey', 'The Rolling Stones'),\n",
+ " ('love of the loved', 'The Beatles'),\n",
+ " ('revolution', 'The Beatles'),\n",
+ " ('shake rattle and roll', 'The Beatles'),\n",
+ " ('ooh my soul', 'The Beatles'),\n",
+ " ('glad all over', 'The Beatles'),\n",
+ " ('what a shame', 'The Rolling Stones'),\n",
+ " ('salt of the earth', 'The Rolling Stones'),\n",
+ " ('keep strong', 'On A Friday'),\n",
+ " ('sour milk sea', 'The Beatles'),\n",
+ " ('doo doo doo doo doo heartbreaker', 'The Rolling Stones'),\n",
+ " ('cut a hole', 'Radiohead'),\n",
+ " ('stupid girl', 'The Rolling Stones'),\n",
+ " ('hot stuff', 'The Rolling Stones'),\n",
+ " ('i got to find my baby', 'The Beatles'),\n",
+ " ('when the saints go marchin in', 'The Beatles'),\n",
+ " ('poison ivy', 'The Rolling Stones'),\n",
+ " ('soul survivor', 'The Rolling Stones'),\n",
+ " ('each and every day of the year', 'The Rolling Stones'),\n",
+ " ('torn and frayed', 'The Rolling Stones'),\n",
+ " ('i got a woman', 'The Beatles'),\n",
+ " ('pantomime everywhere its christmas', 'The Beatles'),\n",
+ " ('if you love me baby', 'The Beatles'),\n",
+ " ('falling in love again', 'The Beatles'),\n",
+ " ('blue moon of kentucky', 'The Beatles'),\n",
+ " ('cook cook blues', 'The Rolling Stones'),\n",
+ " ('big boots', 'Radiohead'),\n",
+ " ('missing links bootleg', 'Plan B'),\n",
+ " ('ooh my arms', 'The Beatles'),\n",
+ " ('eds scary song', 'Radiohead'),\n",
+ " ('crushed pearl', 'The Rolling Stones'),\n",
+ " ('you never wash up after yourself', 'Radiohead'),\n",
+ " ('transatlantic drawl', 'Radiohead'),\n",
+ " ('thatll be the day', 'The Beatles'),\n",
+ " ('fool to cry', 'The Rolling Stones'),\n",
+ " ('stand by me', 'The Beatles'),\n",
+ " ('family', 'The Rolling Stones'),\n",
+ " ('lady jane', 'The Rolling Stones'),\n",
+ " ('commonwealth', 'The Beatles'),\n",
+ " ('dont stop', 'The Rolling Stones'),\n",
+ " ('hear me lord harrison', 'The Beatles'),\n",
+ " ('im going down', 'The Rolling Stones'),\n",
+ " ('walking through the sleepy city', 'The Rolling Stones'),\n",
+ " ('set fire to that lot speech', 'The Beatles'),\n",
+ " ('sgt peppers lonely hearts club band band documentary multimedia',\n",
+ " 'The Beatles'),\n",
+ " ('looking tired', 'The Rolling Stones'),\n",
+ " ('nothin shakin but the leaves on the trees', 'The Beatles'),\n",
+ " ('dont let me down', 'The Beatles'),\n",
+ " ('that means a lot', 'The Beatles'),\n",
+ " ('beatle greetings', 'The Beatles'),\n",
+ " ('time waits for no one', 'The Rolling Stones'),\n",
+ " ('bitches talkin', 'Frank Ocean'),\n",
+ " ('a shot of rhythm and blues', 'The Beatles'),\n",
+ " ('komm gib mir deine hand', 'The Beatles'),\n",
+ " ('here comes the sunthe inner light transition', 'The Beatles'),\n",
+ " ('across the universe wildlife version', 'The Beatles'),\n",
+ " ('one more shot', 'The Rolling Stones'),\n",
+ " ('final show', 'Beatles Candlestick Park Setlist'),\n",
+ " ('mantua', 'Radiohead'),\n",
+ " ('something with blue jay way transition', 'The Beatles'),\n",
+ " ('petrol gang', 'The Rolling Stones'),\n",
+ " ('dance', 'The Rolling Stones'),\n",
+ " ('keys to your love', 'The Rolling Stones'),\n",
+ " ('india', 'The Beatles'),\n",
+ " ('have a banana', 'The Beatles'),\n",
+ " ('we are wasting time', 'The Rolling Stones'),\n",
+ " ('3', 'The Rolling Stones'),\n",
+ " ('down in eastern australia', 'The Beatles'),\n",
+ " ('yes it is', 'The Beatles'),\n",
+ " ('tell me youre coming back', 'The Rolling Stones'),\n",
+ " ('the inner light', 'The Beatles'),\n",
+ " ('whats the new mary jane', 'The Beatles'),\n",
+ " ('can i get a witness', 'The Rolling Stones'),\n",
+ " ('no reply demo', 'The Beatles'),\n",
+ " ('gomper', 'The Rolling Stones'),\n",
+ " ('pedro the fisherman', 'The Beatles'),\n",
+ " ('lend me your comb', 'The Beatles'),\n",
+ " ('old brown shoe', 'The Beatles'),\n",
+ " ('stealing my heart', 'The Rolling Stones'),\n",
+ " ('young blood', 'The Beatles'),\n",
+ " ('all things must pass', 'The Beatles'),\n",
+ " ('you cant catch me', 'The Rolling Stones'),\n",
+ " ('1822', 'The Beatles'),\n",
+ " ('child of nature', 'The Beatles'),\n",
+ " ('egyptian song', 'Radiohead'),\n",
+ " ('aint she sweet', 'The Beatles'),\n",
+ " ('ready teddy', 'The Beatles'),\n",
+ " ('the beatles christmas record', 'The Beatles'),\n",
+ " ('to be a brilliant light', 'On A Friday'),\n",
+ " ('good time women', 'The Rolling Stones'),\n",
+ " ('jigsaw puzzle', 'The Rolling Stones'),\n",
+ " ('a punchup at a wedding', 'Radiohead'),\n",
+ " ('the new generation', 'Radiohead'),\n",
+ " ('i want to know', 'On A Friday'),\n",
+ " ('meeting in the aisle', 'Radiohead'),\n",
+ " ('jerusalem', 'On A Friday'),\n",
+ " ('phillipa chicken', 'Radiohead'),\n",
+ " ('maquiladora', 'Radiohead'),\n",
+ " ('silver train', 'The Rolling Stones'),\n",
+ " ('christmas time is here again', 'The Beatles'),\n",
+ " ('stuck out all alone', 'The Rolling Stones'),\n",
+ " ('sie liebt dich', 'The Beatles'),\n",
+ " ('leave my kitten alone', 'The Beatles'),\n",
+ " ('heavys pizza', 'Dallas Smart'),\n",
+ " ('whos driving your plane', 'The Rolling Stones')]"
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[g for g in genius_only\n",
+ " if 'take' not in g[0]\n",
+ " if 'medley' not in g[0]\n",
+ " if 'intro' not in g[0]\n",
+ " if 'live' not in g[0]\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('revolution i', 'The Beatles'), ('revolution', 'The Beatles')]"
+ ]
+ },
+ "execution_count": 66,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[t for t in genius_only if 'revolution' in t[0]]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('revolution 1', 'The Beatles')]"
+ ]
+ },
+ "execution_count": 67,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[t for t in spotify_only if 'revolution' in t[0]]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "([], [('jumping jack flash', 'The Rolling Stones')])"
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "([t for t in in_both if 'jack flash' in t], [t for t in spotify_only if 'jack flash' in t[0]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "you cant always get what you want [('you cant always get what you want', 'The Rolling Stones'), ('you cant always get what you want', 'The Rolling Stones'), ('you cant always get what you want', 'The Rolling Stones'), ('you cant always get what you want', 'The Rolling Stones')] [('you cant always get what you want', 'The Rolling Stones')]\n",
+ "next time you see me [('next time you see me', 'The Rolling Stones'), ('next time you see me', 'The Rolling Stones')] []\n",
+ "fixing a hole [('fixing a hole', 'The Beatles'), ('fixing a hole', 'The Beatles'), ('fixing a hole', 'The Beatles')] [('fixing a hole', 'The Beatles')]\n",
+ "who do you think you are [('who do you think you are', 'Spice Girls')] []\n",
+ "harlem shuffle [('harlem shuffle', 'The Rolling Stones'), ('harlem shuffle', 'The Rolling Stones')] [('harlem shuffle', 'The Rolling Stones')]\n",
+ "back to zero [('back to zero', 'The Rolling Stones'), ('back to zero', 'The Rolling Stones')] [('back to zero', 'The Rolling Stones')]\n",
+ "sgt peppers lonely hearts club band [('sgt peppers lonely hearts club band', 'The Beatles'), ('sgt peppers lonely hearts club band', 'The Beatles'), ('sgt peppers lonely hearts club band', 'The Beatles'), ('sgt peppers lonely hearts club band', 'The Beatles')] [('sgt peppers lonely hearts club band', 'The Beatles')]\n",
+ "im free [('im free', 'The Rolling Stones'), ('im free', 'The Rolling Stones')] [('im free', 'The Rolling Stones')]\n",
+ "i will los angeles version [('i will los angeles version', 'Radiohead')] []\n",
+ "oxygen [('oxygen', 'Spice Girls')] []\n",
+ "lies [('lies', 'The Rolling Stones'), ('lies', 'The Rolling Stones')] [('lies', 'The Rolling Stones')]\n",
+ "happy [('happy', 'The Rolling Stones'), ('happy', 'The Rolling Stones'), ('happy', 'The Rolling Stones')] [('happy', 'The Rolling Stones')]\n",
+ "memphis tennessee [('memphis tennessee', 'The Rolling Stones')] [('memphis tennessee', 'The Beatles'), ('memphis tennessee', 'The Rolling Stones')]\n",
+ "get back [('get back', 'Billy Preston'), ('get back', 'The Beatles')] [('get back', 'The Beatles')]\n",
+ "little by little shed [('little by little shed', 'Radiohead')] []\n",
+ "gimme shelter [('gimme shelter', 'The Rolling Stones'), ('gimme shelter', 'The Rolling Stones'), ('gimme shelter', 'The Rolling Stones'), ('gimme shelter', 'The Rolling Stones'), ('gimme shelter', 'The Rolling Stones'), ('gimme shelter', 'The Rolling Stones')] [('gimme shelter', 'The Rolling Stones')]\n",
+ "flip flop and fly [('flip flop and fly', 'Muddy Waters')] []\n",
+ "money thats what i want [('money thats what i want', 'The Beatles')] [('money thats what i want', 'The Beatles'), ('money thats what i want', 'The Beatles')]\n",
+ "i want to hold your hand [('i want to hold your hand', 'The Beatles'), ('i want to hold your hand', 'The Beatles')] [('i want to hold your hand', 'The Beatles'), ('i want to hold your hand', 'Ali brustofski')]\n",
+ "roll over beethoven [('roll over beethoven', 'The Rolling Stones'), ('roll over beethoven', 'The Beatles'), ('roll over beethoven', 'The Beatles')] [('roll over beethoven', 'The Beatles'), ('roll over beethoven', 'The Rolling Stones')]\n",
+ "2 2 5 live at earls court [('2 2 5 live at earls court', 'Radiohead')] []\n",
+ "good evening mrs magpie modeselektor rmx [('good evening mrs magpie modeselektor rmx', 'Radiohead')] []\n",
+ "the national anthem live in france [('the national anthem live in france', 'Radiohead')] []\n",
+ "cant be seen [('cant be seen', 'The Rolling Stones'), ('cant be seen', 'The Rolling Stones')] [('cant be seen', 'The Rolling Stones')]\n",
+ "idioteque live in oxford [('idioteque live in oxford', 'Radiohead')] []\n",
+ "pepperland laid waste [('pepperland laid waste', 'George Martin')] []\n",
+ "midnight rambler [('midnight rambler', 'The Rolling Stones'), ('midnight rambler', 'The Rolling Stones'), ('midnight rambler', 'The Rolling Stones'), ('midnight rambler', 'The Rolling Stones'), ('midnight rambler', 'The Rolling Stones'), ('midnight rambler', 'The Rolling Stones')] [('midnight rambler', 'The Rolling Stones')]\n",
+ "like spinning plates live [('like spinning plates live', 'Radiohead')] []\n",
+ "separator four tet rmx [('separator four tet rmx', 'Radiohead')] []\n",
+ "dirty work [('dirty work', 'The Rolling Stones'), ('dirty work', 'The Rolling Stones')] [('dirty work', 'The Rolling Stones')]\n",
+ "all you need is love [('all you need is love', 'The Beatles'), ('all you need is love', 'The Beatles'), ('all you need is love', 'The Beatles')] [('all you need is love', 'The Beatles')]\n",
+ "get down with me [('get down with me', 'Spice Girls')] []\n",
+ "revolution 1 [('revolution 1', 'The Beatles')] []\n",
+ "not fade away [('not fade away', 'The Rolling Stones'), ('not fade away', 'The Rolling Stones'), ('not fade away', 'The Rolling Stones'), ('not fade away', 'The Rolling Stones')] [('not fade away', 'The Rolling Stones')]\n",
+ "martin scorsese intro [('martin scorsese intro', 'The Rolling Stones')] []\n",
+ "slipping away [('slipping away', 'The Rolling Stones'), ('slipping away', 'The Rolling Stones'), ('slipping away', 'The Rolling Stones'), ('slipping away', 'The Rolling Stones'), ('slipping away', 'The Rolling Stones')] [('slipping away', 'The Rolling Stones')]\n",
+ "faraway eyes [('faraway eyes', 'The Rolling Stones'), ('faraway eyes', 'The Rolling Stones'), ('faraway eyes', 'The Rolling Stones'), ('faraway eyes', 'The Rolling Stones')] []\n",
+ "march of the meanies [('march of the meanies', 'George Martin')] []\n",
+ "angie [('angie', 'The Rolling Stones'), ('angie', 'The Rolling Stones'), ('angie', 'The Rolling Stones'), ('angie', 'The Rolling Stones'), ('angie', 'The Rolling Stones')] [('angie', 'The Rolling Stones')]\n",
+ "stop [('stop', 'Spice Girls')] []\n",
+ "too much [('too much', 'Spice Girls')] []\n",
+ "dollars cents [('dollars cents', 'Radiohead')] []\n",
+ "come together [('come together', 'The Beatles'), ('come together', 'The Beatles')] [('come together', 'The Beatles')]\n",
+ "cant buy me love [('cant buy me love', 'The Beatles'), ('cant buy me love', 'The Beatles'), ('cant buy me love', 'The Beatles')] [('cant buy me love', 'The Beatles')]\n",
+ "naked [('naked', 'Spice Girls')] []\n",
+ "brown sugar [('brown sugar', 'The Rolling Stones'), ('brown sugar', 'Bob Clearmountain'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones'), ('brown sugar', 'The Rolling Stones')] [('brown sugar', 'The Rolling Stones')]\n",
+ "baby please dont go [('baby please dont go', 'The Rolling Stones'), ('baby please dont go', 'The Rolling Stones'), ('baby please dont go', 'The Rolling Stones')] [('baby please dont go', 'The Rolling Stones')]\n",
+ "sgt peppers lonely hearts club band reprise [('sgt peppers lonely hearts club band reprise', 'The Beatles'), ('sgt peppers lonely hearts club band reprise', 'The Beatles')] [('sgt peppers lonely hearts club band reprise', 'The Beatles')]\n",
+ "the long and winding road [('the long and winding road', 'The Beatles'), ('the long and winding road', 'The Beatles')] [('the long and winding road', 'The Beatles')]\n",
+ "when im sixtyfour [('when im sixtyfour', 'The Beatles'), ('when im sixtyfour', 'The Beatles')] [('when im sixtyfour', 'The Beatles')]\n",
+ "charlies intro to little red rooster [('charlies intro to little red rooster', 'The Rolling Stones')] []\n",
+ "high and dry [('high and dry', 'Radiohead')] [('high and dry', 'Radiohead'), ('high and dry', 'The Rolling Stones')]\n",
+ "bloom mark pritchard rmx [('bloom mark pritchard rmx', 'Radiohead')] []\n",
+ "some girls [('some girls', 'The Rolling Stones'), ('some girls', 'The Rolling Stones'), ('some girls', 'The Rolling Stones')] [('some girls', 'The Rolling Stones')]\n",
+ "lotus flower jacques greene rmx [('lotus flower jacques greene rmx', 'Radiohead')] []\n",
+ "connection [('connection', 'The Rolling Stones'), ('connection', 'The Rolling Stones'), ('connection', 'The Rolling Stones'), ('connection', 'The Rolling Stones')] [('connection', 'The Rolling Stones')]\n",
+ "shattered [('shattered', 'The Rolling Stones'), ('shattered', 'The Rolling Stones'), ('shattered', 'The Rolling Stones'), ('shattered', 'The Rolling Stones'), ('shattered', 'The Rolling Stones'), ('shattered', 'The Rolling Stones')] [('shattered', 'The Rolling Stones')]\n",
+ "let love lead the way [('let love lead the way', 'Spice Girls')] []\n",
+ "jumping jack flash [('jumping jack flash', 'The Rolling Stones')] []\n",
+ "the worst [('the worst', 'The Rolling Stones'), ('the worst', 'The Rolling Stones')] [('the worst', 'The Rolling Stones')]\n",
+ "little red rooster [('little red rooster', 'The Rolling Stones'), ('little red rooster', 'The Rolling Stones')] [('little red rooster', 'The Rolling Stones')]\n",
+ "sad sad sad [('sad sad sad', 'The Rolling Stones'), ('sad sad sad', 'The Rolling Stones')] [('sad sad sad', 'The Rolling Stones')]\n",
+ "holler [('holler', 'Spice Girls')] []\n",
+ "the spider and the fly [('the spider and the fly', 'The Rolling Stones'), ('the spider and the fly', 'The Rolling Stones'), ('the spider and the fly', 'The Rolling Stones')] [('the spider and the fly', 'The Rolling Stones')]\n",
+ "a day in the life [('a day in the life', 'The Beatles'), ('a day in the life', 'The Beatles'), ('a day in the life', 'The Beatles')] [('a day in the life', 'The Beatles')]\n",
+ "mama [('mama', 'Spice Girls')] []\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "you got me rockin [('you got me rockin', 'The Rolling Stones'), ('you got me rockin', 'The Rolling Stones')] []\n",
+ "sea of monsters [('sea of monsters', 'George Martin')] []\n",
+ "things we said today [('things we said today', 'The Beatles'), ('things we said today', 'The Beatles')] [('things we said today', 'The Beatles')]\n",
+ "pepperland [('pepperland', 'George Martin')] []\n",
+ "being for the benefit of mr kite [('being for the benefit of mr kite', 'The Beatles'), ('being for the benefit of mr kite', 'The Beatles'), ('being for the benefit of mr kite', 'The Beatles')] [('being for the benefit of mr kite', 'The Beatles')]\n",
+ "had it with you [('had it with you', 'The Rolling Stones'), ('had it with you', 'The Rolling Stones')] [('had it with you', 'The Rolling Stones')]\n",
+ "true love waits live in oslo [('true love waits live in oslo', 'Radiohead')] []\n",
+ "bloom jamie xx rework [('bloom jamie xx rework', 'Radiohead')] []\n",
+ "sweet little angel [('sweet little angel', 'Muddy Waters')] []\n",
+ "separator anstam rmx [('separator anstam rmx', 'Radiohead')] []\n",
+ "time is on my side [('time is on my side', 'The Rolling Stones'), ('time is on my side', 'The Rolling Stones')] [('time is on my side', 'The Rolling Stones')]\n",
+ "tumbling dice [('tumbling dice', 'The Rolling Stones'), ('tumbling dice', 'The Rolling Stones'), ('tumbling dice', 'The Rolling Stones'), ('tumbling dice', 'The Rolling Stones'), ('tumbling dice', 'The Rolling Stones'), ('tumbling dice', 'The Rolling Stones')] [('tumbling dice', 'The Rolling Stones')]\n",
+ "yellow submarine [('yellow submarine', 'The Beatles'), ('yellow submarine', 'The Beatles'), ('yellow submarine', 'The Beatles')] [('yellow submarine', 'The Beatles')]\n",
+ "beast of burden [('beast of burden', 'The Rolling Stones'), ('beast of burden', 'The Rolling Stones'), ('beast of burden', 'The Rolling Stones'), ('beast of burden', 'The Rolling Stones'), ('beast of burden', 'The Rolling Stones'), ('beast of burden', 'The Rolling Stones')] [('beast of burden', 'The Rolling Stones')]\n",
+ "honky tonk woman [('honky tonk woman', 'The Rolling Stones')] []\n",
+ "lovely rita [('lovely rita', 'The Beatles'), ('lovely rita', 'The Beatles'), ('lovely rita', 'The Beatles')] [('lovely rita', 'The Beatles')]\n",
+ "neighbours [('neighbours', 'The Rolling Stones'), ('neighbours', 'Bob Clearmountain')] [('neighbours', 'The Rolling Stones')]\n",
+ "dead flowers [('dead flowers', 'Bob Clearmountain'), ('dead flowers', 'The Rolling Stones'), ('dead flowers', 'The Rolling Stones'), ('dead flowers', 'The Rolling Stones'), ('dead flowers', 'The Rolling Stones'), ('dead flowers', 'The Rolling Stones'), ('dead flowers', 'The Rolling Stones')] [('dead flowers', 'The Rolling Stones')]\n",
+ "paint it black [('paint it black', 'The Rolling Stones'), ('paint it black', 'The Rolling Stones'), ('paint it black', 'The Rolling Stones'), ('paint it black', 'The Rolling Stones')] [('paint it black', 'The Rolling Stones')]\n",
+ "bloom harmonic 313 rmx [('bloom harmonic 313 rmx', 'Radiohead')] []\n",
+ "respectable [('respectable', 'The Rolling Stones'), ('respectable', 'The Rolling Stones'), ('respectable', 'The Rolling Stones'), ('respectable', 'The Rolling Stones')] [('respectable', 'The Rolling Stones')]\n",
+ "just my imagination [('just my imagination', 'The Rolling Stones'), ('just my imagination', 'The Rolling Stones')] []\n",
+ "tell me why [('tell me why', 'Spice Girls'), ('tell me why', 'The Beatles')] [('tell me why', 'The Beatles')]\n",
+ "2 become 1 [('2 become 1', 'Spice Girls')] []\n",
+ "little by little [('little by little', 'The Rolling Stones'), ('little by little', 'Radiohead')] [('little by little', 'Radiohead'), ('little by little', 'The Rolling Stones')]\n",
+ "got my mojo workin [('got my mojo workin', 'The Rolling Stones'), ('got my mojo workin', 'The Rolling Stones')] []\n",
+ "little ta [('little ta', 'The Rolling Stones'), ('little ta', 'The Rolling Stones')] []\n",
+ "bloom blawan rmx [('bloom blawan rmx', 'Radiohead')] []\n",
+ "far away eyes [('far away eyes', 'The Rolling Stones'), ('far away eyes', 'The Rolling Stones'), ('far away eyes', 'The Rolling Stones')] [('far away eyes', 'The Rolling Stones')]\n",
+ "ps i love you [('ps i love you', 'The Beatles')] [('ps i love you', 'The Beatles'), ('ps i love you', 'The Beatles')]\n",
+ "rock and a hard place [('rock and a hard place', 'The Rolling Stones'), ('rock and a hard place', 'The Rolling Stones')] [('rock and a hard place', 'The Rolling Stones')]\n",
+ "long distance call [('long distance call', 'The Rolling Stones'), ('long distance call', 'The Rolling Stones')] []\n",
+ "start me up [('start me up', 'Bob Clearmountain'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones'), ('start me up', 'The Rolling Stones')] [('start me up', 'The Rolling Stones')]\n",
+ "let it bleed [('let it bleed', 'The Rolling Stones'), ('let it bleed', 'The Rolling Stones'), ('let it bleed', 'The Rolling Stones')] [('let it bleed', 'The Rolling Stones')]\n",
+ "county jail [('county jail', 'Muddy Waters')] []\n",
+ "fight [('fight', 'The Rolling Stones'), ('fight', 'The Rolling Stones')] [('fight', 'The Rolling Stones')]\n",
+ "sea of time [('sea of time', 'George Martin')] []\n",
+ "route 66 [('route 66', 'The Rolling Stones'), ('route 66', 'The Rolling Stones')] [('route 66', 'The Rolling Stones')]\n",
+ "morning bell live in oxford [('morning bell live in oxford', 'Radiohead')] []\n",
+ "one hit to the body [('one hit to the body', 'The Rolling Stones'), ('one hit to the body', 'The Rolling Stones')] [('one hit to the body', 'The Rolling Stones')]\n",
+ "let me go [('let me go', 'The Rolling Stones'), ('let me go', 'The Rolling Stones')] [('let me go', 'The Rolling Stones')]\n",
+ "pain in my heart [('pain in my heart', 'The Rolling Stones')] [('pain in my heart', 'The Rolling Stones'), ('pain in my heart', 'The Rolling Stones')]\n",
+ "please please me [('please please me', 'The Beatles')] [('please please me', 'The Beatles'), ('please please me', 'The Rolling Stones')]\n",
+ "move over [('move over', 'Spice Girls')] []\n",
+ "skttrbrain four tet remix [('skttrbrain four tet remix', 'Radiohead')] []\n",
+ "just my imagination running away with me [('just my imagination running away with me', 'The Rolling Stones'), ('just my imagination running away with me', 'The Rolling Stones'), ('just my imagination running away with me', 'The Rolling Stones')] [('just my imagination running away with me', 'The Rolling Stones')]\n",
+ "down in the bottom [('down in the bottom', 'The Rolling Stones'), ('down in the bottom', 'The Rolling Stones')] [('down in the bottom', 'The Rolling Stones')]\n",
+ "you got the silver [('you got the silver', 'The Rolling Stones'), ('you got the silver', 'The Rolling Stones')] [('you got the silver', 'The Rolling Stones')]\n",
+ "i cant get no satisfaction [('i cant get no satisfaction', 'The Rolling Stones'), ('i cant get no satisfaction', 'The Rolling Stones'), ('i cant get no satisfaction', 'The Rolling Stones'), ('i cant get no satisfaction', 'The Rolling Stones'), ('i cant get no satisfaction', 'The Rolling Stones'), ('i cant get no satisfaction', 'The Rolling Stones')] [('i cant get no satisfaction', 'The Rolling Stones')]\n",
+ "sleep tonight [('sleep tonight', 'The Rolling Stones'), ('sleep tonight', 'The Rolling Stones')] [('sleep tonight', 'The Rolling Stones')]\n",
+ "outro [('outro', 'Jimi Hendrix')] []\n",
+ "she loves you [('she loves you', 'The Beatles'), ('she loves you', 'The Beatles')] [('she loves you', 'The Beatles'), ('she loves you', 'The Beatles')]\n",
+ "clouds in my heart [('clouds in my heart', 'The Rolling Stones'), ('clouds in my heart', 'The Rolling Stones')] []\n",
+ "feral lone rmx [('feral lone rmx', 'Radiohead')] []\n",
+ "love me do [('love me do', 'The Beatles'), ('love me do', 'The Beatles')] [('love me do', 'The Beatles'), ('love me do', 'The Beatles')]\n",
+ "its all over now [('its all over now', 'The Rolling Stones'), ('its all over now', 'The Rolling Stones')] [('its all over now', 'The Rolling Stones')]\n",
+ "miss you [('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones'), ('miss you', 'The Rolling Stones')] [('miss you', 'The Rolling Stones')]\n",
+ "mannish boy [('mannish boy', 'The Rolling Stones'), ('mannish boy', 'The Rolling Stones')] [('mannish boy', 'The Rolling Stones')]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "its only rock n roll but i like it [('its only rock n roll but i like it', 'The Rolling Stones'), ('its only rock n roll but i like it', 'The Rolling Stones'), ('its only rock n roll but i like it', 'The Rolling Stones')] [('its only rock n roll but i like it', 'The Rolling Stones')]\n",
+ "bloom objekt rmx [('bloom objekt rmx', 'Radiohead')] []\n",
+ "untitled [('untitled', 'Radiohead')] []\n",
+ "sea of holes [('sea of holes', 'George Martin')] []\n",
+ "when the whip comes down [('when the whip comes down', 'Bob Clearmountain'), ('when the whip comes down', 'The Rolling Stones'), ('when the whip comes down', 'The Rolling Stones'), ('when the whip comes down', 'The Rolling Stones'), ('when the whip comes down', 'The Rolling Stones')] [('when the whip comes down', 'The Rolling Stones')]\n",
+ "codex illum sphere [('codex illum sphere', 'Radiohead')] []\n",
+ "monkey man [('monkey man', 'The Rolling Stones'), ('monkey man', 'The Rolling Stones')] [('monkey man', 'The Rolling Stones')]\n",
+ "give up the ghost thriller houseghost remix [('give up the ghost thriller houseghost remix', 'Radiohead')] []\n",
+ "eight days a week [('eight days a week', 'The Beatles'), ('eight days a week', 'The Beatles')] [('eight days a week', 'The Beatles')]\n",
+ "kansas city heyheyheyhey [('kansas city heyheyheyhey', 'The Beatles')] []\n",
+ "something kinda funny [('something kinda funny', 'Spice Girls')] []\n",
+ "sweet little sixteen [('sweet little sixteen', 'The Rolling Stones')] [('sweet little sixteen', 'The Beatles'), ('sweet little sixteen', 'The Rolling Stones')]\n",
+ "wild horses [('wild horses', 'Bob Clearmountain'), ('wild horses', 'The Rolling Stones'), ('wild horses', 'The Rolling Stones'), ('wild horses', 'The Rolling Stones')] [('wild horses', 'Plan B'), ('wild horses', 'The Rolling Stones')]\n",
+ "everybody needs somebody to love finale [('everybody needs somebody to love finale', 'The Rolling Stones')] []\n",
+ "shes leaving home [('shes leaving home', 'The Beatles'), ('shes leaving home', 'The Beatles'), ('shes leaving home', 'The Beatles')] [('shes leaving home', 'The Beatles')]\n",
+ "everybody needs somebody to love [('everybody needs somebody to love', 'The Rolling Stones'), ('everybody needs somebody to love', 'Solomon Burke'), ('everybody needs somebody to love', 'The Rolling Stones')] [('everybody needs somebody to love', 'The Rolling Stones')]\n",
+ "i might be wrong live [('i might be wrong live', 'Radiohead')] []\n",
+ "lotus flower sbtrkt rmx [('lotus flower sbtrkt rmx', 'Radiohead')] []\n",
+ "one eyed woman [('one eyed woman', 'The Rolling Stones'), ('one eyed woman', 'The Rolling Stones')] []\n",
+ "rip this joint [('rip this joint', 'The Rolling Stones'), ('rip this joint', 'The Rolling Stones'), ('rip this joint', 'The Rolling Stones'), ('rip this joint', 'The Rolling Stones'), ('rip this joint', 'The Rolling Stones'), ('rip this joint', 'The Rolling Stones')] [('rip this joint', 'The Rolling Stones')]\n",
+ "a punch up at a wedding [('a punch up at a wedding', 'Radiohead')] []\n",
+ "intro take the a train [('intro take the a train', 'Duke Ellington')] []\n",
+ "winning ugly [('winning ugly', 'The Rolling Stones'), ('winning ugly', 'The Rolling Stones')] [('winning ugly', 'The Rolling Stones')]\n",
+ "yesterday [('yesterday', 'The Beatles'), ('yesterday', 'The Beatles')] [('yesterday', 'Yusdrew'), ('yesterday', 'The Beatles')]\n",
+ "fannie mae [('fannie mae', 'The Rolling Stones')] []\n",
+ "street fighting man [('street fighting man', 'The Rolling Stones'), ('street fighting man', 'The Rolling Stones'), ('street fighting man', 'The Rolling Stones'), ('street fighting man', 'The Rolling Stones'), ('street fighting man', 'The Rolling Stones'), ('street fighting man', 'The Rolling Stones')] [('street fighting man', 'The Rolling Stones')]\n",
+ "a hard days night [('a hard days night', 'The Beatles'), ('a hard days night', 'The Beatles'), ('a hard days night', 'The Beatles')] [('a hard days night', 'The Beatles')]\n",
+ "paranoid android [('paranoid android', 'Radiohead')] [('paranoid android', 'Sia'), ('paranoid android', 'Radiohead')]\n",
+ "within you without you [('within you without you', 'The Beatles'), ('within you without you', 'The Beatles'), ('within you without you', 'The Beatles')] [('within you without you', 'The Beatles')]\n",
+ "all down the line [('all down the line', 'Bob Clearmountain'), ('all down the line', 'The Rolling Stones'), ('all down the line', 'The Rolling Stones'), ('all down the line', 'The Rolling Stones'), ('all down the line', 'The Rolling Stones'), ('all down the line', 'The Rolling Stones'), ('all down the line', 'The Rolling Stones')] [('all down the line', 'The Rolling Stones')]\n",
+ "remyxomatosis cristian vogel rmx [('remyxomatosis cristian vogel rmx', 'Radiohead')] []\n",
+ "the lady is a vamp [('the lady is a vamp', 'Spice Girls')] []\n",
+ "good morning good morning [('good morning good morning', 'The Beatles'), ('good morning good morning', 'The Beatles'), ('good morning good morning', 'The Beatles')] [('good morning good morning', 'The Beatles')]\n",
+ "you dont have to mean it [('you dont have to mean it', 'The Rolling Stones'), ('you dont have to mean it', 'The Rolling Stones')] [('you dont have to mean it', 'The Rolling Stones')]\n",
+ "hi heel sneakers [('hi heel sneakers', 'The Rolling Stones')] []\n",
+ "viva forever [('viva forever', 'Spice Girls')] []\n",
+ "time goes by [('time goes by', 'Spice Girls')] []\n",
+ "i cant turn you loose [('i cant turn you loose', 'Bob Clearmountain')] []\n",
+ "love in vain [('love in vain', 'The Rolling Stones'), ('love in vain', 'The Rolling Stones'), ('love in vain', 'The Rolling Stones'), ('love in vain', 'The Rolling Stones')] [('love in vain', 'The Rolling Stones')]\n",
+ "you dont have to go [('you dont have to go', 'Muddy Waters'), ('you dont have to go', 'Muddy Waters')] []\n",
+ "boys [('boys', 'The Beatles'), ('boys', 'The Beatles')] [('boys', 'The Beatles')]\n",
+ "bitch [('bitch', 'Bob Clearmountain'), ('bitch', 'The Rolling Stones')] [('bitch', 'The Rolling Stones')]\n",
+ "the last time [('the last time', 'The Rolling Stones'), ('the last time', 'The Rolling Stones')] [('the last time', 'The Rolling Stones')]\n",
+ "when im sixty four [('when im sixty four', 'The Beatles')] []\n",
+ "honky tonk women [('honky tonk women', 'The Rolling Stones'), ('honky tonk women', 'The Rolling Stones'), ('honky tonk women', 'The Rolling Stones'), ('honky tonk women', 'Sheryl Crow'), ('honky tonk women', 'The Rolling Stones'), ('honky tonk women', 'The Rolling Stones')] [('honky tonk women', 'The Rolling Stones')]\n",
+ "twist and shout [('twist and shout', 'The Beatles'), ('twist and shout', 'The Beatles')] [('twist and shout', 'The Beatles'), ('twist and shout', 'The Beatles'), ('twist and shout', 'The Beatles')]\n",
+ "bullet proof i wish i was [('bullet proof i wish i was', 'Radiohead')] []\n",
+ "hoochie coochie man [('hoochie coochie man', 'The Rolling Stones'), ('hoochie coochie man', 'The Rolling Stones')] [('hoochie coochie man', 'The Rolling Stones')]\n",
+ "introduction [('introduction', 'Muddy Waters'), ('introduction', 'Muddy Waters')] []\n",
+ "champagne and reefer [('champagne and reefer', 'The Rolling Stones'), ('champagne and reefer', 'The Rolling Stones')] []\n",
+ "i go wild [('i go wild', 'The Rolling Stones'), ('i go wild', 'The Rolling Stones'), ('i go wild', 'The Rolling Stones'), ('i go wild', 'The Rolling Stones'), ('i go wild', 'The Rolling Stones')] [('i go wild', 'The Rolling Stones')]\n",
+ "help [('help', 'The Beatles'), ('help', 'The Beatles'), ('help', 'The Beatles')] [('help', 'The Beatles')]\n",
+ "she was hot [('she was hot', 'The Rolling Stones'), ('she was hot', 'The Rolling Stones')] [('she was hot', 'The Rolling Stones')]\n",
+ "sympathy for the devil [('sympathy for the devil', 'The Rolling Stones'), ('sympathy for the devil', 'The Rolling Stones'), ('sympathy for the devil', 'The Rolling Stones')] [('sympathy for the devil', 'The Rolling Stones')]\n",
+ "ticket to ride [('ticket to ride', 'The Beatles'), ('ticket to ride', 'The Beatles'), ('ticket to ride', 'The Beatles')] [('ticket to ride', 'The Beatles')]\n",
+ "never give up on the good times [('never give up on the good times', 'Spice Girls')] []\n",
+ "wasting my time [('wasting my time', 'Spice Girls')] []\n",
+ "tkol altrice rmx [('tkol altrice rmx', 'Radiohead')] []\n",
+ "band introductions [('band introductions', 'The Rolling Stones')] []\n",
+ "if you wanna have some fun [('if you wanna have some fun', 'Spice Girls')] []\n",
+ "im moving on [('im moving on', 'The Rolling Stones'), ('im moving on', 'The Rolling Stones')] [('im moving on', 'The Rolling Stones')]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "black limousine [('black limousine', 'The Rolling Stones'), ('black limousine', 'The Rolling Stones')] [('black limousine', 'The Rolling Stones')]\n",
+ "out of control [('out of control', 'The Rolling Stones'), ('out of control', 'The Rolling Stones')] [('out of control', 'The Rolling Stones')]\n",
+ "dizzy miss lizzy [('dizzy miss lizzy', 'The Beatles'), ('dizzy miss lizzy', 'The Beatles')] [('dizzy miss lizzy', 'The Beatles')]\n",
+ "little by little caribou rmx [('little by little caribou rmx', 'Radiohead')] []\n",
+ "dollars cents live [('dollars cents live', 'Radiohead')] []\n",
+ "you cant do that [('you cant do that', 'The Beatles'), ('you cant do that', 'The Beatles')] [('you cant do that', 'The Beatles')]\n",
+ "trouble no more [('trouble no more', 'Muddy Waters')] []\n",
+ "with a little help from my friends [('with a little help from my friends', 'The Beatles'), ('with a little help from my friends', 'The Beatles'), ('with a little help from my friends', 'The Beatles')] [('with a little help from my friends', 'The Beatles')]\n",
+ "last time lover [('last time lover', 'Spice Girls')] []\n",
+ "babys in black [('babys in black', 'The Beatles'), ('babys in black', 'The Beatles')] [('babys in black', 'The Beatles')]\n",
+ "packt like sardines in a crushed tin box [('packt like sardines in a crushed tin box', 'Radiohead')] []\n",
+ "i will [('i will', 'The Beatles'), ('i will', 'Radiohead')] [('i will', 'Radiohead'), ('i will', 'The Beatles')]\n",
+ "saturday night divas [('saturday night divas', 'Spice Girls')] []\n",
+ "strawberry fields forever [('strawberry fields forever', 'The Beatles'), ('strawberry fields forever', 'The Beatles'), ('strawberry fields forever', 'The Beatles'), ('strawberry fields forever', 'The Beatles')] [('strawberry fields forever', 'The Beatles')]\n",
+ "eleanor rigby [('eleanor rigby', 'The Beatles'), ('eleanor rigby', 'The Beatles')] [('eleanor rigby', 'The Beatles')]\n",
+ "love thing [('love thing', 'Spice Girls')] []\n",
+ "jumpin jack flash [('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'Bob Clearmountain'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones'), ('jumpin jack flash', 'The Rolling Stones')] [('jumpin jack flash', 'The Rolling Stones')]\n",
+ "say youll be there [('say youll be there', 'Spice Girls')] []\n",
+ "do it [('do it', 'Spice Girls')] []\n",
+ "before they make me run [('before they make me run', 'The Rolling Stones'), ('before they make me run', 'The Rolling Stones'), ('before they make me run', 'The Rolling Stones')] [('before they make me run', 'The Rolling Stones')]\n",
+ "hello goodbye [('hello goodbye', 'The Beatles'), ('hello goodbye', 'The Beatles')] [('hello goodbye', 'The Beatles')]\n",
+ "youre gonna miss me when im gone [('youre gonna miss me when im gone', 'Muddy Waters')] []\n",
+ "carol [('carol', 'The Rolling Stones')] [('carol', 'The Beatles'), ('carol', 'The Rolling Stones')]\n",
+ "hold back [('hold back', 'The Rolling Stones'), ('hold back', 'The Rolling Stones')] [('hold back', 'The Rolling Stones')]\n",
+ "youve got to hide your love away [('youve got to hide your love away', 'The Beatles')] [('youve got to hide your love away', 'The Beatles'), ('youve got to hide your love away', 'The Beatles')]\n",
+ "give up the ghost brokenchord rmx [('give up the ghost brokenchord rmx', 'Radiohead')] []\n",
+ "everything in its right place live in france [('everything in its right place live in france', 'Radiohead')] []\n",
+ "let it be [('let it be', 'The Beatles'), ('let it be', 'The Beatles')] [('let it be', 'The Beatles')]\n",
+ "fog again live [('fog again live', 'Radiohead')] []\n",
+ "right back at ya [('right back at ya', 'Spice Girls')] []\n",
+ "morning mr magpie nathan fake rmx [('morning mr magpie nathan fake rmx', 'Radiohead')] []\n",
+ "continental drift [('continental drift', 'The Rolling Stones'), ('continental drift', 'The Rolling Stones')] [('continental drift', 'The Rolling Stones')]\n",
+ "spice up your life [('spice up your life', 'Spice Girls')] []\n",
+ "instrumental 2 [('instrumental 2', 'The Rolling Stones')] []\n",
+ "instrumental 1 [('instrumental 1', 'The Rolling Stones')] []\n",
+ "sweet virginia [('sweet virginia', 'The Rolling Stones'), ('sweet virginia', 'The Rolling Stones'), ('sweet virginia', 'The Rolling Stones'), ('sweet virginia', 'The Rolling Stones')] [('sweet virginia', 'The Rolling Stones')]\n",
+ "rock me baby [('rock me baby', 'Bob Clearmountain'), ('rock me baby', 'The Rolling Stones')] [('rock me baby', 'The Rolling Stones')]\n",
+ "if u cant dance [('if u cant dance', 'Spice Girls')] []\n",
+ "getting better [('getting better', 'The Beatles'), ('getting better', 'The Beatles'), ('getting better', 'The Beatles')] [('getting better', 'The Beatles')]\n",
+ "penny lane [('penny lane', 'The Beatles'), ('penny lane', 'The Beatles'), ('penny lane', 'The Beatles'), ('penny lane', 'The Beatles')] [('penny lane', 'The Beatles')]\n",
+ "country boy [('country boy', 'Muddy Waters')] []\n",
+ "shine a light [('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones'), ('shine a light', 'The Rolling Stones')] [('shine a light', 'The Rolling Stones')]\n",
+ "like a rolling stone [('like a rolling stone', 'The Rolling Stones'), ('like a rolling stone', 'The Rolling Stones'), ('like a rolling stone', 'The Rolling Stones'), ('like a rolling stone', 'The Rolling Stones'), ('like a rolling stone', 'The Rolling Stones'), ('like a rolling stone', 'The Rolling Stones')] [('like a rolling stone', 'The Rolling Stones')]\n",
+ "lucy in the sky with diamonds [('lucy in the sky with diamonds', 'The Beatles'), ('lucy in the sky with diamonds', 'The Beatles'), ('lucy in the sky with diamonds', 'The Beatles')] [('lucy in the sky with diamonds', 'The Beatles')]\n",
+ "wannabe [('wannabe', 'Spice Girls')] []\n",
+ "worried about you [('worried about you', 'The Rolling Stones'), ('worried about you', 'Bob Clearmountain')] [('worried about you', 'The Rolling Stones')]\n",
+ "cant you hear me knocking [('cant you hear me knocking', 'Bob Clearmountain'), ('cant you hear me knocking', 'The Rolling Stones')] [('cant you hear me knocking', 'The Rolling Stones')]\n",
+ "morning mr magpie pearson sound scavenger rmx [('morning mr magpie pearson sound scavenger rmx', 'Radiohead')] []\n",
+ "live with me [('live with me', 'The Rolling Stones'), ('live with me', 'The Rolling Stones'), ('live with me', 'Christina Aguilera')] [('live with me', 'The Rolling Stones')]\n",
+ "too rude [('too rude', 'The Rolling Stones'), ('too rude', 'The Rolling Stones')] [('too rude', 'The Rolling Stones')]\n",
+ "denying [('denying', 'Spice Girls')] []\n",
+ "i wanna be your man [('i wanna be your man', 'The Rolling Stones'), ('i wanna be your man', 'The Beatles')] [('i wanna be your man', 'The Beatles'), ('i wanna be your man', 'The Rolling Stones')]\n",
+ "key to the highway [('key to the highway', 'The Rolling Stones'), ('key to the highway', 'The Rolling Stones')] []\n",
+ "down the road apiece [('down the road apiece', 'The Rolling Stones'), ('down the road apiece', 'The Rolling Stones')] [('down the road apiece', 'The Rolling Stones')]\n",
+ "everybodys trying to be my baby [('everybodys trying to be my baby', 'The Beatles'), ('everybodys trying to be my baby', 'The Beatles')] [('everybodys trying to be my baby', 'The Beatles')]\n",
+ "weekend love [('weekend love', 'Spice Girls')] []\n",
+ "something [('something', 'The Beatles'), ('something', 'The Beatles')] [('something', 'The Beatles')]\n",
+ "all my loving [('all my loving', 'The Beatles'), ('all my loving', 'The Beatles')] [('all my loving', 'The Beatles')]\n"
+ ]
+ }
+ ],
+ "source": [
+ "for ct in ctitles:\n",
+ " sts = [(t['ctitle'], t['artist_name']) for t in tracks.find({'ctitle': ct}, ['ctitle', 'artist_name'])]\n",
+ " gts = [(t['ctitle'], t['primary_artist']['name']) for t in genius_tracks.find({'ctitle': ct}, ['ctitle', 'primary_artist.name'])]\n",
+ " if len(sts) != 1 or len(gts) != 1:\n",
+ " print(ct, sts, gts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def levenshtein(s1, s2):\n",
+ " if len(s1) < len(s2):\n",
+ " return levenshtein(s2, s1)\n",
+ "\n",
+ " # len(s1) >= len(s2)\n",
+ " if len(s2) == 0:\n",
+ " return len(s1)\n",
+ "\n",
+ " previous_row = range(len(s2) + 1)\n",
+ " for i, c1 in enumerate(s1):\n",
+ " current_row = [i + 1]\n",
+ " for j, c2 in enumerate(s2):\n",
+ " insertions = previous_row[j + 1] + 1 # j+1 instead of j since previous_row and current_row are one character longer\n",
+ " deletions = current_row[j] + 1 # than s2\n",
+ " substitutions = previous_row[j] + (c1 != c2)\n",
+ " current_row.append(min(insertions, deletions, substitutions))\n",
+ " previous_row = current_row\n",
+ " \n",
+ " return previous_row[-1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "('if u cant dance', 'Spice Girls') Missing 99999 False\n",
+ "('champagne and reefer', 'The Rolling Stones') ('champagne reefer', 'The Rolling Stones') 4 True\n",
+ "('key to the highway', 'The Rolling Stones') ('thief in the night', 'The Rolling Stones') 10 True\n",
+ "('stop', 'Spice Girls') Missing 99999 False\n",
+ "('right back at ya', 'Spice Girls') Missing 99999 False\n",
+ "('you dont have to go', 'Muddy Waters') Missing 99999 False\n",
+ "('let love lead the way', 'Spice Girls') Missing 99999 False\n",
+ "('county jail', 'Muddy Waters') Missing 99999 False\n",
+ "('trouble no more', 'Muddy Waters') Missing 99999 False\n",
+ "('time goes by', 'Spice Girls') Missing 99999 False\n",
+ "('little ta', 'The Rolling Stones') ('little t a', 'The Rolling Stones') 1 False\n",
+ "('pepperland', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 20 True\n",
+ "('you got me rockin', 'The Rolling Stones') ('you got me rocking', 'The Rolling Stones') 1 True\n",
+ "('sea of holes', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 25 True\n",
+ "('next time you see me', 'The Rolling Stones') ('if you let me', 'The Rolling Stones') 10 False\n",
+ "('something kinda funny', 'Spice Girls') Missing 99999 False\n",
+ "('untitled', 'Radiohead') ('untogether', 'Radiohead') 5 False\n",
+ "('if you wanna have some fun', 'Spice Girls') Missing 99999 False\n",
+ "('wasting my time', 'Spice Girls') Missing 99999 False\n",
+ "('packt like sardines in a crushed tin box', 'Radiohead') ('packt like sardines in a crushd tin box', 'Radiohead') 1 False\n",
+ "('do it', 'Spice Girls') Missing 99999 False\n",
+ "('march of the meanies', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 24 True\n",
+ "('codex illum sphere', 'Radiohead') ('there there', 'Radiohead') 12 True\n",
+ "('spice up your life', 'Spice Girls') Missing 99999 False\n",
+ "('oxygen', 'Spice Girls') Missing 99999 False\n",
+ "('the lady is a vamp', 'Spice Girls') Missing 99999 False\n",
+ "('last time lover', 'Spice Girls') Missing 99999 False\n",
+ "('sweet little angel', 'Muddy Waters') Missing 99999 False\n",
+ "('instrumental 1', 'The Rolling Stones') ('little t a', 'The Rolling Stones') 10 False\n",
+ "('long distance call', 'The Rolling Stones') ('gangsters maul', 'The Rolling Stones') 11 False\n",
+ "('who do you think you are', 'Spice Girls') Missing 99999 False\n",
+ "('wannabe', 'Spice Girls') Missing 99999 False\n",
+ "('one eyed woman', 'The Rolling Stones') ('monkey man', 'The Rolling Stones') 7 True\n",
+ "('love thing', 'Spice Girls') Missing 99999 False\n",
+ "('youre gonna miss me when im gone', 'Muddy Waters') Missing 99999 False\n",
+ "('pepperland laid waste', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 25 True\n",
+ "('outro', 'Jimi Hendrix') Missing 99999 False\n",
+ "('everybody needs somebody to love finale', 'The Rolling Stones') ('everybody needs somebody to love', 'The Rolling Stones') 7 True\n",
+ "('sea of monsters', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 23 True\n",
+ "('2 become 1', 'Spice Girls') Missing 99999 False\n",
+ "('just my imagination', 'The Rolling Stones') ('im moving on', 'The Rolling Stones') 12 True\n",
+ "('say youll be there', 'Spice Girls') Missing 99999 False\n",
+ "('viva forever', 'Spice Girls') Missing 99999 False\n",
+ "('bullet proof i wish i was', 'Radiohead') ('bullet proofi wish i was', 'Radiohead') 1 False\n",
+ "('holler', 'Spice Girls') Missing 99999 False\n",
+ "('flip flop and fly', 'Muddy Waters') Missing 99999 False\n",
+ "('naked', 'Spice Girls') Missing 99999 False\n",
+ "('denying', 'Spice Girls') Missing 99999 False\n",
+ "('clouds in my heart', 'The Rolling Stones') ('pain in my heart', 'The Rolling Stones') 6 True\n",
+ "('when im sixty four', 'The Beatles') ('when im sixtyfour', 'The Beatles') 1 True\n",
+ "('fannie mae', 'The Rolling Stones') ('fanny mae', 'The Rolling Stones') 2 False\n",
+ "('i will los angeles version', 'Radiohead') ('million dollar question', 'Radiohead') 16 False\n",
+ "('little by little shed', 'Radiohead') ('little by little', 'Radiohead') 5 True\n",
+ "('hi heel sneakers', 'The Rolling Stones') ('hiheel sneakers', 'The Rolling Stones') 1 False\n",
+ "('i cant turn you loose', 'Bob Clearmountain') Missing 99999 False\n",
+ "('mama', 'Spice Girls') Missing 99999 False\n",
+ "('faraway eyes', 'The Rolling Stones') ('far away eyes', 'The Rolling Stones') 1 True\n",
+ "('saturday night divas', 'Spice Girls') Missing 99999 False\n",
+ "('jumping jack flash', 'The Rolling Stones') ('jumpin jack flash', 'The Rolling Stones') 1 True\n",
+ "('got my mojo workin', 'The Rolling Stones') ('honky tonk women', 'The Rolling Stones') 10 True\n",
+ "('never give up on the good times', 'Spice Girls') Missing 99999 False\n",
+ "('get down with me', 'Spice Girls') Missing 99999 False\n",
+ "('revolution 1', 'The Beatles') ('revolution i', 'The Beatles') 1 False\n",
+ "('instrumental 2', 'The Rolling Stones') ('little t a', 'The Rolling Stones') 10 False\n",
+ "('weekend love', 'Spice Girls') Missing 99999 False\n",
+ "('country boy', 'Muddy Waters') Missing 99999 False\n",
+ "('move over', 'Spice Girls') Missing 99999 False\n",
+ "('kansas city heyheyheyhey', 'The Beatles') ('medley kansas cityhey hey hey hey', 'The Beatles') 11 False\n",
+ "('dollars cents', 'Radiohead') ('dollars and cents', 'Radiohead') 4 False\n",
+ "('a punch up at a wedding', 'Radiohead') ('a punchup at a wedding', 'Radiohead') 1 False\n",
+ "('too much', 'Spice Girls') Missing 99999 False\n",
+ "('honky tonk woman', 'The Rolling Stones') ('honky tonk women', 'The Rolling Stones') 1 True\n",
+ "('sea of time', 'George Martin') ('yellow submarine in pepperland', 'George Martin') 25 True\n"
+ ]
+ }
+ ],
+ "source": [
+ "banned_substrings = ['rmx', 'remix', 'rework', 'live', 'intro', 'medley']\n",
+ "genius_and_both = genius_only | in_both\n",
+ "for s in spotify_only:\n",
+ " if not any(banned in s[0] for banned in banned_substrings):\n",
+ " candidates = [g for g in genius_and_both if g[1] == s[1]]\n",
+ " if candidates:\n",
+ " gt = min(candidates, key=lambda g: levenshtein(s[0], g[0]))\n",
+ " d = levenshtein(s[0], gt[0])\n",
+ " else:\n",
+ " gt = 'Missing'\n",
+ " d = 99999\n",
+ " print(s, gt, d, gt in in_both)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "('champagne and reefer', 'The Rolling Stones') [(('champagne reefer', 'The Rolling Stones'), 4)]\n",
+ "('key to the highway', 'The Rolling Stones') []\n",
+ "('little ta', 'The Rolling Stones') [(('little baby', 'The Rolling Stones'), 3), (('little t a', 'The Rolling Stones'), 1), (('little rain', 'The Rolling Stones'), 3), (('title 5', 'The Rolling Stones'), 4)]\n",
+ "('pepperland', 'George Martin') []\n",
+ "('you got me rockin', 'The Rolling Stones') [(('you got me rocking', 'The Rolling Stones'), 1)]\n",
+ "('sea of holes', 'George Martin') []\n",
+ "('next time you see me', 'The Rolling Stones') []\n",
+ "('untitled', 'Radiohead') []\n",
+ "('packt like sardines in a crushed tin box', 'Radiohead') [(('packt like sardines in a crushd tin box', 'Radiohead'), 1)]\n",
+ "('march of the meanies', 'George Martin') []\n",
+ "('codex illum sphere', 'Radiohead') []\n",
+ "('charlies intro to little red rooster', 'The Rolling Stones') []\n",
+ "('instrumental 1', 'The Rolling Stones') []\n",
+ "('long distance call', 'The Rolling Stones') []\n",
+ "('one eyed woman', 'The Rolling Stones') []\n",
+ "('martin scorsese intro', 'The Rolling Stones') []\n",
+ "('band introductions', 'The Rolling Stones') []\n",
+ "('pepperland laid waste', 'George Martin') []\n",
+ "('everybody needs somebody to love finale', 'The Rolling Stones') []\n",
+ "('sea of monsters', 'George Martin') []\n",
+ "('just my imagination', 'The Rolling Stones') []\n",
+ "('bullet proof i wish i was', 'Radiohead') [(('bullet proofi wish i was', 'Radiohead'), 1)]\n",
+ "('clouds in my heart', 'The Rolling Stones') []\n",
+ "('when im sixty four', 'The Beatles') [(('when im sixtyfour', 'The Beatles'), 1)]\n",
+ "('fannie mae', 'The Rolling Stones') [(('fanny mae', 'The Rolling Stones'), 2)]\n",
+ "('i will los angeles version', 'Radiohead') []\n",
+ "('little by little shed', 'Radiohead') []\n",
+ "('hi heel sneakers', 'The Rolling Stones') [(('hiheel sneakers', 'The Rolling Stones'), 1)]\n",
+ "('bloom jamie xx rework', 'Radiohead') []\n",
+ "('faraway eyes', 'The Rolling Stones') [(('far away eyes', 'The Rolling Stones'), 1)]\n",
+ "('jumping jack flash', 'The Rolling Stones') [(('jumpin jack flash', 'The Rolling Stones'), 1)]\n",
+ "('got my mojo workin', 'The Rolling Stones') []\n",
+ "('revolution 1', 'The Beatles') [(('revolution i', 'The Beatles'), 1), (('revolution 9', 'The Beatles'), 1), (('revolution', 'The Beatles'), 2)]\n",
+ "('instrumental 2', 'The Rolling Stones') []\n",
+ "('kansas city heyheyheyhey', 'The Beatles') []\n",
+ "('dollars cents', 'Radiohead') [(('dollars and cents', 'Radiohead'), 4)]\n",
+ "('a punch up at a wedding', 'Radiohead') [(('a punchup at a wedding', 'Radiohead'), 1)]\n",
+ "('honky tonk woman', 'The Rolling Stones') [(('honky tonk women', 'The Rolling Stones'), 1)]\n",
+ "('sea of time', 'George Martin') []\n"
+ ]
+ }
+ ],
+ "source": [
+ "genius_and_both = genius_only | in_both\n",
+ "for s in spotify_only:\n",
+ " if 'rmx' not in s[0] and 'remix' not in s[0] and 'live' not in s[0]:\n",
+ "# album = \n",
+ " candidates = [g for g in genius_and_both if g[1] == s[1]]\n",
+ " if candidates:\n",
+ " gts = [(g, levenshtein(s[0], g[0])) for g in candidates if levenshtein(s[0], g[0]) < 5]\n",
+ " print(s, gts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style>\n",
+ " .dataframe thead tr:only-child th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: left;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Magical Mystery Tour (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>1PULmKbHeOqlkIwcDMNwD4</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Remaste...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0PYyrqs9NXtxPhf0CZkq2L</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolver (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3OdI6e43crvyAHhaqpxSyz</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Rubber Soul (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>1DBkJIEoeHrTX4WCBQGcCi</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The King Of Limbs</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>6vuykQgDLUCiZ7YggIpLM9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>A Moon Shaped Pool</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>47xaqCsJcYFWqD1gwujl1T</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>TKOL RMX 1234567</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>7eyQXxuf2nGj9d2367Gi5f</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>36lJLPoPPOKNFddTAcirnc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows Disk 2</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>6Eo5EkmdLvZrONzi046iC2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Com Lag: 2+2=5</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>1oW3v5Har9mvXnGk0x4fHm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Hail To the Thief</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>22</th>\n",
+ " <td>6svTt5o2lUgIrgYDKVmdnD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>I Might Be Wrong</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>6V9YnBmFjWmXCBaUVRCVXP</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Amnesiac</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>19RUXBFyM4PpmrLRdtqWbp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Kid A</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>7dxKtc08dYeRVHt3p9CZJn</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>OK Computer</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>500FEaUzn8lN9zWFyZG5C2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>6400dnyeDyD2mIFHfkwHXN</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Pablo Honey</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>28</th>\n",
+ " <td>4g9Jfls8z2nbQxj5PiXkiy</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Blue & Lonesome</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>29</th>\n",
+ " <td>4fhWcu56Bbh5wALuTouFVW</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Havana Moon (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>...</th>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>32</th>\n",
+ " <td>3CHu7qW160uqPZHW3TMZ1l</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Shine A Light</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>33</th>\n",
+ " <td>4FTHynKEtuP7eppERNfjyG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>A Bigger Bang (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>50UGtgNA5bq1c0BDjPfmbD</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Live Licks</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>35</th>\n",
+ " <td>0ZGddnvcVzHVHfE3WW1tV5</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Bridges To Babylon (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>36</th>\n",
+ " <td>4M8Q1L9PZq0xK5tLUpO3jd</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Stripped</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>37</th>\n",
+ " <td>62ZT16LY1phGM0O8x5qW1z</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Voodoo Lounge (Remastered 2009)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>38</th>\n",
+ " <td>1W1UJulgICjFDyYIMUwRs7</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Flashpoint</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>39</th>\n",
+ " <td>25mfHGJNQkluvIqedXHSx3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Steel Wheels (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>40</th>\n",
+ " <td>1TpcI1LEFVhBvDPSTMPGFG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>41</th>\n",
+ " <td>1WSfNoPDPzgyKFN6OSYWUx</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work (Remastered 2009)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>42</th>\n",
+ " <td>064eFGemsrDcMvgRZ0gqtw</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Undercover (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>43</th>\n",
+ " <td>0hxrNynMDh5QeyALlf1CdS</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Still Life</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>44</th>\n",
+ " <td>1YvnuYGlblQ5vLnOhaZzpn</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Tattoo You (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>45</th>\n",
+ " <td>2wZgoXS06wSdu9C0ZJOvlc</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Emotional Rescue (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>46</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>47</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>48</th>\n",
+ " <td>4jbWZmf7kRxCBD6tgVepYh</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Forever</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>49</th>\n",
+ " <td>3sr6lAuO3nmB1u8ZuQgpiX</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Spiceworld</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>50</th>\n",
+ " <td>3x2jF7blR6bFHtk4MccsyJ</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Spice</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>51</th>\n",
+ " <td>3LXItxKnnJcEDc5QdTc00n</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Deluxe ...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>52</th>\n",
+ " <td>7Hk1X2BCADxuR9saTIKfOW</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>On Air (Deluxe)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>53</th>\n",
+ " <td>6iCIB08bkoitQOL5y2uEsM</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Sticky Fingers Live At The Fonda Theatre</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>54</th>\n",
+ " <td>34d9ClCaKRoQ8pMeJ9Gfvt</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Ladies & Gentlemen (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>55</th>\n",
+ " <td>0aWIIpfY32rT1i3yO9LROl</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>56</th>\n",
+ " <td>5D7RtaChuvF0Av1xXT3acu</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Brixton (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>57</th>\n",
+ " <td>2b3y5k1DchDACjH5KMlgQv</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Amsterdam (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>58</th>\n",
+ " <td>3wkyUMDuH56iNaSxKvukax</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Paris (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>59</th>\n",
+ " <td>6hB5kO3oV3tlnblCNSSA9Z</td>\n",
+ " <td>Muddy Waters</td>\n",
+ " <td>Live At The Checkerboard Lounge</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>60</th>\n",
+ " <td>3yNf6JVyEEqvM4OqKEmZSC</td>\n",
+ " <td>Muddy Waters</td>\n",
+ " <td>Live At The Checkerboard Lounge</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>61</th>\n",
+ " <td>2gCp8kyDcL93s4kVP4VMTC</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls: Live In Texas '78</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>62 rows × 3 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "0 5XfJmldgWzrc1AIdbBaVZn The Beatles \n",
+ "1 5ju5Ouzan3QwXqQt1Tihbh The Beatles \n",
+ "2 2pCqZLeavM2BMovJXsJEIV The Beatles \n",
+ "3 2Pqkn9Dq2DFtdfkKAeqgMd The Beatles \n",
+ "4 47bcKzmKgmMPHXNVOWpLiu The Beatles \n",
+ "5 03Qh833fEdVT30Pfs93ea6 The Beatles \n",
+ "6 6P9yO0ukhOx3dvmhGKeYoC The Beatles \n",
+ "7 1PULmKbHeOqlkIwcDMNwD4 The Beatles \n",
+ "8 0PYyrqs9NXtxPhf0CZkq2L The Beatles \n",
+ "9 3OdI6e43crvyAHhaqpxSyz The Beatles \n",
+ "10 19K3IHYeVkUTjcBHGfbCOi The Beatles \n",
+ "11 7BgGBZndAvDlKOcwe5rscZ The Beatles \n",
+ "12 71Mwd9tntFQYUk4k2DwA0D The Beatles \n",
+ "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead \n",
+ "14 3nkEsxmIX0zRNXGAexaHAn The Beatles \n",
+ "15 7gDXyW16byCQOgK965BRzn The Beatles \n",
+ "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead \n",
+ "17 47xaqCsJcYFWqD1gwujl1T Radiohead \n",
+ "18 7eyQXxuf2nGj9d2367Gi5f Radiohead \n",
+ "19 36lJLPoPPOKNFddTAcirnc Radiohead \n",
+ "20 6Eo5EkmdLvZrONzi046iC2 Radiohead \n",
+ "21 1oW3v5Har9mvXnGk0x4fHm Radiohead \n",
+ "22 6svTt5o2lUgIrgYDKVmdnD Radiohead \n",
+ "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead \n",
+ "24 19RUXBFyM4PpmrLRdtqWbp Radiohead \n",
+ "25 7dxKtc08dYeRVHt3p9CZJn Radiohead \n",
+ "26 500FEaUzn8lN9zWFyZG5C2 Radiohead \n",
+ "27 6400dnyeDyD2mIFHfkwHXN Radiohead \n",
+ "28 4g9Jfls8z2nbQxj5PiXkiy The Rolling Stones \n",
+ "29 4fhWcu56Bbh5wALuTouFVW The Rolling Stones \n",
+ ".. ... ... \n",
+ "32 3CHu7qW160uqPZHW3TMZ1l The Rolling Stones \n",
+ "33 4FTHynKEtuP7eppERNfjyG The Rolling Stones \n",
+ "34 50UGtgNA5bq1c0BDjPfmbD The Rolling Stones \n",
+ "35 0ZGddnvcVzHVHfE3WW1tV5 The Rolling Stones \n",
+ "36 4M8Q1L9PZq0xK5tLUpO3jd The Rolling Stones \n",
+ "37 62ZT16LY1phGM0O8x5qW1z The Rolling Stones \n",
+ "38 1W1UJulgICjFDyYIMUwRs7 The Rolling Stones \n",
+ "39 25mfHGJNQkluvIqedXHSx3 The Rolling Stones \n",
+ "40 1TpcI1LEFVhBvDPSTMPGFG The Rolling Stones \n",
+ "41 1WSfNoPDPzgyKFN6OSYWUx The Rolling Stones \n",
+ "42 064eFGemsrDcMvgRZ0gqtw The Rolling Stones \n",
+ "43 0hxrNynMDh5QeyALlf1CdS The Rolling Stones \n",
+ "44 1YvnuYGlblQ5vLnOhaZzpn The Rolling Stones \n",
+ "45 2wZgoXS06wSdu9C0ZJOvlc The Rolling Stones \n",
+ "46 54sqbAXxR1jFfyXb1WvrHK The Rolling Stones \n",
+ "47 6FjXxl9VLURGuubdXUn2J3 The Rolling Stones \n",
+ "48 4jbWZmf7kRxCBD6tgVepYh Spice Girls \n",
+ "49 3sr6lAuO3nmB1u8ZuQgpiX Spice Girls \n",
+ "50 3x2jF7blR6bFHtk4MccsyJ Spice Girls \n",
+ "51 3LXItxKnnJcEDc5QdTc00n The Beatles \n",
+ "52 7Hk1X2BCADxuR9saTIKfOW The Rolling Stones \n",
+ "53 6iCIB08bkoitQOL5y2uEsM The Rolling Stones \n",
+ "54 34d9ClCaKRoQ8pMeJ9Gfvt The Rolling Stones \n",
+ "55 0aWIIpfY32rT1i3yO9LROl The Rolling Stones \n",
+ "56 5D7RtaChuvF0Av1xXT3acu The Rolling Stones \n",
+ "57 2b3y5k1DchDACjH5KMlgQv The Rolling Stones \n",
+ "58 3wkyUMDuH56iNaSxKvukax The Rolling Stones \n",
+ "59 6hB5kO3oV3tlnblCNSSA9Z Muddy Waters \n",
+ "60 3yNf6JVyEEqvM4OqKEmZSC Muddy Waters \n",
+ "61 2gCp8kyDcL93s4kVP4VMTC The Rolling Stones \n",
+ "\n",
+ " name \n",
+ "0 Live At The Hollywood Bowl \n",
+ "1 1 (Remastered) \n",
+ "2 Let It Be (Remastered) \n",
+ "3 Abbey Road (Remastered) \n",
+ "4 Yellow Submarine (Remastered) \n",
+ "5 The Beatles (Remastered) \n",
+ "6 Magical Mystery Tour (Remastered) \n",
+ "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... \n",
+ "8 Revolver (Remastered) \n",
+ "9 Rubber Soul (Remastered) \n",
+ "10 Help! (Remastered) \n",
+ "11 Beatles For Sale (Remastered) \n",
+ "12 A Hard Day's Night (Remastered) \n",
+ "13 The King Of Limbs \n",
+ "14 With The Beatles (Remastered) \n",
+ "15 Please Please Me (Remastered) \n",
+ "16 A Moon Shaped Pool \n",
+ "17 TKOL RMX 1234567 \n",
+ "18 In Rainbows \n",
+ "19 In Rainbows Disk 2 \n",
+ "20 Com Lag: 2+2=5 \n",
+ "21 Hail To the Thief \n",
+ "22 I Might Be Wrong \n",
+ "23 Amnesiac \n",
+ "24 Kid A \n",
+ "25 OK Computer \n",
+ "26 The Bends \n",
+ "27 Pablo Honey \n",
+ "28 Blue & Lonesome \n",
+ "29 Havana Moon (Live) \n",
+ ".. ... \n",
+ "32 Shine A Light \n",
+ "33 A Bigger Bang (2009 Re-Mastered) \n",
+ "34 Live Licks \n",
+ "35 Bridges To Babylon (Remastered) \n",
+ "36 Stripped \n",
+ "37 Voodoo Lounge (Remastered 2009) \n",
+ "38 Flashpoint \n",
+ "39 Steel Wheels (2009 Re-Mastered) \n",
+ "40 Dirty Work \n",
+ "41 Dirty Work (Remastered 2009) \n",
+ "42 Undercover (2009 Re-Mastered) \n",
+ "43 Still Life \n",
+ "44 Tattoo You (2009 Re-Mastered) \n",
+ "45 Emotional Rescue (2009 Re-Mastered) \n",
+ "46 Some Girls \n",
+ "47 Some Girls (Deluxe Version) \n",
+ "48 Forever \n",
+ "49 Spiceworld \n",
+ "50 Spice \n",
+ "51 Sgt. Pepper's Lonely Hearts Club Band (Deluxe ... \n",
+ "52 On Air (Deluxe) \n",
+ "53 Sticky Fingers Live At The Fonda Theatre \n",
+ "54 Ladies & Gentlemen (Live) \n",
+ "55 Totally Stripped (Live) \n",
+ "56 Totally Stripped - Brixton (Live) \n",
+ "57 Totally Stripped - Amsterdam (Live) \n",
+ "58 Totally Stripped - Paris (Live) \n",
+ "59 Live At The Checkerboard Lounge \n",
+ "60 Live At The Checkerboard Lounge \n",
+ "61 Some Girls: Live In Texas '78 \n",
+ "\n",
+ "[62 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 74,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(albums.find({}, ['artist_name', 'name'])))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "Manually fix a couple of errors."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<pymongo.results.UpdateResult at 0x7f97602b8ec8>"
+ ]
+ },
+ "execution_count": 75,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_tracks.update_many({'ctitle': 'revolution i'}, \n",
+ " {'$set': {'ctitle': 'revolution 1'}})\n",
+ "genius_tracks.update_many({'ctitle': 'when im sixtyfour'}, \n",
+ " {'$set': {'ctitle': 'when im sixty four'}})\n",
+ "genius_tracks.update_many({'ctitle': 'packt like sardines in a crushd tin box'}, \n",
+ " {'$set': {'ctitle': 'packt like sardines in a crushed tin box'}})\n",
+ "genius_tracks.update_many({'ctitle': 'a punchup at a wedding'}, \n",
+ " {'$set': {'ctitle': 'a punch up at a wedding'}})\n",
+ "genius_tracks.update_many({'ctitle': 'dollars cents'}, \n",
+ " {'$set': {'ctitle': 'dollars and cents'}})\n",
+ "genius_tracks.update_many({'ctitle': 'bullet proofi wish i was'}, \n",
+ " {'$set': {'ctitle': 'bullet proof i wish i was'}})\n",
+ "genius_tracks.update_many({'ctitle': 'jumpin jack flash'}, \n",
+ " {'$set': {'ctitle': 'jumping jack flash'}})\n",
+ "genius_tracks.update_many({'ctitle': 'far away eyes'}, \n",
+ " {'$set': {'ctitle': 'faraway eyes'}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(532, 516, 103)"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "in_both = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "genius_only = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if not tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "spotify_only = set(s['ctitle'] for s in tracks.find({}, ['ctitle']) if not genius_tracks.find({'ctitle': s['ctitle']}).count())\n",
+ "len(in_both), len(genius_only), len(spotify_only)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Copy the lyrics over<a name=\"copylyrics\"></a>\n",
+ "Now can can connect the tracks, let's copy across the lyrics from the Genius collection into the Spotify collection. We'll calculate the lyrical density at the same time.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for t in tracks.find({}, ['ctitle', 'duration_ms']):\n",
+ " gts = genius_tracks.find({'ctitle': t['ctitle'], 'lyrics': {'$exists': True}}, ['lyrics', 'original_lyrics'])\n",
+ " for gt in gts:\n",
+ " tracks.update_one({'_id': t['_id']}, \n",
+ " {'$set': {'lyrics': gt['lyrics'], \n",
+ " 'original_lyrics': gt['original_lyrics'],\n",
+ " 'lyrical_density': 1000 * len(gt['lyrics'].split()) / t['duration_ms']}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Sentiment analysis<a name=\"sentimentanalysis\"></a>\n",
+ "I couldn't find an easily-installable equivalent to the NRC corpus, so I'm using a sentiment analysis API endpoint from [Text Processing](http://text-processing.com/docs/sentiment.html).\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "for t in tracks.find({'lyrics': {'$exists': True}}, ['lyrics']):\n",
+ " text = t['lyrics']\n",
+ " if text:\n",
+ " query = urllib.parse.urlencode({'text': text}).encode('ascii')\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request('http://text-processing.com/api/sentiment/', \n",
+ " headers=headers, data=query)\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " tracks.update_one({'_id': t['_id']}, {'$set': {'sentiment': response}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "dict_keys(['explicit', 'artist_name', 'lyrics', 'uri', 'track_number', 'mode', 'album_id', '_id', 'preview_url', 'acousticness', 'liveness', 'energy', 'disc_number', 'valence', 'artist_id', 'lyrical_density', 'ctitle', 'popularity', 'original_lyrics', 'speechiness', 'sentiment', 'loudness', 'href', 'available_markets', 'type', 'name', 'external_ids', 'artists', 'id', 'key', 'instrumentalness', 'album', 'time_signature', 'danceability', 'duration_ms', 'tempo', 'external_urls', 'analysis_url', 'track_href'])"
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find_one({'sentiment': {'$exists': True}}).keys()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': '1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'acousticness': 0.148,\n",
+ " 'album': {'album_type': 'album',\n",
+ " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/22bE4uQ6baNwSHPVcDxLCe'},\n",
+ " 'href': 'https://api.spotify.com/v1/artists/22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'id': '22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'name': 'The Rolling Stones',\n",
+ " 'type': 'artist',\n",
+ " 'uri': 'spotify:artist:22bE4uQ6baNwSHPVcDxLCe'}],\n",
+ " 'available_markets': ['GB'],\n",
+ " 'external_urls': {'spotify': 'https://open.spotify.com/album/3PbRKFafwE7Of8e4dTee72'},\n",
+ " 'href': 'https://api.spotify.com/v1/albums/3PbRKFafwE7Of8e4dTee72',\n",
+ " 'id': '3PbRKFafwE7Of8e4dTee72',\n",
+ " 'images': [{'height': 640,\n",
+ " 'url': 'https://i.scdn.co/image/4bd988736fe53e8109488f0f390cdfd5d119762d',\n",
+ " 'width': 640},\n",
+ " {'height': 300,\n",
+ " 'url': 'https://i.scdn.co/image/b5c53642ccdaac3120aa766ce5e29d9c1b61794f',\n",
+ " 'width': 300},\n",
+ " {'height': 64,\n",
+ " 'url': 'https://i.scdn.co/image/9c6e2872cbd2688c528d5d43c57651d12c19eec1',\n",
+ " 'width': 64}],\n",
+ " 'name': 'Totally Stripped (Live)',\n",
+ " 'type': 'album',\n",
+ " 'uri': 'spotify:album:3PbRKFafwE7Of8e4dTee72'},\n",
+ " 'album_id': '3PbRKFafwE7Of8e4dTee72',\n",
+ " 'analysis_url': 'https://api.spotify.com/v1/audio-analysis/1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'artist_id': '22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'artist_name': 'The Rolling Stones',\n",
+ " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/22bE4uQ6baNwSHPVcDxLCe'},\n",
+ " 'href': 'https://api.spotify.com/v1/artists/22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'id': '22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'name': 'The Rolling Stones',\n",
+ " 'type': 'artist',\n",
+ " 'uri': 'spotify:artist:22bE4uQ6baNwSHPVcDxLCe'}],\n",
+ " 'available_markets': ['GB'],\n",
+ " 'ctitle': 'not fade away',\n",
+ " 'danceability': 0.282,\n",
+ " 'disc_number': 1,\n",
+ " 'duration_ms': 191787,\n",
+ " 'energy': 0.883,\n",
+ " 'explicit': False,\n",
+ " 'external_ids': {'isrc': 'GBCBR1500391'},\n",
+ " 'external_urls': {'spotify': 'https://open.spotify.com/track/1jgefM2ZP7RnPVShhy1eUM'},\n",
+ " 'href': 'https://api.spotify.com/v1/tracks/1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'id': '1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'instrumentalness': 0.00116,\n",
+ " 'key': 9,\n",
+ " 'liveness': 0.969,\n",
+ " 'loudness': -7.634,\n",
+ " 'lyrical_density': 0.6934776601125207,\n",
+ " 'lyrics': \"i'm going to tell you how it's going to be you're going to give your love to me i'm going to love you night and day well love is love and not fade away well love is love and not fade away my love is bigger than a cadillac i try to show it and you're driving me back your love for me has got to be real for you to know just how i feel love is real and not fade away well love is real and not fade away i'm going to tell you how it's going to be you're going to give your love to me i'm going to love you night and day well love is love and not fade away well love is love and not fade away\",\n",
+ " 'mode': 1,\n",
+ " 'name': 'Not Fade Away - Live',\n",
+ " 'original_lyrics': \"\\n\\n[Chorus]\\nI'm going to tell you how it's going to be\\nYou're going to give your love to me\\nI'm going to love you night and day\\nWell love is love and not fade away\\nWell love is love and not fade away\\n\\n[Verse]\\nMy love is bigger than a Cadillac\\nI try to show it and you're driving me back\\nYour love for me has got to be real\\nFor you to know just how I feel\\nLove is real and not fade away\\nWell love is real and not fade away\\n\\n[Chorus]\\nI'm going to tell you how it's going to be\\nYou're going to give your love to me\\nI'm going to love you night and day\\nWell love is love and not fade away\\nWell love is love and not fade away\\n\\n\",\n",
+ " 'popularity': 14,\n",
+ " 'preview_url': 'https://p.scdn.co/mp3-preview/bba1991141c6e594e0d6cee95bfd55357958e2fa?cid=62cfd0fb31d949b091487f6b71bd39ec',\n",
+ " 'sentiment': {'label': 'pos',\n",
+ " 'probability': {'neg': 0.4330417519459868,\n",
+ " 'neutral': 0.16422979866211163,\n",
+ " 'pos': 0.5669582480540132}},\n",
+ " 'speechiness': 0.0936,\n",
+ " 'tempo': 99.59,\n",
+ " 'time_signature': 4,\n",
+ " 'track_href': 'https://api.spotify.com/v1/tracks/1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'track_number': 1,\n",
+ " 'type': 'audio_features',\n",
+ " 'uri': 'spotify:track:1jgefM2ZP7RnPVShhy1eUM',\n",
+ " 'valence': 0.678}"
+ ]
+ },
+ "execution_count": 80,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find_one({'sentiment': {'$exists': True}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(790, 134)"
+ ]
+ },
+ "execution_count": 81,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find({'sentiment': {'$exists': True}}).count(), tracks.find({'sentiment': {'$exists': False}}).count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "8"
+ ]
+ },
+ "execution_count": 82,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find({'sentiment': {'$exists': False}, 'lyrics': {'$exists': True}}).count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style>\n",
+ " .dataframe thead tr:only-child th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: left;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrics</th>\n",
+ " <th>name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>47DgFAFnhfwoSko23P7pz5</td>\n",
+ " <td>George Martin</td>\n",
+ " <td></td>\n",
+ " <td>Yellow Submarine In Pepperland - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>2z1p43SNSbeowzy8WdYHNk</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td></td>\n",
+ " <td>Flying - Remastered 2009</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>3gKuywOm38axM8sJGq6Laq</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>MK 1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2uYSbsxAMmK1awUl06T7ix</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>MK 2</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>1q6X5sJSWQ2QnqvPghR0Kr</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>I Am Citizen Insane</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>4blz5SBUxKbtDNwMWstGNG</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>Where Bluebirds Fly</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>2zYrFer4QGSQkk5aUawfHB</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>Hunting Bears</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>4DPQvbgSM0IdX4O3HOACwL</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td></td>\n",
+ " <td>Treefingers</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrics \\\n",
+ "0 47DgFAFnhfwoSko23P7pz5 George Martin \n",
+ "1 2z1p43SNSbeowzy8WdYHNk The Beatles \n",
+ "2 3gKuywOm38axM8sJGq6Laq Radiohead \n",
+ "3 2uYSbsxAMmK1awUl06T7ix Radiohead \n",
+ "4 1q6X5sJSWQ2QnqvPghR0Kr Radiohead \n",
+ "5 4blz5SBUxKbtDNwMWstGNG Radiohead \n",
+ "6 2zYrFer4QGSQkk5aUawfHB Radiohead \n",
+ "7 4DPQvbgSM0IdX4O3HOACwL Radiohead \n",
+ "\n",
+ " name \n",
+ "0 Yellow Submarine In Pepperland - Remastered \n",
+ "1 Flying - Remastered 2009 \n",
+ "2 MK 1 \n",
+ "3 MK 2 \n",
+ "4 I Am Citizen Insane \n",
+ "5 Where Bluebirds Fly \n",
+ "6 Hunting Bears \n",
+ "7 Treefingers "
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(tracks.find({'sentiment': {'$exists': False}, \n",
+ " 'lyrics': {'$exists': True}}, \n",
+ " ['name', 'artist_name', 'lyrics'])))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[{'_id': '47DgFAFnhfwoSko23P7pz5',\n",
+ " 'artist_name': 'George Martin',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'Yellow Submarine In Pepperland - Remastered',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '2z1p43SNSbeowzy8WdYHNk',\n",
+ " 'artist_name': 'The Beatles',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'Flying - Remastered 2009',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '3gKuywOm38axM8sJGq6Laq',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'MK 1',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '2uYSbsxAMmK1awUl06T7ix',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'MK 2',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '1q6X5sJSWQ2QnqvPghR0Kr',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'I Am Citizen Insane',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '4blz5SBUxKbtDNwMWstGNG',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'Where Bluebirds Fly',\n",
+ " 'original_lyrics': '\\n\\n[Distorted \"Somewhere Over The Rainbow\" lyrics]\\n\\n'},\n",
+ " {'_id': '2zYrFer4QGSQkk5aUawfHB',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'Hunting Bears',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'},\n",
+ " {'_id': '4DPQvbgSM0IdX4O3HOACwL',\n",
+ " 'artist_name': 'Radiohead',\n",
+ " 'lyrics': '',\n",
+ " 'name': 'Treefingers',\n",
+ " 'original_lyrics': '\\n\\n[Instrumental]\\n\\n'}]"
+ ]
+ },
+ "execution_count": 84,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "list(tracks.find({'sentiment': {'$exists': False}, \n",
+ " 'lyrics': {'$exists': True}}, \n",
+ " ['name', 'artist_name', 'lyrics', 'original_lyrics']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<pymongo.results.UpdateResult at 0x7f976c0bbd08>"
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.update_many({'lyrics': ''}, {'$unset': {'lyrics': ''}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style>\n",
+ " .dataframe thead tr:only-child th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: left;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ "Empty DataFrame\n",
+ "Columns: []\n",
+ "Index: []"
+ ]
+ },
+ "execution_count": 86,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(tracks.find({'sentiment': {'$exists': False}, \n",
+ " 'lyrics': {'$exists': True}}, \n",
+ " ['name', 'artist_name', 'lyrics'])))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Remove live and duplicate tracks<a name=\"removedupliates\"></a>\n",
+ "We don't want to include tracks from live albums and tracks that appear more than once, such as on deluxe, remastered, and basic versions of albums.\n",
+ "\n",
+ "There's no quick and easy way to do this, so this section is just a lot of faffing around. The upshot is that the tracks we want to ignore will end up with an `ignore: True` tag on them, and they will be filtered out in a view for the analysis later.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 87,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style>\n",
+ " .dataframe thead tr:only-child th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: left;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>release_date</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>2016-09-09</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>2000-11-13</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " <td>1970-05-08</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " <td>1969-09-26</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " <td>1969-01-17</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles (Remastered)</td>\n",
+ " <td>1968-11-22</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Magical Mystery Tour (Remastered)</td>\n",
+ " <td>1967-11-27</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>1PULmKbHeOqlkIwcDMNwD4</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Remaste...</td>\n",
+ " <td>1967-06-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0PYyrqs9NXtxPhf0CZkq2L</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolver (Remastered)</td>\n",
+ " <td>1966-08-05</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3OdI6e43crvyAHhaqpxSyz</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Rubber Soul (Remastered)</td>\n",
+ " <td>1965-12-03</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " <td>1965-08-06</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " <td>1964-12-04</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " <td>1964-07-10</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>1DBkJIEoeHrTX4WCBQGcCi</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The King Of Limbs</td>\n",
+ " <td>2011-02-18</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " <td>1963-11-22</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " <td>1963-03-22</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>6vuykQgDLUCiZ7YggIpLM9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>A Moon Shaped Pool</td>\n",
+ " <td>2016-05-08</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>47xaqCsJcYFWqD1gwujl1T</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>TKOL RMX 1234567</td>\n",
+ " <td>2011-10-10</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>7eyQXxuf2nGj9d2367Gi5f</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows</td>\n",
+ " <td>2007-12-28</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>36lJLPoPPOKNFddTAcirnc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows Disk 2</td>\n",
+ " <td>2007</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>6Eo5EkmdLvZrONzi046iC2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Com Lag: 2+2=5</td>\n",
+ " <td>2004-03-24</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>1oW3v5Har9mvXnGk0x4fHm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Hail To the Thief</td>\n",
+ " <td>2003</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>22</th>\n",
+ " <td>6svTt5o2lUgIrgYDKVmdnD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>I Might Be Wrong</td>\n",
+ " <td>2001</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>6V9YnBmFjWmXCBaUVRCVXP</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Amnesiac</td>\n",
+ " <td>2001-03-12</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>19RUXBFyM4PpmrLRdtqWbp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Kid A</td>\n",
+ " <td>2000-10-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>7dxKtc08dYeRVHt3p9CZJn</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>OK Computer</td>\n",
+ " <td>1997-05-28</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>500FEaUzn8lN9zWFyZG5C2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>1995-03-28</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>6400dnyeDyD2mIFHfkwHXN</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Pablo Honey</td>\n",
+ " <td>1993-02-22</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>28</th>\n",
+ " <td>4g9Jfls8z2nbQxj5PiXkiy</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Blue & Lonesome</td>\n",
+ " <td>2016-12-02</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>29</th>\n",
+ " <td>4fhWcu56Bbh5wALuTouFVW</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Havana Moon (Live)</td>\n",
+ " <td>2016-11-11</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>...</th>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>32</th>\n",
+ " <td>3CHu7qW160uqPZHW3TMZ1l</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Shine A Light</td>\n",
+ " <td>2008-01-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>33</th>\n",
+ " <td>4FTHynKEtuP7eppERNfjyG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>A Bigger Bang (2009 Re-Mastered)</td>\n",
+ " <td>2005-09-05</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>50UGtgNA5bq1c0BDjPfmbD</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Live Licks</td>\n",
+ " <td>2004-11-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>35</th>\n",
+ " <td>0ZGddnvcVzHVHfE3WW1tV5</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Bridges To Babylon (Remastered)</td>\n",
+ " <td>1997-09-29</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>36</th>\n",
+ " <td>4M8Q1L9PZq0xK5tLUpO3jd</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Stripped</td>\n",
+ " <td>1995-01-13</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>37</th>\n",
+ " <td>62ZT16LY1phGM0O8x5qW1z</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Voodoo Lounge (Remastered 2009)</td>\n",
+ " <td>1994-07-11</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>38</th>\n",
+ " <td>1W1UJulgICjFDyYIMUwRs7</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Flashpoint</td>\n",
+ " <td>1991-04-02</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>39</th>\n",
+ " <td>25mfHGJNQkluvIqedXHSx3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Steel Wheels (2009 Re-Mastered)</td>\n",
+ " <td>1989-08-29</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>40</th>\n",
+ " <td>1TpcI1LEFVhBvDPSTMPGFG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work</td>\n",
+ " <td>1986-03-24</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>41</th>\n",
+ " <td>1WSfNoPDPzgyKFN6OSYWUx</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work (Remastered 2009)</td>\n",
+ " <td>1986-03-24</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>42</th>\n",
+ " <td>064eFGemsrDcMvgRZ0gqtw</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Undercover (2009 Re-Mastered)</td>\n",
+ " <td>1983-11-07</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>43</th>\n",
+ " <td>0hxrNynMDh5QeyALlf1CdS</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Still Life</td>\n",
+ " <td>1982-06-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>44</th>\n",
+ " <td>1YvnuYGlblQ5vLnOhaZzpn</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Tattoo You (2009 Re-Mastered)</td>\n",
+ " <td>1981-08-24</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>45</th>\n",
+ " <td>2wZgoXS06wSdu9C0ZJOvlc</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Emotional Rescue (2009 Re-Mastered)</td>\n",
+ " <td>1980-06-20</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>46</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>1978-06-09</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>47</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>1978-06-09</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>48</th>\n",
+ " <td>4jbWZmf7kRxCBD6tgVepYh</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Forever</td>\n",
+ " <td>2000-11-06</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>49</th>\n",
+ " <td>3sr6lAuO3nmB1u8ZuQgpiX</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Spiceworld</td>\n",
+ " <td>1997-11-03</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>50</th>\n",
+ " <td>3x2jF7blR6bFHtk4MccsyJ</td>\n",
+ " <td>Spice Girls</td>\n",
+ " <td>Spice</td>\n",
+ " <td>1996-11-04</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>51</th>\n",
+ " <td>3LXItxKnnJcEDc5QdTc00n</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Deluxe ...</td>\n",
+ " <td>1967-06-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>52</th>\n",
+ " <td>7Hk1X2BCADxuR9saTIKfOW</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>On Air (Deluxe)</td>\n",
+ " <td>2017-12-01</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>53</th>\n",
+ " <td>6iCIB08bkoitQOL5y2uEsM</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Sticky Fingers Live At The Fonda Theatre</td>\n",
+ " <td>2017-09-29</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>54</th>\n",
+ " <td>34d9ClCaKRoQ8pMeJ9Gfvt</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Ladies & Gentlemen (Live)</td>\n",
+ " <td>2017-06-07</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>55</th>\n",
+ " <td>0aWIIpfY32rT1i3yO9LROl</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped (Live)</td>\n",
+ " <td>2016-06-17</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>56</th>\n",
+ " <td>5D7RtaChuvF0Av1xXT3acu</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Brixton (Live)</td>\n",
+ " <td>2016-06-06</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>57</th>\n",
+ " <td>2b3y5k1DchDACjH5KMlgQv</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Amsterdam (Live)</td>\n",
+ " <td>2016-06-03</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>58</th>\n",
+ " <td>3wkyUMDuH56iNaSxKvukax</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped - Paris (Live)</td>\n",
+ " <td>2016-05-20</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>59</th>\n",
+ " <td>6hB5kO3oV3tlnblCNSSA9Z</td>\n",
+ " <td>Muddy Waters</td>\n",
+ " <td>Live At The Checkerboard Lounge</td>\n",
+ " <td>2012-07-09</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>60</th>\n",
+ " <td>3yNf6JVyEEqvM4OqKEmZSC</td>\n",
+ " <td>Muddy Waters</td>\n",
+ " <td>Live At The Checkerboard Lounge</td>\n",
+ " <td>2012-07-09</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>61</th>\n",
+ " <td>2gCp8kyDcL93s4kVP4VMTC</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls: Live In Texas '78</td>\n",
+ " <td>2011-11-21</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>62 rows × 4 columns</p>\n",
+ "</div>"
+ ],