Django 授权上的 Spotipy,无需复制粘贴到控制台
Spotipy on Django authorization without copy-paste to console
我有一个 Django 站点,我想在其中使用 spotipy 来查找歌曲的统计信息,例如受欢迎程度和观看次数。我现在有这个代码:
import spotipy
import spotipy.util as util #luxury
import json
import webbrowser
username = 'dgrqnco2rx8hdu58kv9if9eho'
scope = 'user-read-private user-read-playback-state user-modify-playback-state'
token = util.prompt_for_user_token(username, scope, client_id='08bb526962574a46b359bffc56048147',
client_secret='bf6d4184c8ae40aca207714e02153bad', redirect_uri='http://google.com/')
sp_obj = spotipy.Spotify(auth=token)
ss = 'name of song'
if ss.__contains__('('):
q = ss[0:ss.index('(')]
elif ss.__contains__('['):
q = ss[0:ss.index('[')]
elif ss.__contains__('['):
q = ss[0:ss.index('{')]
else:
q = ss
query = sp_obj.search(q, 1, 0, 'track')
#<<<<<<<<<<SONG>>>>>>>>>>
#FIND THE SONG URI
song_uri = query['tracks']['items'][0]['uri']
track = sp_obj.track(song_uri)
track_data = sp_obj.audio_features(song_uri)
song_popularity = track['popularity']
song_danceability = track_data[0]['danceability']
song_energy = track_data[0]['energy']
song_loudness = track_data[0]['loudness']
song_tempo = track_data[0]['tempo']
但是 spotipy 将我重定向到授权页面,我需要在控制台中粘贴 url。然而,普通用户无权访问此控制台。 那么如何通过其他方式进行授权甚至绕过呢?
我正在考虑获得一个 spotify 帐户,每个用户都将在其中登录,这样用户就不必进行授权,也不必拥有 spotify 帐户。这可能吗?如果不能,我还能尝试什么?
您不能使用 util.prompt_for_user_token
,因为它只是一个仅供本地使用的助手。
您需要将代码安排为 API 端点,以便多个用户可以登录。这是一个完整的工作示例,可以让多个用户登录 https://github.com/plamere/spotipy/blob/master/examples/app.py。
它使用 Flask,但您可以轻松地将其改编为 Django。
我有一个 Django 站点,我想在其中使用 spotipy 来查找歌曲的统计信息,例如受欢迎程度和观看次数。我现在有这个代码:
import spotipy
import spotipy.util as util #luxury
import json
import webbrowser
username = 'dgrqnco2rx8hdu58kv9if9eho'
scope = 'user-read-private user-read-playback-state user-modify-playback-state'
token = util.prompt_for_user_token(username, scope, client_id='08bb526962574a46b359bffc56048147',
client_secret='bf6d4184c8ae40aca207714e02153bad', redirect_uri='http://google.com/')
sp_obj = spotipy.Spotify(auth=token)
ss = 'name of song'
if ss.__contains__('('):
q = ss[0:ss.index('(')]
elif ss.__contains__('['):
q = ss[0:ss.index('[')]
elif ss.__contains__('['):
q = ss[0:ss.index('{')]
else:
q = ss
query = sp_obj.search(q, 1, 0, 'track')
#<<<<<<<<<<SONG>>>>>>>>>>
#FIND THE SONG URI
song_uri = query['tracks']['items'][0]['uri']
track = sp_obj.track(song_uri)
track_data = sp_obj.audio_features(song_uri)
song_popularity = track['popularity']
song_danceability = track_data[0]['danceability']
song_energy = track_data[0]['energy']
song_loudness = track_data[0]['loudness']
song_tempo = track_data[0]['tempo']
但是 spotipy 将我重定向到授权页面,我需要在控制台中粘贴 url。然而,普通用户无权访问此控制台。 那么如何通过其他方式进行授权甚至绕过呢?
我正在考虑获得一个 spotify 帐户,每个用户都将在其中登录,这样用户就不必进行授权,也不必拥有 spotify 帐户。这可能吗?如果不能,我还能尝试什么?
您不能使用 util.prompt_for_user_token
,因为它只是一个仅供本地使用的助手。
您需要将代码安排为 API 端点,以便多个用户可以登录。这是一个完整的工作示例,可以让多个用户登录 https://github.com/plamere/spotipy/blob/master/examples/app.py。
它使用 Flask,但您可以轻松地将其改编为 Django。