Last Updated or created 2023-06-08
For usage in this project:
Goto https://developers.spotify.com and add a APP
Write down the Client_id Client_secret and Redirect URL (callback)
Create a bash and python script
#!/bin/bash export SPOTIPY_CLIENT_ID=2f660e11e70743febdxxxxxxxxxxxxx export SPOTIPY_CLIENT_SECRET=b0741452a4fe43xxxxxxxxxxxxx export SPOTIPY_REDIRECT_URI="http://localhost:8080/callback" python3 spot.py $1
spot.py
import spotipy from spotipy.oauth2 import SpotifyOAuth from pprint import pprint from time import sleep import spotipy.util as util import sys username = "username" scope = "user-read-playback-state,user-modify-playback-state,playlist-read-private" util.prompt_for_user_token(username,scope,client_id=SPOTIPY_CLIENT_ID,client_secret=SPOTIPY_CLIENT_SECRET,redirect_uri=SPOTIPY_REDIRECT_URI) sp = spotipy.Spotify(client_credentials_manager=SpotifyOAuth(scope=scope)) # Shows playing devices res = sp.devices() pprint(res) myurl = 'spotify:playlist:' + sys.argv[1] # Change track results = sp.start_playback(context_uri=myurl, offset={"position": 1}) ## Change volume example #sp.volume(100) #sleep(2) #sp.volume(50) #sleep(2) playlists = sp.user_playlists(username) playlists = sp.current_user_playlists() for playlist in playlists['items']: print(playlist['id'] + ' ' + playlist['name'])
Run bash script as follows.
playlistplayspotify.sh 0bJvpsn0TDxxxxxxxxxxxx
(0bJvpsn0TDxxxxxxxxxxxx – is playlist ID, as example below)
OUTPUT:
python3 spot.py 0bJvpsn0TDxxxxxxxxxxxx {'devices': [{'id': 'e86eada2a91e29a396acxxxxxxxxxxxxxxxxxxxx', 'is_active': True, 'is_private_session': False, 'is_restricted': False, 'name': 'laptop', 'type': 'Computer', 'volume_percent': 100}, {'id': '8571468b6c41973ccb0axxxxxxxxxxxxxxxxxxxx', 'is_active': False, 'is_private_session': False, 'is_restricted': False, 'name': 'DESKTOP-xxxxxxx', 'type': 'Computer', 'volume_percent': 76}, {'id': '6c592503aa5a22b2fbdxxxxxxxxxxxxxxxxxxxxxx', 'is_active': False, 'is_private_session': False, 'is_restricted': False, 'name': 'TX-NR1030', 'type': 'AVR', 'volume_percent': 41}]} 0bJvpsn0TDxxxxxxxxxxxx Best Classical Music Of All Time 5aL9jeGMCAxxxxxxxxxxxx Programming music 37i9dQZEVCxxxxxxxxxxxx Discover Weekly 6pEJuA1UYJxxxxxxxxxxxx Highland/Small/Border Pipe Music 5p8Tabf5Zwxxxxxxxxxxxx Folk Instrumentals ( Celtic, Irish, Nordic, ... ) 1oy8Ek4ddBxxxxxxxxxxxx Lounge 37i9dQZF1Dxxxxxxxxxxxx Irish Folk etc etc