gpt4 book ai didi

python - 使用 spotipy 提取艺术家流派和歌曲发布日期

转载 作者:行者123 更新时间:2023-12-04 10:05:06 29 4
gpt4 key购买 nike

我目前正在研究从 Spotify 的歌曲中提取特定项目。我想从艺术家那里获取具体的发行日期和流派。我正在从如下所示的 Pandas 数据报中提取信息: It contains Lyrics, title, genre, artist and release date .我已经尝试手动完成大部分工作,但作为一个包含大约 1100 首歌曲的数据框,它变得乏味。所以我正在研究 API 来帮助解决这个问题,特别是 spotipy。我有一个开始的想法:

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials #To access authorised Spotify data
client_id = 'client_id'
client_secret = 'client_secret'
client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager) #spotify object to access API
name = "AJR" #chosen artist
result = sp.search(name) #search query
result['tracks']['items'][0]['artists']

但我不知道从哪里开始。我已经尝试查看文档,虽然有关于如何从 Spotify For Developers 页面获取流派和日期的信息,但我似乎无法在 spotipy 中找到它。任何关于从这里去哪里或如何实现算法以获得所需细节的建议都会很棒。谢谢。

最佳答案

Spotify 目前还没有公开轨道类型。相反,它公开了与艺术家或专辑相​​关联的流派列表。

同样,它不会公开轨道的发行日期,而只会公开整张专辑的单个发行日期。因此,虽然我不确定艺术家是否有可能在专辑发行后将新轨道添加到专辑中,这意味着专辑发行日期可能并不总是指示相应专辑中所有轨道的正确发行日期。

I have tried looking at the documentation and while there is information on how to get genre and date from the Spotify For Developers page, I can't seem to find it in spotipy.

您需要访问全页对象才能访问艺术家或专辑的流派信息。

result = sp.search(name)
result['tracks']['items'][0]['artists']

您从这段代码中得到的不是艺术家的完整页面对象,这意味着它缺少一些额外的细节,而流派就是其中之一。

您需要单独调用适当的端点来访问完整的分页对象。例如,这段代码:

result = sp.search("AJR")
track = result['tracks']['items'][0]

artist = sp.artist(track["artists"][0]["external_urls"]["spotify"])
print("artist genres:", artist["genres"])

album = sp.album(track["album"]["external_urls"]["spotify"])
print("album genres:", album["genres"])
print("album release-date:", album["release_date"])

输出:

artist genres: ['modern rock']
album genres: []
album release-date: 2020-02-12

Spotify 可能不知道某些专辑(如上面的输出)或艺术家的流派。

关于python - 使用 spotipy 提取艺术家流派和歌曲发布日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61624487/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com