Auto-save your favs from Discover Weekly
Auto-save your favs from Discover Weekly: 一款可以保存发现每周播放列表中喜欢的新音乐的应用程序,帮助您轻松发现音乐。
标签:AI Analytics助手AI Analytics助手如何自动保存 Spotify 的 Discover Weekly 播放列表中的喜爱歌曲
Spotify 是全球最受欢迎的音乐流媒体平台之一。它为用户提供了个性化的音乐推荐服务,包括每周更新的 Discover Weekly 播放列表。Discover Weekly 根据用户的收听习惯和喜欢的艺术家生成,旨在帮助用户发现新的、可能喜爱的音乐。如果你想定期保存这些新发现的歌曲,你可以通过以下步骤来设置自动保存功能:
-
安装 Spotify Web API 客户端
首先,你需要在电脑上安装一个支持 Node.js 的环境(如果还没有的话),然后下载并安装spotipy
和requests
Python 库。这两个库是用于与 Spotify Web API 交互的。你可以在终端或命令提示符中使用 pip 命令进行安装:
bash
pip install spotipy requests -
创建 Spotify 应用程序
登录到你的 Spotify Developer Dashboard (https://developer.spotify.com/dashboard/),创建一个新的应用。选择 “Create a New Application”,输入应用的名称和描述,然后点击“Create”按钮。这将为你提供一个 Client ID 和 Secret。 -
获取授权码
在你的终端或控制台中运行以下命令以获取授权码(Authorization Code):
“`python
from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
client_id = ‘your_client_id’ # 将你的 Client ID 替换为实际值
secret = ‘your_secret’ # 将你的 Secret 替换为实际值
sp_creds = SpotifyClientCredentials(client_id, secret)
token = sp_creds.get_access_token()
“`
- 编写脚本
现在你可以编写一个简单的脚本来检查 Discover Weekly 并保存其中的喜欢曲目。将下面的代码片段复制到你选择的编辑器中,确保填入正确的信息。这个脚本会检查你的 Discover Weekly 并在本地保存所有喜欢的歌曲的信息。
“`python
import json
import sys
import spotipy
import os
def save_discover_weekly():
scope = ‘playlist-modify-private user-read-recently-played’
redirect_uri = ‘http://example.com/’ # 如果你的应用没有提供回调URL,可以使用这个占位符
token = get_access_token(scope, redirect_uri)
sp = spotipy.Spotify(auth=token)
my_playlists = sp.current_user_playlists()["items"]
for playlist in my_playlists:
if playlist['name'] == 'Discover Weekly':
break
else:
sys.exit('Could not find Discover Weekly')
tracks = sp.playlist_tracks(playlist['id'])["items"]
while tracks:
for track in tracks:
try:
if track['item']['is_local'] is False and \
track['item']['popularity'] > 0:
print('Saving {}'.format(track['item']['name']))
data = sp.currently_playing_track()
sp.start_session(data)
sp.save_tracks([track['item']['uri']])
except Exception as e:
print(e)
offset = tracks[-1]['index'] + 1 if tracks else 0
tracks = sp.playlist_tracks(playlist['id'], offset=offset)["items"]
def get_access_token(scope, redirect_uri):
CLIENT_ID = os.environ.get(‘SPOTIPY_CLIENT_ID’, None)
CLIENT_SECRET = os.environ.get(‘SPOTIPY_CLIENT_SECRET’, None)
if CLIENT_ID is None or CLIENT_SECRET is None:
raise LookupError(‘No client id / secret found’)
client_credentials_manager = SpotifyClientCredentials(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
token = client_credentials_manager.get_access_token()
return token
if name == “main“:
save_discover_weekly()
“`
-
配置环境变量
为了使上述脚本正常工作,你需要在系统中设置两个环境变量:SPOTIPY_CLIENT_ID
和SPOTIPY_CLIENT_SECRET
,并将它们分别设置为你在 Spotify Developer Dashboard 上创建的应用的 Client ID 和 Secret。 -
运行脚本
打开终端或命令行窗口,导航到包含你刚刚创建的脚本的目录,然后运行该脚本。脚本将在后台运行,并定期更新你的 Discover Weekly 收藏夹。
请注意,这个脚本假设你有编程基础并且熟悉如何在终端或命令提示符下操作。此外,由于 Spotify API 的限制,你可能需要偶尔手动刷新你的访问令牌。这个脚本是一个起点,可以根据你的需求进一步定制。