- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Spotify 的推荐系统工作,我在 Python 上使用 spotipy。我无法使用函数 current_user_recently_played
,因为 Python 表示属性 current_user_recently_played
无效。
我不知道如何解决这个问题,我绝对需要这些信息来继续我的工作。
这是我的代码:
import spotipy
import spotipy.util as util
import json
def current_user_recently_played(self, limit=50):
return self._get('me/player/recently-played', limit=limit)
token = util.prompt_for_user_token(
username="212887@studenti.unimore.it",
scope="user-read-recently-played user-read-private user-top-read user-read-currently-playing",
client_id="xxxxxxxxxxxxxxxxxxxxxx",
client_secret="xxxxxxxxxxxxxxxxxxxxxx",
redirect_uri="https://www.google.it/")
spotify = spotipy.Spotify(auth=token)
canzonirecenti= spotify.current_user_recently_played(limit=50)
out_file = open("canzonirecenti.json","w")
out_file.write(json.dumps(canzonirecenti, sort_keys=True, indent=2))
out_file.close()
print json.dumps(canzonirecenti, sort_keys=True, indent=2)
响应是:
AttributeError: 'Spotify' object has no attribute 'current_user_recently_played'
最佳答案
Spotify API Endpoints current_user_recently_added
存在于 Github 的源代码中,但我的本地安装中似乎没有。我认为 Python 包索引上的版本已过时,对源代码的最后一次更改是 8 个月前,对 PyPI 版本的最后一次更改是一年多前。
我已经通过修补 Spotify 客户端对象以自己添加方法来使代码示例正常工作,但这种方法通常不是最好的方法,因为它将自定义行为添加到特定实例而不是通用类.
import spotipy
import spotipy.util as util
import json
import types
def current_user_recently_played(self, limit=50):
return self._get('me/player/recently-played', limit=limit)
token = util.prompt_for_user_token(
username="xxxxxxxxxxxxxx",
scope="user-read-recently-played user-read-private user-top-read user-read-currently-playing",
client_id="xxxxxxxxxxxxxxxxxxxxxx",
client_secret="xxxxxxxxxxxxxxxxxxxxxxxx",
redirect_uri="https://www.google.it/")
spotify = spotipy.Spotify(auth=token)
spotify.current_user_recently_played = types.MethodType(current_user_recently_played, spotify)
canzonirecenti = spotify.current_user_recently_played(limit=50)
out_file = open("canzonirecenti.json","w")
out_file.write(json.dumps(canzonirecenti, sort_keys=True, indent=2))
out_file.close()
print(json.dumps(canzonirecenti, sort_keys=True, indent=2))
让它以更正确的方式工作的其他方法是:
这是我在自己的项目中对其进行子类化的部分片段:
class SpotifyConnection(spotipy.Spotify):
"""Modified version of the spotify.Spotipy class
Main changes are:
-implementing additional API endpoints (currently_playing, recently_played)
-updating the main internal call method to update the session and retry once on error,
due to an issue experienced when performing actions which require an extended time
connected.
"""
def __init__(self, client_credentials_manager, auth=None, requests_session=True, proxies=None,
requests_timeout=None):
super().__init__(auth, requests_session, client_credentials_manager, proxies, requests_timeout)
def currently_playing(self):
"""Gets whatever the authenticated user is currently listening to"""
return self._get("me/player/currently-playing")
def recently_played(self, limit=50):
"""Gets the last 50 songs the user has played
This doesn't include whatever the user is currently listening to, and no more than the
last 50 songs are available.
"""
return self._get("me/player/recently-played", limit=limit)
<...more stuff>
关于python - 如何通过 spotipy 检索收听历史对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50276854/
给定歌曲名称和艺术家姓名,我尝试使用 Spotipy 找到正确的歌曲。但是,我看不到同时按歌曲名称和艺术家进行搜索的方法:要么是一个,要么是另一个: sp.search(q="Money", t
编写 Spotipy 脚本以返回给定专辑中的专辑轨道我偶尔会遇到错误: album_id = results["albums"]["items"][0]["uri"] IndexError:
我正在尝试从 Spotify 的一个播放列表中提取所有歌曲。使用 Python 中的 spotipy 包来帮助实现这一点。下面是我目前的代码,它只有 100 首轨道。我尝试在互联网上寻找解决方案,但似
我目前正在研究从 Spotify 的歌曲中提取特定项目。我想从艺术家那里获取具体的发行日期和流派。我正在从如下所示的 Pandas 数据报中提取信息: .我已经尝试手动完成大部分工作,但作为一个包含大
我使用 Spotipy 创建了一个简单的 Python 程序,该程序根据用户设备中下载的轨道显示一些推荐的轨道。但我在使程序变得用户友好方面遇到了一些麻烦。 首先,通过将我的代码上传到 GitHub
我正在尝试运行 Spotipy 文档中的一些简单代码: scope = 'user-library-read' if len(sys.argv) > 1: username = sys.arg
通常,spotipy 需要轨道 ID 作为要传递的参数,以便返回轨道名称。 假设我有两个列表,不是从 Spotify API 获得: 艺术家 [u'Moses Sumney', u'Cherry Gl
好的,伙计们,我已经阅读了我能找到的关于 spotipy 的身份验证方法的所有文档,并且我整理了一小段代码来测试它,但我无法让它工作。基本上发生的事情是我运行应用程序,它给我一个登录链接,我单击该链接
我在 Spotify 的推荐系统工作,我在 Python 上使用 spotipy。我无法使用函数 current_user_recently_played,因为 Python 表示属性 current
我正在使用 spotipy 获取我的播放列表列表。我用 if token: sp = spotipy.Spotify(auth=token) playlists = sp.user_playlists
count = 0 while True: if count > 20: count = 0 current_track
我有一个使用 spotipy 的长时间运行的脚本。一小时后(根据 Spotify API),我的访问 token 过期。我成功地捕获了这个,但我不知道从那里去哪里才能真正刷新 token 。我使用的是
我想使用 Spotipy python 包试验 Spotify API。 首先,在我的 Spotify Developer 应用程序中,我已将redirect_uri设置为https://exampl
当我尝试运行该行时: import spotipy 我收到错误消息,没有名为spotipy的模块。我尝试使用 pip、pip3 和 easy install 来安装模块。当我运行 pip freeze
我想搜索公共(public)播放列表并获取轨道。到目前为止,我的代码可以获取播放列表的名称,但不能获取轨道: import spotipy import sys sp = spotipy.Spotif
我正在尝试编写 Python 脚本以通过 Spotipy 创建 Spotify 播放列表应用。我已经在 Spotify 的开发中心成功创建了一个应用程序,并将必要的变量输入到 Spotipy 的示例中
我正在尝试将 Spotify API 与 spotipy.py python 模块结合使用。我在几个地方看到了一个具体的例子,每个人都说它有效。这是代码: CLIENT_ID = '3de0e551d
我正在尝试在Python中使用Spotipy,spotify API之一,你可以找到这个here 一切正常(除了所有开始部分之外,我没有做太多事情),直到我尝试使用 start_playback()
我一直在尝试用spotipy验证制作播放列表等 import spotipy import spotipy.util as util class buildPlayList(): def __
我正在尝试使用 Spotipy library 提取特定播放列表中的所有轨道对于 python 。 user_playlist_tracks 函数限制为 100 个轨道,无论参数限制如何。 Spoti
我是一名优秀的程序员,十分优秀!