试图自动化我的 spotify 每日混音播放列表,但我不知道哪里出了问题

问题描述 投票:0回答:0

使用 spotify API,我希望代码将我的每日混音保存在一个播放列表中,但代码不断遇到此错误。This is the error 代码遇到的问题。我为此使用了 spotify api,并遵循了每周保存发现的 youtube 教程。

这个具有访问令牌的 sp 变量似乎有问题但是教程在 github 上有相同的代码

import spotipy
import time
from spotipy.oauth2 import SpotifyOAuth

from flask import Flask, request, url_for, session, redirect
#instance of a flask class and assigning it to var app
app = Flask(__name__)
#User stays signed in
app.config['SESSION_COOKIE_NAME'] = 'Spotify Cookie'
#random value assigned to cookie, used to prevent unauthorized access
access_token = 'BQAi7oSn2aAXtyv83hQZWhGfT_v6OtFS0Q4FQ7fDQ_g8H3bZ-bdAFblHSrFNroTsx6WjEuGUN_FDjMdQtLwdRPz01ynhDHsZmppX9giU_y242IgbJc-o1sMevCdtJpbgh7qQtOJKdrNLC4w5Uyg3oFQmDkP-Q6WNEsAgSnUchFK-6DiisctsEKjGJX5sWSVOhv7ytcoP_JLy6zva7HmVOw8zQbNkqCCyA1EAEIzuy1sq2IkHzPlhkuEfNYTBjKd8vg_sF2_y9OZC46vMIXkUf8tYXDUnMdEoiWHX5EDCr9fSP3jjbk0rzd6x-Qbbb5YeHcTWv0GgL-C9MLEYAD0Vtfm-8tNISvt_4oUfus4SlWo'
app.secret_key =  'mnski4534ewfsv@tygh'
TOKEN_INFO = 'token_info'
#Flask app routes
@app.route('/')
    #this funcyion will bw called when address to the route is reached here
def login():
    #generate authorization url
    auth_url = create_spotify_oauth().get_authorize_url()
    return redirect(auth_url)

@app.route('/redirect')
def redirect_page():
    #This makes sure any stored user data is cleared
    session.clear()
#requested args are extracted
    code = request.args.get('code')
    token_info = create_spotify_oauth().get_access_token(code)
    session[TOKEN_INFO] = token_info
    return redirect(url_for('save_daily_mix', external=True))

@app.route('/saveDailyMix')
def save_daily_mix():
    try:
        token_info = get_token()
    except:
        print("User not logged in")
        return redirect("/")
    sp = spotipy.Spotify(auth=token_info['access_token'])
    current_playlists =  sp.current_user_playlists()['items']

    daily_mix_playlist_id = None
    daily_mix_monali_playlist_id = None

    for playlist in current_playlists:
        if(playlist['name'] == 'Daily Mix'):
            daily_mix_playlist_id = playlist['id']
        if (playlist['name'] == "Daily Mix (Monali's Version)"):
             daily_mix_monali_playlist_id= playlist['id']
    if not daily_mix_playlist_id:
        return "Daily Mix not found"

    daily_mix_playlist = sp.playlist_items(daily_mix_playlist_id)
    song_uris = []
    for song in daily_mix_playlist['items']:
        song_uri = song['track']['uri']
        song_uris.append(song_uri)
    sp.user_playlist_add_tracks("4juttm1u5ir1f6z0118fzmx6", daily_mix_monali_playlist_id, song_uris, None)
    return ('Daily mix songs added successfully')
def get_token():
    #Retrieing token
    token_info = session.get(TOKEN_INFO, None)
    #if token doesn't exist redirected to login
    if not token_info:
     redirect(url_for('login', _external=False))

    now = int(time.time())

    is_expired = token_info['expires_at'] -now < 60
    if (is_expired):
        spotify_oauth = create_spotify_oauth()
        token_info = spotify_oauth.refresh_access_token(token_info['refresh_token'])
        return token_info
def create_spotify_oauth():
    return SpotifyOAuth(
                        client_id = "0297b508a8b043e38228b45d1c28e7b0",
                        client_secret = "49a065e7469f428b87484af13c9e8521",
                        redirect_uri = url_for('redirect_page', _external = True),
                        scope = 'user-library-read playlist-modify-public playlist-modify-private'
    )
app.run(debug=True)
python api spotify
© www.soinside.com 2019 - 2024. All rights reserved.