如何用 DouK-Downloader 提取抖音作品 BGM 存成 MP3:完整下载实操指南
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
DouK-Downloader 是一款抖音 / TikTok 作品下载工具,能把作品视频连同背景音乐一起采集下来。读完本文,你会配置音乐开关、跑通第一次 BGM 提取,并掌握单条下载、账号批量和 Web API 三种入口。抖音作品 mp3 提取从此有固定流程。
抖音 / TikTok 接口返回的作品数据里,本身就带一个独立的音乐源地址(music_url),DouK-Downloader 直接按这个地址拉文件,不需要对视频做二次解码,所以 mp3 就是平台提供的原始音质,没有转码损失。FFmpeg 只在直播录制场景才用得上。下载任务实现见 src/downloader/download.py。
开跑前检查清单:Python 环境、Cookie 与配置文件
- Python 3.12 或更高版本(项目
pyproject.toml声明requires-python = ">=3.12",低版本装不上依赖) - 获取仓库代码:
git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader(后续所有命令都在该目录执行) - 浏览器登录抖音网页版,复制 Cookie 填入配置文件的
cookie参数;TikTok 对应cookie_tiktok(登录凭证,缺失时多数数据接口直接报错) - FFmpeg(可选,仅直播录制需要,普通作品音乐提取用不上)
- 配置文件
settings.json在首次运行python main.py时自动生成于程序根目录,之后所有修改都改这个文件
第一次下载:打开 music 开关并跑通一条链接
目标:给一条作品链接,拿到它同名的 mp3 文件。
- 打开
settings.json,把"music": false改成true,保存(音乐下载总开关,不开则永不产出 mp3) - 运行
python main.py,进入主菜单后选择「批量下载链接作品(抖音)」,预期出现二级菜单 - 选择「手动输入待采集的作品链接」,粘贴抖音分享链接并回车,预期终端提示提取到作品并开始下载
- 观察进度条:每个作品会同时出现「【视频】」与「【音乐】」两条任务
- 进度结束后打开
Volume/Download/目录查看文件
看到视频旁边多了一个同名.mp3且能正常播放 = 成功。
| 参数 | 作用 | 建议值 |
|---|---|---|
music | 是否随作品一起下载 mp3 | true |
folder_name | 视频与 mp3 的落盘文件夹名 | Download(默认) |
name_format | 文件名由哪些字段按空格顺序拼成 | create_time type nickname desc(默认) |
三种下载用法:终端、批量配置与接口总览
| 用法 | 入口路径 | 适合谁 | 产出位置 |
|---|---|---|---|
| 终端交互 | 主菜单「批量下载链接作品(抖音)」 | 临时下几条,最常用 | Volume/Download/ |
| 账号作品批量 | accounts_urls参数 + 主菜单「批量下载账号作品(抖音)」 | 整账号搬运 | {root}/UID{id}_{mark}_发布作品/ |
| Web API | 主菜单「Web API 模式」,默认端口 5555 | 集成进自己的脚本 | 返回music_url地址,自行下载 |
终端交互模式:从文本文档批量读取作品链接
差异只在链接来源:二级菜单除了手动输入,还有「从文本文档读取待采集的作品链接」,把一行一个的分享链接存成 txt 即可一次处理几十条。music开关对三种用法同样生效,落点与命名规则不变。
批量配置全部账号作品的入口:accounts_urls 参数
先在settings.json的accounts_urls数组里登记账号,每个条目四个关键项:mark(备注)、url(主页链接)、tab(post发布页)、enable(true启用)。之后主菜单选「批量下载账号作品(抖音)」→「使用 accounts_urls 参数的账号链接(推荐)」。文件按UID{id}_{mark}_发布作品文件夹落盘,mp3 与视频同名同目录。若目标是收藏曲列表,走「批量下载收藏音乐(抖音)」,文件统一进{root}/Music/,命名作者-标题-作品id,不需要music开关。
Web API 接口调用示例:POST /douyin/detail
主菜单选「Web API 模式」,浏览器打开http://127.0.0.1:5555/docs查接口文档;接口需 token 鉴权,配置方法与参数详见 docs/DouK-Downloader文档.md。
import requests r = requests.post( "http://127.0.0.1:5555/douyin/detail", json={"detail_id": "xxxxxx"}, ) print(r.json()["data"][0]["music_url"])拿到music_url后,批量下载或二次处理都在你自己的脚本里完成,账号作品同理调用POST /douyin/account。
文件落点与命名:下载目录与 mp3 文件规则
| 项 | 规则 |
|---|---|
| 作品音乐 | 与视频同目录:{root}/{folder_name}/,默认Volume/Download/,与视频同名 |
| 收藏音乐 | 固定{root}/Music/ |
| 命名模板 | 按name_format字段顺序拼接,字段间用split分隔符(默认-) |
| 扩展名 | .mp3 |
| 质量 | 平台音乐源直接下载,不重编码 |
root为空时默认使用程序根目录下的Volume,想换盘改root;想改命名规则改name_format和split。
翻车了?常见失败对照
Q: 视频下下来了,但没有 mp3 A:music开关还是默认的false。改成true后重启程序,开关只对其后的任务生效。
Q: 提示获取账号信息失败、作品解析不到、音乐地址为空 A: Cookie 过期,接口拒绝返回数据。按 Cookie获取教程 重新抓取,写回cookie参数。
Q: 直播场景提示找不到 FFmpeg A: 系统未安装 FFmpeg,且配置ffmpeg参数为空。用包管理器安装 FFmpeg,或把可执行文件路径写进"ffmpeg"参数。
Q: 批量任务中途失败、偶发网络异常 A: 网络抖动超过默认重试上限。调大max_retry、适当调小timeout后重跑,已下载的作品会自动跳过。
调参锦囊:偶尔才动的配置项
| 参数 | 用途 |
|---|---|
desc_length/truncate | 限制描述长度,避免文件名过长 |
max_size | 单个文件大小上限,0不限制 |
storage_format | 设为csv或xlsx时,把作品元数据额外存成文件 |
max_pages | 账号作品翻页上限,控制批量深度 |
没明确需求不用动它们。
⚠️ 提取内容版权归原作者,仅限个人学习研究,勿商用或二次传播。完整参数见 docs/DouK-Downloader文档.md,下载逻辑实现在 src/downloader/download.py。
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考