标签: spotipy

Spotipy:如何从播放列表中读取超过100首曲目

我正在尝试使用Spotipy库为python 拉出某个播放列表中的所有曲目.

无论参数限制如何,user_playlist_tracks功能都限制为100首曲目.Spotipy文档将其描述为:

user_playlist_tracks(user,playlist_id = None,fields = None,limit = 100,offset = 0,market = None)

获取用户拥有的播放列表的曲目的完整详细信息.

参数:

  • 用户
  • 用户playlist_id的id
  • 播放列表字段的ID
  • 哪些字段返回限制
  • 返回偏移量的最大轨道数
  • 返回市场的第一条轨道指数
  • ISO 3166-1 alpha-2国家/地区代码.

在使用Spotify进行身份验证后,我目前正在使用以下内容:

username = xxxx
playlist = #fromspotipy
sp_playlist = sp.user_playlist_tracks(username, playlist_id=playlist)
tracks = sp_playlist['items']
print tracks
Run Code Online (Sandbox Code Playgroud)

有没有办法返回100多首曲目?我已尝试在函数参数中设置limit = None,但它返回错误.

python spotipy

4
推荐指数
1
解决办法
3345
查看次数

使用 Spotipy 将曲目添加到 Spotify 中的播放列表

我正在使用 Spotify API 的 Python 绑定来列出艺术家的热门曲目并将它们添加到播放列表中,但每次都失败,就好像它除了不同类型的输入一样。

New_Track_List 是一个字符串,其中包含顶部轨道查找的输出:

1:URI:

示例:“spotify:track:1pAyyxlkPuGnENdj4g7Y4f,spotify:track:7D2xaUXQ4DGY5JJAdM5mGP,spotify:track:74mG2xIxEUJwHckS0Co6jF,spotify:track:2rjqDPbLlb9QRlcj8DVM”

使用 URI 我从函数中得到这个

sp.user_playlist_add_tracks(username, playlist_id=playlist, tracks=New_Track_List)
Run Code Online (Sandbox Code Playgroud)

追溯:

spotipy.client.SpotifyException: http status: 400, code:-1 - https://api.spotify.com/v1/users/smokieprofile/playlists/40aijTeKoxo5u1VSS9E3UQ/tracks: You can add a maximum of 100 tracks per request.
Run Code Online (Sandbox Code Playgroud)

字符串中只有 20 首曲目。

第二次尝试:轨道 ID:

示例:“1pAyyxlkPuGnENDj4g7Y4f、7D2xaUXQ4DGY5JJAdM5mGP、74mG2xIxEUJwHckS0Co6jF、2rjqDPbLlbQRlcj8DVM9kn”

相同的回溯输出。

使用单个轨道 ID

sp.user_playlist_add_tracks(username, playlist_id=playlist, tracks="spotify:track:74mG2xIxEUJwHckS0Co6jF")
Run Code Online (Sandbox Code Playgroud)

尝试仅添加一首曲目,让我收到以下消息:

spotipy.client.SpotifyException: http status: 400, code:-1 - https://api.spotify.com/v1/users/smokieprofile/playlists/40aijTeKoxo5u1VSS9E3UQ/tracks: Invalid track uri: spotify:track:s
Run Code Online (Sandbox Code Playgroud)

仅使用 Track ID 的相同消息,就好像它只检查传递字符串的第一个字母一样。

    sp.user_playlist_add_tracks(username, playlist_id=playlist, tracks="7D2xaUXQ4DGY5JJAdM5mGP")
Run Code Online (Sandbox Code Playgroud)

错误回溯:

spotipy.client.SpotifyException: http status: 400, code:-1 - https://api.spotify.com/v1/users/smokieprofile/playlists/40aijTeKoxo5u1VSS9E3UQ/tracks: Invalid track uri: spotify:track:7
Run Code Online (Sandbox Code Playgroud)

python spotify spotipy

3
推荐指数
1
解决办法
4212
查看次数

Spotipy - 从曲目名称中获取曲目ID

通常,spotipy需要跟踪ID作为要传递的参数,以便返回曲目名称.

假设我有两个列表,不是从Spotify API获得的:

  1. 艺术家

    [u'Moses Sumney', u'Cherry Glazerr', u'Danny Brown', u'NxWorries']
    
    Run Code Online (Sandbox Code Playgroud)

    和他们各自的歌曲:

  2. 轨道

    [u'Lonely World', u"Told You I'd Be With the Guys", u'Really Doe [ft. Kendrick Lamar, Ab-Soul, and Earl Sweatshirt]', u'Lyk Dis']
    
    Run Code Online (Sandbox Code Playgroud)

是否有可能以相反的方式做到并获得跟踪ID?

python spotipy

2
推荐指数
1
解决办法
885
查看次数

AttributeError:“ Spotify”对象没有属性“ current_user_saved_tracks”

使用Spotipy,并尝试“ current_user_recently_played”

token = util.prompt_for_user_token(username, scope = scope, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri)

