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:]