DeepSeek Harness(DSH)采用插件化架构。在开发智能体处理音乐资源时,往往需要解决跨平台下载、格式转换(如 MP3 320k)以及歌词获取的问题。dsh-song-download 插件直接解决这些需求。
插件定位¶
这是一个由 Raywh 维护的开源插件(MIT 协议)。它提供搜索与下载两大核心能力,能够将 B站、YouTube 等平台的音频资源转换为 MP3 320k 格式(酷狗、QQ音乐等播放器通用),并自动附带 LRC 歌词。
核心功能¶
插件提供以下两个工具:
song_search:搜索歌曲。优先调用 B站 搜索接口,B站反爬失败时自动切换 YouTube 搜索。返回结果包含标题、时长、上传者及链接。song_download:下载音频到工作区downloads/目录。默认输出 MP3 320k(带 ID3 标签),也支持下载原始音质。
工作流程¶
从用户发出指令到文件生成,流程如下:
- 用户输入指令(如「下载周杰伦的晴天」),触发
song_download。 - 插件自动搜索 B站 首个结果。
- 若遇到 B站 412 反爬限制,自动切换至 YouTube 源。
- 使用
yt-dlp获取最佳音频流。 - 通过
ffmpeg将音频转码为 MP3 320k,并写入 ID3 标签(标题、歌手、专辑)。 - 优先提取站点字幕转为 LRC,若无字幕则通过网易云音乐 API 补抓歌词。
- 最终输出「歌手 - 歌名.mp3」和「歌手 - 歌名.lrc」文件。
安装与启用¶
安装该插件需要 DSH 环境。
dsh plugin --profile main add dsh-song-download
安装后需重启 dsh web 进程,该插件会对所有会话生效。
典型用法¶
安装完成后,可以通过自然语言指令进行操作:
- 「下载周杰伦的晴天」
- 「搜一下 Beyond 海阔天空」
- 「把这几个链接的音频下载到 downloads」(支持传入 URL 批量下载)
依赖与注意事项¶
依赖项:
* Python 3 环境
* yt-dlp 库(pip install yt-dlp)
* ffmpeg(用于转码,可通过 PATH 环境变量配置,或通过 pip install imageio-ffmpeg 内嵌二进制提供)
注意事项:
* 插件以当前 DSH 进程的权限运行,请确保工作目录有写入权限。
* 下载前请确认你有权使用该资源,并遵守各平台的版权条款。
* 如需查看源码或贡献,请访问 GitHub 仓库。