def clean_playlist(playlist_name): playlist_id = create_playlist(sp, playlist_name, '') results = sp.playlist_tracks(playlist_id) playlist_tracks = [] for result in results['items']: playlist_tracks.append(result['track']) while results['next']: results = sp.next(results) for result in results['items']: playlist_tracks.append(result['track']) remove_tracks = [] for track in playlist_tracks: id = track['id'] keys = create_key(track) # In case song has same name but extra artist for remix. should_remove = True for key in keys: if not key_in_history(key): should_remove = False break if should_remove: remove_tracks.append(id) remove_tracks_from_playlist(remove_tracks, playlist_name) remove_duplicates_in_playlist(playlist_name)
def create_test_playlist(self): test_playlist_name = 'TEST_PLAYLIST_01' test_playlist_description = 'TEST PLAYLIST DESCRIPTION' new_test_playlist = create_playlist(test_playlist_name, test_playlist_description) logging.info(new_test_playlist) yield new_test_playlist
def clean_playlist(playlist_name): playlist_id = create_playlist(sp, playlist_name, '') results = sp.playlist_tracks(playlist_id) remove_tracks = [] for result in results['items']: track_id = result['track']['id'] if in_file(track_id): remove_tracks.append(track_id) while results['next']: results = sp.next(results) for result in results['items']: track_id = result['track']['id'] if in_file(track_id): remove_tracks.append(track_id) # for track in remove_tracks: # print('removing : ' + str(remove_tracks)) print('Removing ' + str(len(remove_tracks)) + ' tracks from ' + playlist_name) # sp.user_playlist_remove_all_occurrences_of_tracks(username, playlist_id, remove_tracks) if len(remove_tracks) < 100: if remove_tracks: time.sleep(PAUSE_TIME) sp.user_playlist_remove_all_occurrences_of_tracks( username, playlist_id, remove_tracks) else: for track_id in remove_tracks: time.sleep(PAUSE_TIME) sp.user_playlist_remove_all_occurrences_of_tracks( username, playlist_id, [track_id])
def execute(sp, username, size=10, num_artists=10, time_range='medium_term', name='Recommendations', description=None): main.add_tracks(sp, main.create_playlist(sp, username, name, description), _recommended_songs(sp, size, num_artists, time_range))
def remove_tracks_from_playlist(track_ids, playlist_name): playlist_id = create_playlist(sp, playlist_name, '') print('Removing ' + str(len(track_ids)) + ' tracks from ' + playlist_name) if len(track_ids) < 100: if track_ids: time.sleep(PAUSE_TIME) sp.user_playlist_remove_all_occurrences_of_tracks( username, playlist_id, track_ids) else: for track_id in track_ids: time.sleep(PAUSE_TIME) sp.user_playlist_remove_all_occurrences_of_tracks( username, playlist_id, [track_id])
def add_from_history_playlist(): tracks = [] history_id = create_playlist(sp, 'history', '') results = sp.playlist_tracks(history_id) for result in results['items']: tracks.append(result['track']) while results['next']: results = sp.next(results) for result in results['items']: tracks.append(result['track']) for track in tracks: add_to_cvs(track) sp.user_playlist_remove_all_occurrences_of_tracks( username, history_id, [track['id']])