sp = spotipy.Spotify(auth = token)

saved = sp.current_user_saved_tracks()
print(saved)
recent = sp.current_user_recently_played()
print(recent)
Run Code Online (Sandbox Code Playgroud)

sp.current_user_saved_tracks()运行得很好,即使文档https://spotipy.readthedocs.io/en/latest/#more-examples中明确包含sp.current_user_recently_played()也不存在。

跑步-v2.4.4-2017年1月4日

提前谢谢。

Traceback (most recent call last):
  File "C:\Users\Martin\Google Drive\Python\Spotify\try_req.py", line 19, in <module>
recent = sp.current_user_recently_played()
AttributeError: 'Spotify' object has no attribute 'current_user_recently_played'
Run Code Online (Sandbox Code Playgroud)

python python-3.x spotipy

2
推荐指数
1
解决办法
1848
查看次数

Google Colab - Spotipy 没有将我重定向到指定的redirect_uri

我想使用 Spotipy python 包来试验 Spotify API。

\n

首先,在我的 Spotify Developer 应用程序中,\n我已将redirect_uri 设置为https://example.com/callback/

\n

这是我尝试在 Google Colab 笔记本上运行的代码

\n
import pandas as pd\nimport spotipy\nfrom spotipy.oauth2 import SpotifyClientCredentials\n\nspotify_details = {\n    \'client_id\' : \'<hidden>\',\n    \'client_secret\':\'<hidden>\',\n    \'redirect_uri\':\'https://example.com/callback/\'}\n\nscope = "user-library-read user-follow-read user-top-read playlist-read-private" \n\nsp = spotipy.Spotify(\n        auth_manager=spotipy.SpotifyOAuth(\n          client_id=spotify_details[\'client_id\'],\n          client_secret=spotify_details[\'client_secret\'],\n          redirect_uri=spotify_details[\'redirect_uri\'],    \n          scope=scope))\n\nresults = sp.current_user_saved_tracks()\nfor idx, item in enumerate(results[\'items\']):\n    track = item[\'track\']\n    print(idx, track[\'artists\'][0][\'name\'], " \xe2\x80\x93 ", track[\'name\'])\n
Run Code Online (Sandbox Code Playgroud)\n

这就是我所看到的输出:

\n

在此输入图像描述

\n

但我的浏览器没有将我重定向到任何 URL 来接收身份验证令牌

\n

我究竟做错了什么?

\n

python spotify jupyter-notebook spotipy google-colaboratory

2
推荐指数
1
解决办法
1921
查看次数

多个范围 - WebAPI Spotify (Spotipy)

我的问题是:是否可以在 WebAPI Spotify(特别是 Spotipy)中同时使用两个或多个范围?例如使用范围“user-modify-playback-state”和“user-library-read”

谢谢

spotify spotipy

1
推荐指数
1
解决办法
2314
查看次数

如何在spotipy中根据曲目名称和艺术家搜索曲目

我需要根据歌曲名称和艺术家姓名为用户检索一首歌曲(这样我就得到了正确的歌曲)。最终目标是获取轨道 id。这是我认为可行的代码:

searchResults = spotifyObject.search(q="artist:" + artist + "track:" + searchQuery, type="track")
Run Code Online (Sandbox Code Playgroud)

其中,artist 是艺术家/乐队的名称,searchQuery 是曲目的名称。这应该返回特定轨道的 JSON 块,但返回:

{
"tracks": {
    "href": "https://api.spotify.com/v1/search?query=artist%3AHarry+Stylestrack%3AWatermelon+Sugar&type=track&offset=0&limit=10",
    "items": [],
    "limit": 10,
    "next": null,
    "offset": 0,
    "previous": null,
    "total": 0
}
Run Code Online (Sandbox Code Playgroud)

}

python spotify spotipy

1
推荐指数
1
解决办法
6383
查看次数

如何使用spotipy从播放列表中获取playlist_id?

所以我试图弄清楚如何从我创建的播放列表中获取 playlist_id ,但即使在阅读了不稳定的文档后,我也没有找到使用哪种方法。

import spotipy
import json
import sys
from spotipy.oauth2 import SpotifyOAuth
import requests
import os
import dotenv
from json.decoder import JSONDecodeError
SPOTIPY_CLIENT_ID="secret"
SPOTIPY_CLIENT_SECRET="secret"

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope="playlist-modify-private",
                                                            client_id=SPOTIPY_CLIENT_ID,
                                                            client_secret=SPOTIPY_CLIENT_SECRET,
                                                            redirect_uri="https://google.com",
                                                            cache_path="token.txt"))
user_id = sp.current_user()["id"] # grabs user name
sp.user_playlist_create(user_id,"Funky Music",public=False,collaborative=False, description="Test")
Run Code Online (Sandbox Code Playgroud)

这就是我对代码的了解程度。

spotify python-3.x spotipy

0
推荐指数
1
解决办法
2900
查看次数