spotDL/spotify-downloader
多媒体与设计命令行工具,从 Spotify 播放列表匹配 YouTube 歌曲并下载,附带封面、歌词和元数据。
项目介绍
spotDL 接收 Spotify 播放列表、专辑或单曲链接,到 YouTube 上搜索匹配的音乐并下载音频,同时写入专辑封面、歌词和元数据。它面向希望把 Spotify 收藏保存为本地文件、且习惯使用终端的用户。spotDL 本身不托管或串流音频,而是以 YouTube 作为下载来源,项目称这样可以避开直接从 Spotify 下载带来的问题。
除默认的 download 外,CLI 还提供几种操作:save 只保存 Spotify 元数据;sync 让本地目录与播放列表文件保持一致;url 输出便于使用的歌曲链接;web 启动功能有限的网页界面,仅支持单曲下载;meta 更新已有歌曲文件的元数据。
快速使用
准备:Python 与 pip,以及 FFmpeg。强烈建议安装 Deno,因为 spotDL 通过 yt-dlp 下载 YouTube 内容,部分视频需要 Deno;缺少 Deno 时,一些歌曲(包括标记为 "made for kids" 的视频)可能下载失败。
- 从 PyPI 安装:
pip install spotdl,部分系统需把pip换成pip3。也可以把 FFmpeg 装进 spotDL 目录:spotdl --download-ffmpeg;Deno 同理:spotdl --download-deno。 - 传入 Spotify URL 下载播放列表或单曲:
spotdl [urls]。默认操作就是download,会从 YouTube 获取歌曲并嵌入元数据。 - 如果以脚本方式运行不成功,改用模块形式:
python -m spotdl [urls]。
其他安装方式包括 Releases 页面的预编译可执行文件、Arch 的 AUR 包、Termux 安装脚本、Docker,以及用 uv 从源码构建;请按所选方式查看安装指南。
要让本地目录与播放列表同步,先创建同步文件:spotdl sync [query] --save-file {filename}.spotdl,之后运行 spotdl sync {filename}.spotdl;新增歌曲会下载,移除的歌曲会删除。全部选项见 spotdl -h。
使用约束
- FFmpeg 是必需依赖。Deno 虽写作推荐,但对通过 yt-dlp 稳定下载 YouTube 内容很关键。
- 音频来自 YouTube。项目称始终选择可用的最高码率:普通用户 128 kbps,YouTube Music 高级会员 256 kbps。
- 项目声明用户需对自己的行为和可能的法律后果负责,不支持未经授权下载受版权保护的内容。
- 网页界面功能有限,只支持下载单曲。
- 项目采用 MIT 许可证。
HotRepo 点评
现有 HotRepo 数据中没有该仓库的日榜名次、Star 曲线采样或 Hacker News 讨论记录,因此没有热度或讨论层面的信号可报告。这里值得关注的技术事实是 CLI 的长期定位和依赖链:下载结果取决于 YouTube 匹配情况,也取决于 FFmpeg/Deno 是否可用;普通用户默认 128 kbps 的上限是实际使用中的限制,而非缺陷。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。