logging.info('getting tracks in library...') result = api.current_user_saved_tracks(limit=50) lib_tracks = extract_tracks(result) criteria = os.environ['PLAYLIST_CRITERIA_REMODEL'].split(',') filtered_playlists = [] result = api.current_user_playlists() 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],