如何解决按流派Spotify API获得前100名艺术家
我正在做一个关于数据分析的大学项目,特别是,我试图分析大流行之前和流行期间Spotify上的听众的行为。
到目前为止,我每周下载前200名并使用简单的脚本按州进行分组,您可以在此处找到数据:https://spotifycharts.com/regional
我还设法使用前200名歌曲来检索每首歌曲并提取功能,使用Spotify API发行日期等信息。
我阅读了这篇文章:Spotify genre trends during pandemic,这很有趣。我想在文章中模仿他们在做什么。例如,他们能够按类型检索前100名艺术家。
我一直在寻找Spotify API和Spotify可用的数据集,但是找不到解决方案来实现我的目标。
有没有一种方法可以在给定时期内按类型检索前100名艺术家?
这是我每周下载前200名的代码,但对我的目标没有用:
import requests
import os
import time
path = os.getcwd()
states = ['br','it','gb','de','us','fr','es']
for state in states:
dir_path = os.path.join(path,state)
os.mkdir(dir_path)
for week in weeks:
csv_url = 'https://spotifycharts.com/regional/'+state+'/weekly/'+week+'/download'
req = requests.get(csv_url)
#print(req.status_code)
time.sleep(0.5)
if req.status_code == 200:
url_content = req.content
csv = ''+state+'_'+week+'.csv'
csv_path = os.path.join(dir_path,csv)
csv_file = open(csv_path,'wb')
csv_file.write(url_content)
csv_file.close()
else:
print('error with the following file:'+str(csv_url))
weeks
的字符串列表包含要在请求中下载的文件的文件名(以前是用另一个代码生成的,为清楚起见,省略了它),例如:
2016-12-23--2016-12-30
2016-12-30--2017-01-06
2017-01-06--2017-01-13
2017-01-13--2017-01-20
2017-01-20--2017-01-27
2017-01-27--2017-02-03
2017-02-03--2017-02-10
2017-02-10--2017-02-17
解决方法
博客指出
我们收集了每种流派的前100位艺术家的MLs数据,按 Spotify关注者数量。
无法直接从官方Spotify Web API获取图表。撰写博客的公司Chartmetric可能拥有一种不会透露的报废算法,因为出售这些统计数据是他们的商业模式。
Spotify Web API Artists endpoint为您提供了某个艺术家(及其关注者数量)的genres
,因此,如果您从另一个来源(带有其Spotify ID)获取艺术家图表,则有可能提取每个艺术家类型并对每种类型的艺术家重新排名。这些体裁可能需要根据您的需要进行重新分类。
此repo使用仅带有数据范围的Search endpoint作为主要查询参数(此处为year:2000-2014
),并创建“最受关注的艺术家”及其相应Spotify ID的数据库。该hack似乎不再起作用,因为当我尝试使用自己的身份验证令牌时不一定获得排名结果。
然后,博客获得the Spotify for Artist page,以获取每月听众(ML)。哪个状态:
每月听众是在音乐播放期间播放您的音乐的独特听众。 28天期限。此统计信息每天都会更新,并同时显示在您的 Spotify上的艺术家个人资料
同样,该图不能从Spotify API中获得,因此您要么需要创建一个Artist页面并使用比较选项将其获取给其他艺术家,要么每天在常规Spotify平台上将此图废弃。 / p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。