diff options
-rwxr-xr-x | skripti/spotify_publish_saved.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/skripti/spotify_publish_saved.py b/skripti/spotify_publish_saved.py new file mode 100755 index 0000000..dbd1083 --- /dev/null +++ b/skripti/spotify_publish_saved.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 +import spotipy +from spotipy.oauth2 import SpotifyOAuth +import json +import sys +scope = "user-library-read playlist-modify-public" +sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope, client_id="1034e542fa064c27859b61a6ec5f864e", client_secret="2503172e78ce4d5e9146047db0a39077", redirect_uri="http://b.4a.si:25425/")) +playlist = "7IyZWvHG2e7CiGnHGTkFBl" +results = {"items": [None]} +offset = 0 +publicized_uris = [] +while len(results["items"]) != 0: + results = sp.playlist_items(playlist, None, 100, offset) + for idx, item in enumerate(results["items"]): + publicized_uris.append(item["track"]["uri"]) + offset += 100 +results = {"items": [None]} +offset = 0 +saved_items = [] +while len(results["items"]) != 0: + results = sp.current_user_saved_tracks(50, offset) + to_add = [] + for idx, item in enumerate(results['items']): + saved_items.append(item) + if item["track"]["uri"] not in publicized_uris: + to_add.append(item["track"]["uri"]) + else: + publicized_uris.remove(item["track"]["uri"]) + offset += 50 + if len(to_add) != 0: + sp.playlist_add_items(playlist, to_add) + print(offset, file=sys.stderr) +if len(publicized_uris) != 0: + sp.playlist_remove_all_occurrences_of_items(playlist, publicized_uris) +json.dumps(saved_items) |