mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-10-11 09:10:45 +00:00
15 files changed
+297
-282
No files matched your search
@@ -1,27 +1,36 @@
|
||||
|
||||
# Add tracks to 'Your Collection' of saved tracks
|
||||
|
||||
import pprint
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
import spotipy
|
||||
import spotipy.util as util
|
||||
|
||||
logger = logging.getLogger('examples.add_a_saved_album')
|
||||
logging.basicConfig(level='DEBUG')
|
||||
|
||||
scope = 'user-library-modify'
|
||||
|
||||
if len(sys.argv) > 2:
|
||||
username = sys.argv[1]
|
||||
aids = sys.argv[2:]
|
||||
else:
|
||||
print("Usage: %s username album-id ..." % (sys.argv[0],))
|
||||
sys.exit()
|
||||
|
||||
token = util.prompt_for_user_token(username, scope)
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Creates a playlist for user')
|
||||
parser.add_argument('-u', '--username', required=False,
|
||||
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
|
||||
help='Username id. Defaults to environment var')
|
||||
parser.add_argument('-a', '--aids', action='append',
|
||||
required=True, help='Album ids')
|
||||
return parser.parse_args()
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.trace = False
|
||||
results = sp.current_user_saved_albums_add(albums=aids)
|
||||
pprint.pprint(results)
|
||||
else:
|
||||
print("Can't get token for", username)
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
token = util.prompt_for_user_token(args.username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.current_user_saved_albums_add(albums=args.aids)
|
||||
else:
|
||||
logger.error("Can't get token for %s", args.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,27 +1,37 @@
|
||||
|
||||
# Add tracks to 'Your Collection' of saved tracks
|
||||
|
||||
import pprint
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
import spotipy
|
||||
import spotipy.util as util
|
||||
|
||||
scope = 'user-library-modify'
|
||||
|
||||
if len(sys.argv) > 2:
|
||||
username = sys.argv[1]
|
||||
tids = sys.argv[2:]
|
||||
else:
|
||||
print("Usage: %s username track-id ..." % (sys.argv[0],))
|
||||
sys.exit()
|
||||
logger = logging.getLogger('examples.add_a_saved_track')
|
||||
logging.basicConfig(level='DEBUG')
|
||||
|
||||
token = util.prompt_for_user_token(username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.trace = False
|
||||
results = sp.current_user_saved_tracks_add(tracks=tids)
|
||||
pprint.pprint(results)
|
||||
else:
|
||||
print("Can't get token for", username)
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Add tracks to Your '
|
||||
'Collection of saved tracks')
|
||||
parser.add_argument('-u', '--username', required=False,
|
||||
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
|
||||
help='Username id. Defaults to environment var')
|
||||
parser.add_argument('-t', '--tids', action='append',
|
||||
required=True, help='Track ids')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
token = util.prompt_for_user_token(args.username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.current_user_saved_tracks_add(tracks=args.tids)
|
||||
else:
|
||||
logger.error("Can't get token for %s", args.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,26 +1,37 @@
|
||||
|
||||
# Adds tracks to a playlist
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
import spotipy
|
||||
import spotipy.util as util
|
||||
|
||||
if len(sys.argv) > 3:
|
||||
username = sys.argv[1]
|
||||
playlist_id = sys.argv[2]
|
||||
track_ids = sys.argv[3:]
|
||||
else:
|
||||
print("Usage: %s username playlist_id track_id ..." % (sys.argv[0],))
|
||||
sys.exit()
|
||||
|
||||
logger = logging.getLogger('examples.add_tracks_to_playlist')
|
||||
logging.basicConfig(level='DEBUG')
|
||||
scope = 'playlist-modify-public'
|
||||
token = util.prompt_for_user_token(username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.trace = False
|
||||
results = sp.user_playlist_add_tracks(username, playlist_id, track_ids)
|
||||
print(results)
|
||||
else:
|
||||
print("Can't get token for", username)
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Adds track to user playlist')
|
||||
parser.add_argument('-u', '--username', required=False,
|
||||
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
|
||||
help='Username id. Defaults to environment var')
|
||||
parser.add_argument('-t', '--tids', action='append',
|
||||
required=True, help='Track ids')
|
||||
parser.add_argument('-p', '--playlist', required=True,
|
||||
help='Playlist to add track to')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
token = util.prompt_for_user_token(args.username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.user_playlist_add_tracks(args.username, args.playlist, args.tids)
|
||||
else:
|
||||
logger.error("Can't get token for %s", args.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+25
-15
@@ -1,9 +1,20 @@
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
import sys
|
||||
import spotipy
|
||||
|
||||
''' shows the albums and tracks for a given artist.
|
||||
'''
|
||||
logger = logging.getLogger('examples.artist_albums')
|
||||
logging.basicConfig(level='INFO')
|
||||
|
||||
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials())
|
||||
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Gets albums from artist')
|
||||
parser.add_argument('-a', '--artist', required=True,
|
||||
help='Name of Artist')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_artist(name):
|
||||
@@ -27,19 +38,18 @@ def show_artist_albums(artist):
|
||||
for album in albums:
|
||||
name = album['name']
|
||||
if name not in seen:
|
||||
print((' ' + name))
|
||||
logger.info('ALBUM: %s', name)
|
||||
seen.add(name)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials())
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print(('Usage: {0} artist name'.format(sys.argv[0])))
|
||||
def main():
|
||||
args = get_args()
|
||||
artist = get_artist(args.artist)
|
||||
if artist:
|
||||
show_artist_albums(artist)
|
||||
else:
|
||||
name = ' '.join(sys.argv[1:])
|
||||
artist = get_artist(name)
|
||||
if artist:
|
||||
show_artist_albums(artist)
|
||||
else:
|
||||
print("Can't find that artist")
|
||||
logger.error("Can't find artist: %s", artist)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,9 +1,19 @@
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
import sys
|
||||
import spotipy
|
||||
|
||||
''' shows the albums and tracks for a given artist.
|
||||
'''
|
||||
logger = logging.getLogger('examples.artist_discography')
|
||||
logging.basicConfig(level='INFO')
|
||||
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Shows albums and tracks for '
|
||||
'given artist')
|
||||
parser.add_argument('-a', '--artist', required=True,
|
||||
help='Name of Artist')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_artist(name):
|
||||
@@ -22,45 +32,41 @@ def show_album_tracks(album):
|
||||
while results['next']:
|
||||
results = sp.next(results)
|
||||
tracks.extend(results['items'])
|
||||
for track in tracks:
|
||||
print(' ', track['name'])
|
||||
print()
|
||||
print(track)
|
||||
for i, track in enumerate(tracks):
|
||||
logger.info('%s. %s', i+1, track['name'])
|
||||
|
||||
|
||||
def show_artist_albums(id):
|
||||
def show_artist_albums(artist):
|
||||
albums = []
|
||||
results = sp.artist_albums(artist['id'], album_type='album')
|
||||
albums.extend(results['items'])
|
||||
while results['next']:
|
||||
results = sp.next(results)
|
||||
albums.extend(results['items'])
|
||||
print('Total albums:', len(albums))
|
||||
logger.info('Total albums: %s', len(albums))
|
||||
unique = set() # skip duplicate albums
|
||||
for album in albums:
|
||||
name = album['name'].lower()
|
||||
if name not in unique:
|
||||
print(name)
|
||||
logger.info('ALBUM: %s', name)
|
||||
unique.add(name)
|
||||
show_album_tracks(album)
|
||||
|
||||
|
||||
def show_artist(artist):
|
||||
print('====', artist['name'], '====')
|
||||
print('Popularity: ', artist['popularity'])
|
||||
logger.info('====%s====', artist['name'])
|
||||
logger.info('Popularity: %s', artist['popularity'])
|
||||
if len(artist['genres']) > 0:
|
||||
print('Genres: ', ','.join(artist['genres']))
|
||||
logger.info('Genres: %s', ','.join(artist['genres']))
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
artist = get_artist(args.artist)
|
||||
show_artist(artist)
|
||||
show_artist_albums(artist)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
client_credentials_manager = SpotifyClientCredentials()
|
||||
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
|
||||
sp.trace = False
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print(('Usage: {0} artist name'.format(sys.argv[0])))
|
||||
else:
|
||||
name = ' '.join(sys.argv[1:])
|
||||
artist = get_artist(name)
|
||||
show_artist(artist)
|
||||
show_artist_albums(artist)
|
||||
main()
|
||||
@@ -1,13 +1,22 @@
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
import spotipy
|
||||
|
||||
''' shows recommendations for the given artist
|
||||
'''
|
||||
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
|
||||
|
||||
logger = logging.getLogger('examples.artist_recommendations')
|
||||
logging.basicConfig(level='INFO')
|
||||
|
||||
client_credentials_manager = SpotifyClientCredentials()
|
||||
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
|
||||
sp.trace = False
|
||||
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Recommendations for the '
|
||||
'given artist')
|
||||
parser.add_argument('-a', '--artist', required=True, help='Name of Artist')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_artist(name):
|
||||
@@ -22,16 +31,18 @@ def get_artist(name):
|
||||
def show_recommendations_for_artist(artist):
|
||||
results = sp.recommendations(seed_artists=[artist['id']])
|
||||
for track in results['tracks']:
|
||||
print(track['name'], '-', track['artists'][0]['name'])
|
||||
logger.info('Recommendation: %s - %s', track['name'],
|
||||
track['artists'][0]['name'])
|
||||
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
artist = get_artist(args.artist)
|
||||
if artist:
|
||||
show_recommendations_for_artist(artist)
|
||||
else:
|
||||
logger.error("Can't find that artist", args.artist)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2:
|
||||
print(('Usage: {0} artist name'.format(sys.argv[0])))
|
||||
else:
|
||||
name = ' '.join(sys.argv[1:])
|
||||
artist = get_artist(name)
|
||||
if artist:
|
||||
show_recommendations_for_artist(artist)
|
||||
else:
|
||||
print("Can't find that artist", name)
|
||||
main()
|
||||
@@ -1,42 +1,54 @@
|
||||
|
||||
# Modify the details of a playlist (name, public, collaborative)
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
import spotipy
|
||||
import spotipy.util as util
|
||||
|
||||
if len(sys.argv) > 3:
|
||||
username = sys.argv[1]
|
||||
playlist_id = sys.argv[2]
|
||||
name = sys.argv[3]
|
||||
|
||||
public = None
|
||||
if len(sys.argv) > 4:
|
||||
public = sys.argv[4].lower() == 'true'
|
||||
|
||||
collaborative = None
|
||||
if len(sys.argv) > 5:
|
||||
collaborative = sys.argv[5].lower() == 'true'
|
||||
|
||||
description = None
|
||||
if len(sys.argv) > 6:
|
||||
description = sys.argv[6]
|
||||
|
||||
else:
|
||||
print("Usage: %s username playlist_id name [public collaborative "
|
||||
"description]" % (sys.argv[0]))
|
||||
sys.exit()
|
||||
logger = logging.getLogger('examples.change_playlist_details')
|
||||
logging.basicConfig(level='DEBUG')
|
||||
|
||||
scope = 'playlist-modify-public playlist-modify-private'
|
||||
token = util.prompt_for_user_token(username, scope)
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.trace = False
|
||||
results = sp.user_playlist_change_details(
|
||||
username, playlist_id, name=name, public=public,
|
||||
collaborative=collaborative, description=description)
|
||||
print(results)
|
||||
else:
|
||||
print("Can't get token for"), username
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Modify details of playlist')
|
||||
parser.add_argument('-u', '--username', required=False,
|
||||
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
|
||||
help='Username id. Defaults to environment var')
|
||||
parser.add_argument('-p', '--playlist', required=True,
|
||||
help='Playlist id to alter details')
|
||||
parser.add_argument('-n', '--name', required=False,
|
||||
help='Name of playlist')
|
||||
parser.add_argument('--public', action='store_true', required=False,
|
||||
help='Include param if playlist is public')
|
||||
parser.add_argument('--private', action='store_false', required=False,
|
||||
default=None,
|
||||
help='Include param to make playlist is private')
|
||||
parser.add_argument('-c', '--collaborative', action='store_true',
|
||||
required=False, default=None,
|
||||
help='Include param if playlist is collaborative')
|
||||
parser.add_argument('-i', '--independent', action='store_false',
|
||||
required=False, default=None,
|
||||
help='Include param to make playlist non collaborative')
|
||||
parser.add_argument('-d', '--description', default=None, required=False,
|
||||
help='Description of playlist')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
token = util.prompt_for_user_token(args.username, scope)
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.user_playlist_change_details(
|
||||
args.username, args.playlist, name=args.name,
|
||||
public=args.public or args.private,
|
||||
collaborative=args.collaborative or args.independent,
|
||||
description=args.description)
|
||||
else:
|
||||
logger.error("Can't get token for %s", args.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+31
-22
@@ -1,30 +1,39 @@
|
||||
# Creates a playlist for a user
|
||||
|
||||
import pprint
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
import spotipy
|
||||
import spotipy.util as util
|
||||
|
||||
logger = logging.getLogger('examples.create_playlist')
|
||||
logging.basicConfig(level='DEBUG')
|
||||
|
||||
if len(sys.argv) > 2:
|
||||
username = sys.argv[1]
|
||||
playlist_name = sys.argv[2]
|
||||
playlist_description = sys.argv[3]
|
||||
else:
|
||||
print(
|
||||
"Usage: %s username playlist-name playlist-description" %
|
||||
(sys.argv[0],))
|
||||
sys.exit()
|
||||
|
||||
scope = "playlist-modify-public"
|
||||
token = util.prompt_for_user_token(username, scope)
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(description='Creates a playlist for user')
|
||||
parser.add_argument('-u', '--username', required=False,
|
||||
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
|
||||
help='Username id. Defaults to environment var')
|
||||
parser.add_argument('-p', '--playlist', required=True,
|
||||
help='Name of Playlist')
|
||||
parser.add_argument('-d', '--description', required=False, default='',
|
||||
help='Description of Playlist')
|
||||
return parser.parse_args()
|
||||
|
||||
if token:
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.trace = False
|
||||
playlists = sp.user_playlist_create(username, playlist_name,
|
||||
description=playlist_description)
|
||||
pprint.pprint(playlists)
|
||||
else:
|
||||
print("Can't get token for", username)
|
||||
|
||||
def main():
|
||||
args = get_args()
|
||||
scope = "playlist-modify-public"
|
||||
token = util.prompt_for_user_token(args.username, scope)
|
||||
|
||||
if token:
|
||||
logger.info('USERNAME: %s, PLAYLIST: %s', args.username, args.playlist)
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
sp.user_playlist_create(args.username, args.playlist)
|
||||
else:
|
||||
logger.error("Can't get token for: %s", args.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,19 +0,0 @@
|
||||
# shows acoustic features for tracks for the given artist
|
||||
|
||||
from __future__ import print_function # (at top of module)
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
import spotipy
|
||||
|
||||
|
||||
client_credentials_manager = SpotifyClientCredentials()
|
||||
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
|
||||
sp.trace = True
|
||||
try:
|
||||
print('bad call 0')
|
||||
bad_artist_call = sp.artist('spotify:artist:12341234')
|
||||
except spotipy.client.SpotifyException:
|
||||
print('bad call 0 exception')
|
||||
|
||||
print('bad call 1')
|
||||
bad_artist_call = sp.artist('spotify:artist:12341234')
|
||||
print('bad artist', bad_artist_call)
|
||||
@@ -1,14 +0,0 @@
|
||||
# shows artist info for a URN or URL
|
||||
|
||||
import spotipy
|
||||
import sys
|
||||
import pprint
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
search_str = sys.argv[1]
|
||||
else:
|
||||
search_str = 'Radiohead'
|
||||
|
||||
sp = spotipy.Spotify(requests_timeout=.1)
|
||||
result = sp.search(search_str)
|
||||
pprint.pprint(result)
|
||||
Reference in new issue
Block a user