在将我的spotipy API python代码从本地设备传输到基于云的系统时遇到问题



我对python完全陌生。我有一点Matlab编程的经验,但实际上没有什么太激烈的,所以我是一个非常缺乏经验的程序员。到目前为止,我已经在youtube视频和其他论坛帖子上度过了难关,但我想我需要一些帮助来应对我的情况。

我不想详细介绍,但从本质上讲,Spotify对用户创建的播放列表的报告系统已经完全崩溃,用户可以通过垃圾邮件报告来删除播放列表的标题、描述和图像。我受到了很大的打击,因为我有一个相当高调的播放列表,几乎跟不上(最近每天大约被打击20次(。Spotify已经意识到了这个错误,但据我所知,它不会很快得到修复,因为我已经在论坛上搜索了很多年,其他人也一直在这样做。正因为如此,我正试图编写一些我可以每分钟或5分钟左右运行一次的代码,以自动修复我的播放列表数据,而无需检查我的电子邮件或应用程序,查看我被举报的情况,并自行修复。

我创建了一个在本地工作的代码,我将在下面发布,但当我试图转移到某种基于云的服务器,如AWS lambda、谷歌云或Wayscript时,遇到了一个障碍。如果我在电脑的终端上运行代码,代码会立即运行并完成我需要的内容,一点问题都没有。当我试图把它移到其中一个网站时,我无法完成它,也不知道会出什么问题。我在AWS上增加了超时时间和cpu使用量,但即使是4GB和60秒(我尝试过的最大值(,它仍然无法完成。老实说,我很困惑,因为它看起来像是非常基本的代码(显然在我的本地设备上运行时没有问题(,所以我很想知道是否有人知道解决方案。这是代码:

import spotipy
from spotipy.oauth2 import SpotifyOAuth
import spotipy.util as util
import json
scope = 'playlist-modify-public ugc-image-upload'
username = 'myusername'

token = util.prompt_for_user_token(username,scope,client_id='myclientid',client_secret='myclientsecret',redirect_uri='myredirect')
spotifyObject = spotipy.Spotify(auth=token)
playlist_name = "myplaylist"
playlist_description = "my description"
id = "spotify:playlist:myid"
image = 'bit64image'
spotifyObject.user_playlist_change_details(user=username,playlist_id=id,name=playlist_name,public=True,collaborative=None,description=playlist_description)
spotifyObject.playlist_upload_cover_image(playlist_id=id,image_b64=image)

print("Playlist updated")

我已经尝试过将util和OAuth与ID、Secret和URI的环境变量一起使用,但两者似乎都不起作用。也许这与spotipy模块有关,但我将其压缩并添加到AWS层,安装在谷歌云上,并且它已经内置到Wayscript中,所以我不认为这是问题所在。同样奇怪的是,这似乎是同一个问题,因为脚本从未在所有3个服务上完成。如果你有什么建议,请告诉我。这是一个非常烦人的项目,所以如果有人能帮助我,我会很高兴的。谢谢

所以不知道这是否有效,但您可以尝试将缓存文件复制到脚本所在的远程目录,然后看看它是否有效。

在运行.cache文件脚本的本地目录中查找(如果需要,请勾选"显示隐藏文件"。(

如果你在文本编辑器中打开.cache文件,你会看到一些关于访问令牌、刷新令牌等的内容。想想Spotipy需要所有这些才能在本地或远程运行。

有一种感觉,这是你问题的根源,可能是错误的,但一定要试一试!:(

最新更新