diff --git a/playlist_description_update.py b/playlist_description_update.py new file mode 100644 index 0000000..02130c5 --- /dev/null +++ b/playlist_description_update.py @@ -0,0 +1,61 @@ +import spotipy +from spotipy.oauth2 import SpotifyOAuth +import hashlib, os +from dotenv import load_dotenv +import top_lib + +def encrypt_playlist_name(name): + # Using SHA-256 hash function, but you can choose others like MD5 or SHA-512 + hash_object = hashlib.sha256(name.encode()) + encrypted_id = hash_object.hexdigest() + return encrypted_id + +def get_playlists_with_name(sp, name): + playlists = sp.current_user_playlists() + matching_playlists = [playlist for playlist in playlists['items'] if name in playlist['name']] + return matching_playlists + +def main(): + # Load environment variables + load_dotenv() + + # Set up Spotify API credentials + SPOTIPY_CLIENT_ID = os.getenv('SPOTIPY_CLIENT_ID') + SPOTIPY_CLIENT_SECRET = os.getenv('SPOTIPY_CLIENT_SECRET') + SPOTIPY_REDIRECT_URI = os.getenv('SPOTIPY_REDIRECT_URI') + + # Set up Spotify authentication + authenticator = top_lib.Auth(verbose=True) + sp = authenticator.newSpotifyauth(scope="user-library-read playlist-modify-public playlist-modify-private") + + # Specify the target name in playlist + target_name = "Chronological Discography" + + # Get playlists with the specified name + matching_playlists = get_playlists_with_name(sp, target_name) + + counter = 0 + + # Print and hash the playlist names + for playlist in matching_playlists: + playlist_name = playlist['name'] + encrypted_id = encrypt_playlist_name(playlist_name) + + # Print the original name and encrypted ID + print(f"Playlist Name: {playlist_name}") + print(f"Encrypted ID: {encrypted_id}") + + # Update the playlist description with the encrypted ID + new_description = f"ID: {encrypted_id} - {playlist['description']}" + + print(f"New Description: {new_description}") + # Uncomment the following line to actually update the playlist description + sp.playlist_change_details(playlist['id'], description=new_description) + + counter += 1 + print(f"Updated {counter} playlists") + + print() + +if __name__ == "__main__": + main()