clawhub install laosi-spotify📖 About This Skill
name: spotify-controller description: Spotify控制技能 - 终端控制Spotify播放、搜索、管理播放列表。 metadata: {"openclaw": {"requires": {"bins": ["spotifyd", "spotify-cli"]}, "install": []}} tags: [spotify, music, playback, playlist, control] version: 1.0.0 author: laosi source: adapted
Spotify Controller - Spotify控制
> 激活词: Spotify / 播放音乐 / 控制音乐
安装
# Windows: 使用PowerShell或第三方CLI
推荐: spicetify-cli
winget install spicetify-cli
功能
Python实现
import subprocess
import jsonclass SpotifyController:
def __init__(self):
self.cmd_prefix = "spicetify"
def play(self):
subprocess.run([self.cmd_prefix, "play"], capture_output=True)
def pause(self):
subprocess.run([self.cmd_prefix, "pause"], capture_output=True)
def next_track(self):
subprocess.run([self.cmd_prefix, "next"], capture_output=True)
def prev_track(self):
subprocess.run([self.cmd_prefix, "previous"], capture_output=True)
def search(self, query: str) -> list:
result = subprocess.run(
[self.cmd_prefix, "search", query, "--json"],
capture_output=True, text=True
)
if result.stdout:
return json.loads(result.stdout)
return []
def now_playing(self) -> dict:
result = subprocess.run(
[self.cmd_prefix, "status", "--format", "json"],
capture_output=True, text=True
)
if result.stdout:
return json.loads(result.stdout)
return {}
def set_volume(self, level: int):
subprocess.run([self.cmd_prefix, "volume", str(level)], capture_output=True)
命令行操���
# 播放控制
spicetify play
spicetify pause
spicetify next
spicetify previous搜索
spicetify search "周杰伦"显示状态
spicetify status音量
spicetify volume 80
播放列表操作
def create_playlist(name: str, tracks: list):
subprocess.run([self.cmd_prefix, "playlist", "create", name])
for track in tracks:
subprocess.run([self.cmd_prefix, "playlist", "add", track])def play_playlist(playlist_id: str):
subprocess.run([self.cmd_prefix, "playlist", "play", playlist_id])
输出格式
## 当前播放歌曲信息
标题: 晴天
艺术家: 周杰伦
专辑: 叶惠美
时长: 4:29
进度: 1:23 / 4:29 状态
状态: 播放中
音量: 75%
随机: 关闭
循环: 关闭 播放列表
列表: 我的收藏
歌曲数: 128首
使用场景
1. 播放背景音乐 2. 语音控制音乐 3. 定时播放白噪音 4. 自动化DJ