python - 如何从 spotify 的“获取用户当前播放的曲目”中仅获取一个 URL
问题描述
我正在尝试使用Spotify 的控制台制作一个连接到我的 Spotify 的脚本,并获取有关当前曲目的信息,包括歌曲 ID、歌曲名称、艺术家、歌曲链接和专辑封面链接,但如果我尝试获取专辑封面,它给了我所有 3 张专辑封面(640x640、300x300 和 64x64 的),我该如何制作它只显示一张(最好是 640x640 的一张)?
import requests
import time
from pprint import pprint
SPOTIFY_GET_CURRENT_TRACK_URL = 'https://api.spotify.com/v1/me/player/currently-playing'
ACCESS_TOKEN = 'my access token'
def get_current_track(access_token):
response = requests.get(
SPOTIFY_GET_CURRENT_TRACK_URL,
headers={
"Authorization": f"Bearer {access_token}"
}
)
json_resp = response.json()
track_id = json_resp['item']['id']
track_name = json_resp['item']['name']
artists = json_resp['item']['artists']
track_images = json_resp['item']['album']['images']
track_image = [images['url'] for images in track_images]
link = json_resp['item']['external_urls']['spotify']
artist_names = ', '.join([artist['name'] for artist in artists])
current_track_info = {
"id": track_id,
"track_name": track_name,
"artists": artist_names,
"link": link,
"image": track_image,
}
return current_track_info
def main():
current_track_id = None
while True:
current_track_info = get_current_track(ACCESS_TOKEN)
if current_track_info['id'] != current_track_id:
pprint(
current_track_info,
indent=4,
)
current_track_id = current_track_info['id']
time.sleep(1)
if __name__ == '__main__':
main()
我的输出:
{ 'artists': 'Lil Baby, Gunna',
'id': '78QR3Wp35dqAhFEc2qAGjE',
'image': [ 'https://i.scdn.co/image/ab67616d0000b273ce159a3ba2096e13fa9d4b4c',
'https://i.scdn.co/image/ab67616d00001e02ce159a3ba2096e13fa9d4b4c',
'https://i.scdn.co/image/ab67616d00004851ce159a3ba2096e13fa9d4b4c'],
'link': 'https://open.spotify.com/track/78QR3Wp35dqAhFEc2qAGjE',
'track_name': 'Drip Too Hard (Lil Baby & Gunna)'}
首选输出:
{ 'artists': 'Lil Baby, Gunna',
'id': '78QR3Wp35dqAhFEc2qAGjE',
'image': 'https://i.scdn.co/image/ab67616d0000b273ce159a3ba2096e13fa9d4b4c',
'link': 'https://open.spotify.com/track/78QR3Wp35dqAhFEc2qAGjE',
'track_name': 'Drip Too Hard (Lil Baby & Gunna)'}
在评论/回复中轻松一点,我只是一个初学者。
解决方案
推荐阅读
- javascript - 引导导航栏中的活动链接名称不会改变颜色
- shell - 如何在shell脚本中调用字符串作为变量?
- python - 在 pandas 中使用 Apply 函数
- spring-boot - 可能是什么原因,我的 SimpleCacheCustomizer 在我的测试启动时没有被调用
- python - Pydoc 忽略 opencv 函数,只考虑使用 def 关键字定义的 python 函数
- mysql - 在表(MYSQL)的特定列中查找“坏词”的最佳方法是什么?
- reactjs - 选择当前项目时如何更改下一个项目的状态
- javascript - 无法使用 ioredis 终止来自 Node JS 的 Redis 连接
- javascript - 将函数与 Apps 脚本匹配以查找最接近但小于日期
- python - 如何使用在内部使用`kubectll apply -f`的python创建部署