抖音音乐批量下载指南:主页作品原声一键提取
【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader
想留住抖音里那些 BGM?手动一条条下视频再提取音频,太慢了。开源工具 douyin-downloader 直接解决这件事:把一个主页链接贴进去,它按作品批量下载,每条作品的原声音乐随文件一起落盘,视频、图集、合集、音乐都支持,还自动去重和增量更新。适合需要批量存档作品或收集音乐素材的创作者。
工具速览
- 是什么:命令行 + 配置文件的抖音批量下载工具,Python 3.8+,macOS / Linux / Windows 通吃
- 亮点:无水印源自动优选、SQLite 去重、增量跳过、翻页风控时浏览器兜底、下载完整性校验
- 适合谁:批量收藏某位作者作品、收集 BGM 原声、维护个人素材库的人
快速上手:三步跑通首次任务
第一步:装依赖(约 2 分钟)
克隆仓库并安装依赖,配置文件模板config.example.yml也在仓库根目录。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第二步:建配置(约 1 分钟)
复制模板为config.yml,把主页链接填进link即可。
cp config.example.yml config.yml第三步:获取 Cookie(约 2 分钟)
抖音接口需要登录态。跑下面这条命令后浏览器会弹出登录页,登录完回终端按 Enter,Cookie 自动写回配置,之后长期有效。
python -m tools.cookie_fetcher --config config.yml浏览器兜底和 Cookie 自动获取依赖 Playwright,需要时再装:
pip install playwright && python -m playwright install chromium第四步:首次运行(约 1 分钟)
python run.py -c config.yml终端里能看到每一步的状态:解析链接、拉取作品、并发下载。结果统一落在path指定的目录下,默认./Downloaded/。
功能地图
批量抓取
- 支持
post/like/mix/music四种主页模式 → 一个链接抓完发布、喜欢、合集、用过的音乐,跨模式自动去重 - 解析
v.douyin.com短链 → 分享文案里复制的短链接可直接粘贴 - 画质档位可选
original/highest/ 指定分辨率 → 自动挑无水印源和最高码率
自动省时间
- 增量跳过 → 重跑任务只补新作品,老文件不动
- SQLite 加本地文件名双重去重 → 同一作品不会重复下载
- 浏览器兜底 → 分页被风控时自动打开浏览器,你人工过验证码
- 完整性校验 → 比对 Content-Length,下了一半的文件自动清理并重试
附带产物
- 音乐原声、封面、头像、JSON 元数据按开关保存 → 只留想要的那一份
- 每条作品追加一行
download_manifest.jsonl清单 → 方便用脚本二次筛选 - 可选评论采集与视频转写 → 需要数据维度时再打开
一个完整任务演示:批量提取作者主页的音乐原声
以"某位作者全部作品、只要音乐原声"为例。改动config.yml四处,其余保持默认:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 目标主页 path: ./Downloaded/ mode: [post] video: false # 不存视频本体 music: true # 每条作品保存原声 number: post: 100 # 上限 100 条,0 为不限运行命令只有一条:
python run.py -c config.yml产物目录(日期取自作品发布时间,不是下载时间):
Downloaded/ └── 作者昵称/ └── post/ ├── 2024-02-07_作品标题_aweme_id/ │ ├── 2024-02-07_作品标题_aweme_id.mp3 │ └── 2024-02-07_作品标题_aweme_id_data.json └── 2024-03-15_另一条作品_aweme_id/ └── ...前后对比:手动方式要逐条下载视频、逐个用转码工具抽音频,还要自己重命名;这里一次运行后 100 条原声全部命名好、分好文件夹,重复运行只补漏。
关键配置速查
| 参数 | 作用 | 建议值 |
|---|---|---|
link | 下载目标,可多条 | 主页 / 视频 / 合集 / 音乐链接 |
path | 输出目录 | ./Downloaded/ |
mode | 主页下载模式 | [post]起,按需加like/mix/music |
number | 各模式条数上限 | 0不限 |
video_quality | 选码率档位 | highest;追原片用original |
thread | 并发下载数 | 5 |
increase | 增量跳过已下 | true |
start_time/end_time | 按发布时间过滤 | YYYY-MM-DD |
database | SQLite 记录与去重 | true |
故障与排查
- 只抓到 20 条就停 → 分页触发了风控。确认
browser_fallback.enabled: true且headless: false,弹出浏览器后手动完成验证再关窗口。 - 批量任务大面积失败 → 多半是登录态失效。重跑
python -m tools.cookie_fetcher --config config.yml;在交互终端直接跑run.py也会自动弹浏览器补登录。 - 删了文件却没重下 → 去重是数据库加本地文件名双重判断,只删文件、库里仍有记录时会被跳过。补一条:
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<id>';"。 - 进度条反复刷屏 → 检查
progress.quiet_logs是否被改成了false;调试日志临时加--show-warnings即可,跑完记得去掉。
使用边界
本工具面向技术研究、学习交流与个人数据管理。collect/collectmix只作用于当前登录账号的收藏夹;浏览器兜底目前只对post模式完整验证;HLS 直播源只存 playlist,需要 ffmpeg 后处理。建议保持默认限速,素材仅个人收藏使用,别侵犯隐私与版权。
收尾
一句定位:douyin-downloader 把"主页批量下载 + 原声落盘 + 自动去重"打包成一条命令的事。
- 先用一条单作品链接验证环境和 Cookie
- 日常任务保持
increase: true,让它只补新作品 - Cookie 失效就重跑 cookie_fetcher,不用改其他配置
【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考