Запрос на сценарий или метод для извлечения всей информации, включая ISRC, из каталога художника через API SpotifyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Запрос на сценарий или метод для извлечения всей информации, включая ISRC, из каталога художника через API Spotify

Сообщение Anonymous »

Я работаю над проектом, где мне нужно извлечь всю информацию, связанную с альбомами и треками артиста, используя API Spotify. Цель состоит в том, чтобы получить все детали, включая ISRC треков, для конкретного исполнителя. проблемы, включая ISRC для каждого трека. В настоящее время мой скрипт получает информацию, такую ​​как название альбома, артист, Spotify Link, продолжительность трека и т. Д., Но я не могу получить ISRC. < /P>
Интересно, что я заметил Что если я сделаю запрос GET в почтальстве на одном треке, ответ JSON содержит ISRC, но я не могу адаптировать эту логику для автоматического извлечения ISRC для всех треков. < /p>
Вот те данные, которые я хочу извлечь: < /p>
Подробная информация о альбоме (имя, введите, дату выпуска и т. Д.) , продолжительность, номер трека и т. Д.) Кто -нибудь работал над чем -то подобным или мог предложить метод для извлечения ISRC вместе с другой информацией о треке? /> заранее спасибо < /p>
import requests
import json
import os
import pandas as pd

# Spotify API token (Bearer)
access_token = 'BQAklJ5PTha5BQq5TKBvkJGq534QJpt6cOvJuRktcIqt89xTSO3_GHZ6zMlTNknusz08eBcJ-jOXpVi3RYChF5pWw-CGM2UK0MPZy5nB2dTrFldLW7I'

# URL base di Spotify API
base_url = "https://api.spotify.com/v1/artists/4ILj ... FuF/albums"
headers = {
"Authorization": f"Bearer {access_token}"
}

# Funzione per recuperare tutti gli album
def get_albums(artist_id):
albums = []
url = base_url.format(artist_id)

while url:
response = requests.get(url, headers=headers)
data = response.json()

albums.extend(data.get('items', [])) # Assicurati che 'items' esista
url = data.get('next') # Segui il link "next" se esiste

return albums

# Funzione per recuperare tutte le tracce di un album
def get_tracks(album_id):
tracks = []
url = f"https://api.spotify.com/v1/albums/{album_id}/tracks"

while url:
response = requests.get(url, headers=headers)
data = response.json()

tracks.extend(data.get('items', [])) # Assicurati che 'items' esista
url = data.get('next') # Segui il link "next" se esiste

return tracks

# Recupera gli album
artist_id = "4ILjvUnCyiEU1aZpaQFFuF" # ID Spotify dell'artista
albums = get_albums(artist_id)

# Recupera tutte le tracce di ogni album
all_tracks = []
for album in albums:
album_tracks = get_tracks(album['id'])
for track in album_tracks:
track['album'] = album # Aggiungi l'album alla traccia
all_tracks.extend(album_tracks)

# Costruisci il JSON finale
final_data = []
for album in albums:
album_data = {
"album": album,
"tracks": []
}
# Aggiungi solo le tracce appartenenti a questo album
for track in all_tracks:
if track['album']['id'] == album['id']: # Verifica l'ID dell'album
album_data['tracks'].append(track)

final_data.append(album_data)

# Salva tutte le tracce in un file JSON sul desktop
desktop_path_json = os.path.join(os.path.expanduser("~"), "Desktop", "spotify_tracks.json")

with open(desktop_path_json, 'w', encoding='utf-8') as f:
json.dump(final_data, f, ensure_ascii=False, indent=4)

print(f"File JSON salvato sul desktop: {desktop_path_json}") # Debug

# Funzione per convert
< /code>
Я попытался запустить сценарий Python, чтобы получить альбом и отслеживать данные из Spotify, используя API Spotify. Я ожидал, что сценарий успешно собрал альбом и детали трека, включая коды ISRC, а затем сохранить данные в форматах JSON и CSV на рабочем столе. Тем не менее, сценарий сработал, как и ожидалось, выводя желаемые файлы JSON и CSV с деталями трека, включая коды ISRC для каждого трека.


Подробнее здесь: https://stackoverflow.com/questions/793 ... rc-from-an
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»