我正在使用 Spotify 数据进行投影,我需要 Spotify 上有史以来播放次数最多的歌曲的列表。 (不是我自己的收听历史记录,而是全球流媒体计数)此信息应该在那里,因为 Spotify 上的歌曲公开显示其流媒体计数,但除了前 100 或 200 首之外,没有实际流媒体最多的歌曲列表。我想要能够获得我想要的尽可能多的歌曲,或者至少 1000 或 2000 首。我使用 python 来实现这一点,但如果需要的话可以使用其他东西。我找到了 SpotiPy,但据我所知,它似乎没有这种功能。
我在网上寻找答案但一无所获。我已经给 Spotify 发了电子邮件,甚至收到了回复,但他们的回复根本没有帮助。他们要么不理解我的问题,要么将我重定向到他们的研究和开发人员网站,但这些网站没有看到我想要的内容。
Spotipy 和 Spotify API 不提供此功能直接,但您可以从名为“Spotifys 最常播放的所有时间 [每周更新] | 大多数流媒体 | 最热门播放”的公共播放列表中检索所有歌曲,该播放列表的 playlist_id 为
2YRe7HRKNRvXdJBp9nXFza
。使用此 ID 以及 Spotipy 的以下代码:
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
client_credentials_manager = SpotifyClientCredentials(client_id='YOUR_CLIENT_ID', client_secret='YOUR_SECRET')
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
# playlist ID of the top streamed songs
playlist_id = '2YRe7HRKNRvXdJBp9nXFza' # This is just an example; use the actual playlist ID
# get tracks
results = sp.playlist_tracks(playlist_id)
# get track name and artist
tracks = results['items']
for track in tracks:
track_name = track['track']['name']
artist_name = track['track']['artists'][0]['name']
print(f"{track_name} by {artist_name}")
这将返回前 50 首流媒体歌曲:
可以与顶级流式维基交叉引用,以表明该列表是正确的。由于播放列表每周更新(可能是手动更新),因此每周可能会略有不同,但通常应该是正确的。