首页 > 解决方案 > 如何从 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)'}

在评论/回复中轻松一点,我只是一个初学者。

标签: pythonspotify

解决方案


推荐阅读