mirror of
https://github.com/c0de-archive/spotipy.git
synced 2024-11-04 23:17:48 +00:00
checkpoint
This commit is contained in:
parent
1bdd8b32c3
commit
365d3714bf
32
examples/audio_features.py
Normal file
32
examples/audio_features.py
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
# shows acoustic features for tracks for the given artist
|
||||
|
||||
from __future__ import print_function # (at top of module)
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
import json
|
||||
import spotipy
|
||||
import time
|
||||
import sys
|
||||
|
||||
|
||||
client_credentials_manager = SpotifyClientCredentials()
|
||||
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
|
||||
sp.trace=True
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
artist_name = ' '.join(sys.argv[1:])
|
||||
results = sp.search(q=artist_name, limit=50)
|
||||
tids = []
|
||||
for i, t in enumerate(results['tracks']['items']):
|
||||
print(' ', i, t['name'])
|
||||
tids.append(t['uri'])
|
||||
|
||||
print(tids)
|
||||
|
||||
start = time.time()
|
||||
features = sp.audio_features(tids)
|
||||
delta = time.time() - start
|
||||
print ("features", features)
|
||||
print(json.dumps(features, indent=4))
|
||||
|
||||
print ("features retrieved in %.2f seconds" % (delta,))
|
32
examples/audio_features2.py
Normal file
32
examples/audio_features2.py
Normal file
@ -0,0 +1,32 @@
|
||||
# shows acoustic features for tracks for the given artist
|
||||
|
||||
from __future__ import print_function # (at top of module)
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
import json
|
||||
import spotipy
|
||||
import time
|
||||
import sys
|
||||
|
||||
460V2cUWccVmYeTd4TLabO,01N7pbYH5f9TpLxmqosmUe,2Rrkgr8Kd0XGNbilwip6r8,3iJacHlEpRhG8CIStLXYbs,3D0stCwnqbPRkbXnUp28PR,5f1E93e9HPSRs24QM4WZsa,3BxHcg8PCUVK3m7gESNFg9,6chhc8QbIYUW9eROLwzTt7,6cIqoP7oV1H5NjmX4rxLie,4u10VvC4AV75eQ0boApzkq,%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C5nsikUg2MZkmb1nxvcFl5J%2C5PukeF41F4XNCyltPrjtfO%2C2JCpgkECOJyD7yUokQZDrs%2C7dwXipvdDxipgRu47xH98K%2C4IK53QTieazWuWUYm5fkP8%2C5dcQ2uEhO0hXdvcWFQShV9%2C3KpmsYSzgeummZ4leRtjbM%2C3kFuIYz4jYu1Wgq5HuFnid%2C5uEsEDcw8D30AmksKuavMh%2C6HjVlvOUu8zaLlNLCAELrd%2C4zrJmEMmQKxC5desjEgadB%2C41wBEIqFyttEGmbQcRHu13%2C5ATVpeENGTukudcWso7WeE%2C6qs7nmfAvHTIIpFLFsDTVc%2C4KSx0OmRJpT8EvTNnzZw2V%2C7eyhxafr2Q09JcqkSRSkOX%2C6JP7TRXXgTcuoDyotNR5Bu%2C2LwXZozk3SAWgqunHZq5pV%2C1lE88zONI0LR9hAi14F9tJ%2C3VxJ96B20xnFfxCrBCgjh0%2C2kEDlDyDht2OnN3eUD6AKy%2C59jyWHNXkL6R2rWsz2hnuH%2C2Brivg4Hjx6nqmUXJCkrDQ%2C1C0mAIhKJ5luyb2TNE7n7E%2C0y2nkKDa3VMaUx9rvzERJv%2C3AJK9D8d5AMxx0cgLbsL5W
|
||||
|
||||
client_credentials_manager = SpotifyClientCredentials()
|
||||
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
|
||||
sp.trace=True
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
artist_name = ' '.join(sys.argv[1:])
|
||||
results = sp.search(q=artist_name, limit=50)
|
||||
tids = []
|
||||
for i, t in enumerate(results['tracks']['items']):
|
||||
print(' ', i, t['name'])
|
||||
tids.append(t['uri'])
|
||||
|
||||
print(tids)
|
||||
|
||||
start = time.time()
|
||||
features = sp.audio_features(tids)
|
||||
delta = time.time() - start
|
||||
print ("features", features)
|
||||
print(json.dumps(features, indent=4))
|
||||
|
||||
print ("features retrieved in %.2f seconds" % (delta,))
|
@ -31,6 +31,7 @@ class Spotify(object):
|
||||
sp = spotipy.Spotify()
|
||||
|
||||
sp.trace = True # turn on tracing
|
||||
sp.trace_out = True # turn on trace out
|
||||
|
||||
artist = sp.artist(urn)
|
||||
print(artist)
|
||||
@ -40,6 +41,7 @@ class Spotify(object):
|
||||
'''
|
||||
|
||||
trace = False # Enable tracing?
|
||||
trace_out = False
|
||||
max_get_retries = 10
|
||||
|
||||
def __init__(self, auth=None, requests_session=True,
|
||||
@ -89,6 +91,8 @@ class Spotify(object):
|
||||
if payload:
|
||||
args["data"] = json.dumps(payload)
|
||||
|
||||
if self.trace_out:
|
||||
print(url)
|
||||
r = self._session.request(method, url, headers=headers, **args)
|
||||
|
||||
if self.trace: # pragma: no cover
|
||||
@ -475,6 +479,17 @@ class Spotify(object):
|
||||
'''
|
||||
return self.me()
|
||||
|
||||
def current_user_saved_albums(self, limit=20, offset=0):
|
||||
''' Gets a list of the albums saved in the current authorized user's
|
||||
"Your Music" library
|
||||
|
||||
Parameters:
|
||||
- limit - the number of albums to return
|
||||
- offset - the index of the first album to return
|
||||
|
||||
'''
|
||||
return self._get('me/albums', limit=limit, offset=offset)
|
||||
|
||||
def current_user_saved_tracks(self, limit=20, offset=0):
|
||||
''' Gets a list of the tracks saved in the current authorized user's
|
||||
"Your Music" library
|
||||
@ -570,6 +585,14 @@ class Spotify(object):
|
||||
return self._get('browse/new-releases', country=country,
|
||||
limit=limit, offset=offset)
|
||||
|
||||
def audio_features(self, tracks=[]):
|
||||
''' Get audio features for multiple tracks based upon their Spotify IDs
|
||||
Parameters:
|
||||
- tracks - a list of track URIs, URLs or IDs, maximum: 50 ids
|
||||
'''
|
||||
tlist = [self._get_id('track', t) for t in tracks]
|
||||
return self._get('audio-features?ids=' + ','.join(tlist))
|
||||
|
||||
def _get_id(self, type, id):
|
||||
fields = id.split(':')
|
||||
if len(fields) >= 3:
|
||||
|
@ -66,7 +66,7 @@ class AuthTestSpotipy(unittest.TestCase):
|
||||
user = playlist['owner']['id']
|
||||
pid = playlist['id']
|
||||
results = spotify.user_playlist_tracks(user, pid)
|
||||
self.assertTrue(len(results['items']) > 0)
|
||||
self.assertTrue(len(results['items']) >= 0)
|
||||
|
||||
def user_playlist_tracks(self, user, playlist_id = None, fields=None,
|
||||
limit=100, offset=0):
|
||||
@ -81,6 +81,10 @@ class AuthTestSpotipy(unittest.TestCase):
|
||||
tracks = spotify.current_user_saved_tracks()
|
||||
self.assertTrue(len(tracks['items']) > 0)
|
||||
|
||||
def test_current_user_saved_albums(self):
|
||||
albums = spotify.current_user_saved_albums()
|
||||
self.assertTrue(len(albums['items']) > 0)
|
||||
|
||||
def test_current_user_save_and_unsave_tracks(self):
|
||||
tracks = spotify.current_user_saved_tracks()
|
||||
total = tracks['total']
|
||||
|
Loading…
Reference in New Issue
Block a user