首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >currently_playing在使用Spotipy库时无法工作

currently_playing在使用Spotipy库时无法工作
EN

Stack Overflow用户
提问于 2018-04-07 21:21:45
回答 2查看 1.3K关注 0票数 1

我正在尝试使用spotipy Spotify python库访问用户当前正在播放的音乐。

代码语言:javascript
运行
复制
import json
import spotipy
import spotipy.util as util
from spotipy.oauth2 import SpotifyClientCredentials 

cid = "xxx"
csecret = "xxx"
redirectURI = "xxx"
username = "xxx"

client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=csecret) 
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

scope = 'user-read-currently-playing'
token = util.prompt_for_user_token(username, scope, cid, csecret, redirectURI)

if token:
    sp = spotipy.Spotify(auth=token)
else:
    print("Can't get token for", username)

current_track = sp.current_user_playing_track()
print(json.dumps(current_track, sort_keys=False, indent=4))

我也尝试过使用sp.currently_playing()。我能够访问其他数据,如sp.current_user_saved_tracks(limit=3, offset=0)。使用我目前所拥有的,它总是错误地说AttributeError: 'Spotify' object has no attribute 'current_user_playing_track'。我已经探索过使用节点,但我真的很想继续使用python。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-07 21:59:47

您正在尝试使用一个尚未出现在最新发布版本中的功能。

您可以看到论PyPI在2017年1月5日发布了当前版本,但您可以看到论吉乌布在2017年5月13日添加了要调用的函数。

第270期第211期都在询问什么时候会将一个新版本推送到PyPI (另外,版本号也有一些奇怪的问题)。

不管怎么说,正如第211号所言:

如果仍然遇到问题,可以直接从github安装包。

代码语言:javascript
运行
复制
pip install git+https://github.com/plamere/spotipy.git --upgrade
票数 2
EN

Stack Overflow用户

发布于 2020-05-27 16:26:34

所以我也一直在尝试访问我现在的歌曲,在网络上跟踪每一个错误的答案3天后……我正在使用Authorization Code Flow,正如这里所说的,https://spotipy.readthedocs.io/en/2.12.0/#client-credentials-flow

只有不访问用户信息的端点才能被访问。

由于无法设置环境变量,所以我使用了另一个脚本。

注意,您应该添加一个重定向链接,如"https://localhost:8000/" in https://developer.spotify.com/dashboard/applications/

下面是我添加信用要素的代码:

代码语言:javascript
运行
复制
import os

class SetCreditentials:

    def __init__(self):
        self.CLIENT_SECRET = os.getenv('SPOTIPY_CLIENT_SECRET')
        self.CLIENT_ID = os.getenv('SPOTIPY_CLIENT_ID')
        self.REDIRECT_URI = os.getenv('SPOTIPY_REDIRECT_URI')
        os.environ['SPOTIPY_CLIENT_ID'] = ""
        os.environ['SPOTIPY_CLIENT_SECRET'] = ""
        os.environ['SPOTIPY_REDIRECT_URI'] = "http://localhost:8000/"

以下是访问任何数据的代码(此处的当前播放轨道):

代码语言:javascript
运行
复制
import spotipy.util as util
import spotipy
import Creditentials

# Authorization Code Flow
user = "213tzif5o7rzyxtijuqdgtfuq"
scope = "user-read-currently-playing"

Creditentials.SetCreditentials()
token = util.prompt_for_user_token(user, scope)
track = spotipy.Spotify(token).current_user_playing_track()
print(track)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49712100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档