搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

spotDL/spotify-downloader

多媒体与设计

命令行工具,从 Spotify 播放列表匹配 YouTube 歌曲并下载,附带封面、歌词和元数据。

26,653
2,308
Python
MIT
创建于 10 年前

项目介绍

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" 的视频)可能下载失败。

  1. 从 PyPI 安装:pip install spotdl,部分系统需把 pip 换成 pip3。也可以把 FFmpeg 装进 spotDL 目录:spotdl --download-ffmpeg;Deno 同理:spotdl --download-deno。
  2. 传入 Spotify URL 下载播放列表或单曲:spotdl [urls]。默认操作就是 download,会从 YouTube 获取歌曲并嵌入元数据。
  3. 如果以脚本方式运行不成功,改用模块形式: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 生成,更新于 ,以项目官方文档为准。