Python - 自动生成列表以在 spotify 请求中保持在 100 首歌曲限制以下
Python - Automatically generate lists to stay under 100 song limit in spotify request
我正在开发一个小程序,使用 Spotipy 将文本文件中每位艺术家的前 5 首歌曲添加到播放列表。我喜欢听音乐节上的每个乐队,手动生成播放列表需要很长时间。
所以这似乎是一个很好的解决方案!而且效果很好——除了每个请求有 100 首歌曲的限制。我有大约 690 首歌曲要添加。
所以基本上,我可以对 99 首歌曲的 7 个列表进行硬编码,然后使用这些列表提交 7 个请求(我认为这样行得通吗?拆分请求以绕过限制?)但我想要能够使用 more/less 个频段的程序。
那么有没有一种方法可以根据需要生成单独的列表?我是 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!"
改变这个:
results = sp.user_playlist_add_tracks(username, playlist_id, tracks, position=None)
为此:
while tracks:
results = sp.user_playlist_add_tracks(username, playlist_id, tracks[:100], position=None)
tracks = tracks[100:]
我正在开发一个小程序,使用 Spotipy 将文本文件中每位艺术家的前 5 首歌曲添加到播放列表。我喜欢听音乐节上的每个乐队,手动生成播放列表需要很长时间。
所以这似乎是一个很好的解决方案!而且效果很好——除了每个请求有 100 首歌曲的限制。我有大约 690 首歌曲要添加。
所以基本上,我可以对 99 首歌曲的 7 个列表进行硬编码,然后使用这些列表提交 7 个请求(我认为这样行得通吗?拆分请求以绕过限制?)但我想要能够使用 more/less 个频段的程序。
那么有没有一种方法可以根据需要生成单独的列表?我是 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!"
改变这个:
results = sp.user_playlist_add_tracks(username, playlist_id, tracks, position=None)
为此:
while tracks:
results = sp.user_playlist_add_tracks(username, playlist_id, tracks[:100], position=None)
tracks = tracks[100:]