欢迎访问宙启技术站
智能推送

使用Python编写一个简单的Spotify播放器

发布时间:2023-12-28 19:55:31

要编写一个简单的Spotify播放器,首先需要使用Python的spotipy库来实现与Spotify API的交互。spotipy是一个非官方的Python库,提供了简单的接口来访问Spotify的各种功能。

以下是一个简单的Spotify播放器的代码示例:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

class SpotifyPlayer:
    def __init__(self, client_id, client_secret, redirect_uri):
        # 创建SpotifyOAuth对象,用于进行认证
        self.sp_auth = SpotifyOAuth(client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, scope="user-library-read user-top-read streaming")

        # 通过认证获取访问令牌
        self.sp = spotipy.Spotify(auth_manager=self.sp_auth)

    def search_track(self, track_name):
        # 通过track_name在Spotify上搜索歌曲
        results = self.sp.search(q=track_name, type="track", limit=1)

        if len(results['tracks']['items']) > 0:
            # 获取搜索到的      首歌曲的id和名称
            track_id = results['tracks']['items'][0]['id']
            track_name = results['tracks']['items'][0]['name']
            print(f"找到歌曲: {track_name}")

            return track_id
        else:
            print("未找到指定的歌曲")
            return None

    def play(self, track_id):
        device_id = self.get_device_id()

        if device_id:
            # 播放指定id的歌曲
            self.sp.start_playback(device_id=device_id, uris=[f"spotify:track:{track_id}"])
        else:
            print("未找到可用设备,请确保已登录Spotify并连接到设备")

    def get_device_id(self):
        devices = self.sp.devices()

        if devices['devices']:
            # 返回      个设备的id
            return devices['devices'][0]['id']
        else:
            return None


# 使用例子
if __name__ == "__main__":
    # 请填写你在开发者账号中创建的应用程序的Client ID、Client Secret和Redirect URI
    client_id = "your_client_id"
    client_secret = "your_client_secret"
    redirect_uri = "your_redirect_uri"

    # 创建SpotifyPlayer对象
    sp_player = SpotifyPlayer(client_id, client_secret, redirect_uri)

    # 搜索并播放歌曲
    track_name = input("请输入要播放的歌曲名字: ")
    track_id = sp_player.search_track(track_name)

    if track_id:
        sp_player.play(track_id)

以上示例代码实现了一个简单的Spotify播放器类SpotifyPlayer,其中包括了搜索歌曲和播放歌曲的功能。在使用例子部分,用户可以输入要播放的歌曲名字,并使用search_track方法搜索歌曲,然后使用play方法播放搜索到的歌曲。

要执行以上代码,需要先安装所需的库。可以使用以下命令在终端中安装spotipy库:

pip install spotipy

然后,将你在Spotify开发者账号中创建的应用程序的Client ID、Client Secret和Redirect URI填入到代码中的client_idclient_secretredirect_uri变量中。

执行代码后,程序会提示你输入要播放的歌曲名字,然后会搜索和播放该歌曲。 如果找到了指定的歌曲,它会在终端输出"找到歌曲: <歌曲名字>",否则输出"未找到指定的歌曲"。