#python #spotipy
Вопрос:
Я пытаюсь получить список всех моих сохраненных песен с помощью current_user_saved_tracks(), но ограничение составляет 20 треков. Есть ли какой-либо способ получить доступ ко всем 1000 песням, которые у меня есть в учетной записи m?
Комментарии:
1. пожалуйста, укажите код, который вы уже сделали
Ответ №1:
Подпись выглядит следующим образом:
def current_user_saved_tracks(self, limit=20, offset=0)
В официальной справке Spotify API (бета-версия) говорится, что максимум limit=50
. Итак, в цикле вызывайте current_user_saved_tracks
, но увеличивайте offset
limit
каждый раз:
def get_all_saved_tracks(user, limit_step=50):
tracks = []
for offset in range(0, 10000000, limit_step):
response = user.current_user_saved_tracks(
limit=limit_step,
offset=offset,
)
print(response)
if len(response) == 0:
break
tracks.extend(response)
return tracks
Повторяйте цикл, пока не получите пустой ответ или исключение. Я не уверен, какой именно.
Если вам не нужно беспокоиться о том, что пользователь решит добавить сохраненный трек во время их извлечения, это должно сработать.
Ответ №2:
Да, аргумент по умолчанию таков limit=20
. Вы можете установить более высокий предел с помощью следующего кода:
current_user_saved_tracks(limit=50)
Или вы можете установить смещение, чтобы получить 20 следующих треков:
current_user_saved_tracks(offset=20)