コード例 #1
0
while True:
    filtered_playlists += list(
        filter(
            lambda playlist: any(crit in playlist['name'] for crit in criteria)
            and playlist['owner']['id'] == os.environ['SPOTIFY_USERNAME'],
            result['items']))
    if not result['next']: break
    result = api.next(result)

playlist_tracks = []

logging.info('getting tracks in playlists...')
for playlist in filtered_playlists:
    logging.debug(playlist['name'])
    result = api.playlist_tracks(playlist['id'])
    playlist_tracks += extract_tracks(result)

playlist_tracks_size = len(playlist_tracks)
logging.info(f'tracks in playlists: {playlist_tracks_size}')

diff = list(
    filter(
        lambda track: track['id'] not in [track['id'] for track in lib_tracks],
        playlist_tracks))

diff_size = len(diff)
diff_percent = round(diff_size / playlist_tracks_size * 100)
logging.info(f'tracks not covered: {diff_size} ({diff_percent}%)')

logging.info('sorting tracks by added at...')