我正在开发一个小程序,使用 Spotipy 将文本文件中每个艺术家的前 5 首歌曲添加到播放列表中。我喜欢听音乐节上的每个乐队,手动生成播放列表需要很长时间。
所以这似乎是一个很好的解决方案!而且效果很好——除了每个请求有 100 首歌曲的限制。我有大约 690 首歌曲要添加。
所以基本上,我可以硬编码 99 首歌曲的 7 个列表,然后使用这些列表提交 7 个请求(我认为这可行吗?拆分请求以绕过限制?)但我希望程序能够与更多/更少的乐队合作。
那么有没有办法根据需要生成单独的列表?我是 python 和一般编程的新手(显然)。或任何其他建议来实现这一点?
谢谢
import pprint
import sys
import spotipy
import spotipy.util as util
tracks = []
lineupfile = open('lineup.txt','r')
lineup = [x.strip('\n') for x in lineupfile.readlines()]
numberofbands = len(lineup)
if(number)
if len(sys.argv) > 2:
username = sys.argv[1]
playlist_id = sys.argv[2]
else:
print("Usage: %s username playlist_id ..." % (sys.argv[0],))
sys.exit()
scope = 'playlist-modify-public'
token = util.prompt_for_user_token(username, scope, redirect_uri = 'https://example.com/callback/')
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
for x in range(0,len(lineup)):
results = sp.search(q=str(lineup[x]), limit=5)
for i, t in enumerate(results['tracks']['items']):
tracks.append(str(t['id'].strip( 'u' )))
print("adding ",t['id'],t['name'])
results = sp.user_playlist_add_tracks(username, playlist_id, tracks, position=None)
else:
print("Can't get token for", username)
print "Playlist Complete!"