douyin-downloader 完整教程:3 步把抖音直播回放下载成本地档案
【免费下载链接】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
douyin-downloader 是一个抖音命令行下载工具,支持视频、图集、合集、音乐和直播回放的无水印保存,内置进度显示、失败重试与 SQLite 台账记录。本文以"抖音直播回放下载"为主线,按三个递进任务展开:保存第一条回放、批量保存多场直播、建立长期归档,目标是让刚装好 Python 的读者也能独立跑通全流程。
任务一:提取 Cookie 并完成第一条直播回放下载
本节学完:你能完成环境安装和登录认证,并把一条抖音直播回放保存为可播放的 mp4 文件。
安装依赖,配置登录凭证
工具要求 Python 3.9 及以上版本。克隆仓库并安装依赖:
# 克隆 douyin-downloader 源码 git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader # 安装依赖:网络请求、数据解析、进度显示等 python -m pip install -r requirements.txt下载前需要登录态。接口会校验浏览器凭证,没有 Cookie 就拿不到回放的视频流。Cookie 提取工具 的用途就是自动化这一步:它启动浏览器,你扫码登录,Cookie 自动写回配置文件。
# Cookie 抓取依赖 Playwright 浏览器内核 python -m pip install playwright python -m playwright install chromium # 复制出可修改的配置文件,再启动扫码登录 cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml在浏览器完成登录后回到终端按回车保存。凭证写在 config.yml 的 cookies 段,有效期有限,之后下载报凭证错误时重跑上面的命令即可。
复制回放链接,执行下载命令
在抖音 App 或网页端打开目标直播间的回放页,通过"分享→复制链接"拿到回放分享链接。先分清两种链接:
- ❌ 直播间链接(live.douyin.com/xxx):指向实时直播间,走的是实验性的实时录制,不是回放存档。
- ✅ 回放分享链接(路径含 vsdetail/数字):工具按其中的 episode_id 查询这场回放的音、视频流,正是"直播回放怎么保存"的正确入口。
把链接填进 配置文件(即你复制出的 config.yml)的 link 字段:
link: - https://www.douyin.com/vsdetail/7331203341890049058 # 换成你的回放链接 path: ./Downloaded/ # 下载根目录然后执行:
# 读取 config.yml 中的链接开始下载 python run.py -c config.yml # 也可临时指定链接与目录,不改配置文件 python run.py -u "https://www.douyin.com/vsdetail/7331203341890049058" -p ./Downloaded/验证回放文件
运行结束终端会打印成功/失败计数。打开 path 目录,回放位于"主播名/回放目录/{开播日期}{标题}{id}.mp4"。回放下载器 的工作方式是:从多档码率中挑分辨率最高的视频轨,音频单独下载,再调用 ffmpeg 无损合并成最终文件。两个常见排查点:
- 若目录下出现 .video.mp4 与 .audio.mp4 两个分离文件,说明 ffmpeg 缺失或合并失败,安装 ffmpeg 后重跑;
- 若终端提示找不到可播放的回放流,优先重跑 Cookie 抓取,其次考虑该场回放已被主播删除。
任务二:批量下载多场直播回放
本节学完:你能用一条命令处理多条回放链接,并弄清批量任务如何避免重复下载同一份文件。
批量下载回放命令
-u 参数可重复出现,也可以在 config.yml 的 link 列表里一次写多个链接,工具会按顺序逐条处理:
# 一次提交多条回放链接,-t 控制并发线程数 python run.py \ -u "https://www.douyin.com/vsdetail/7331203341890049058" \ -u "https://www.douyin.com/vsdetail/7340000000000000000" -t 3 # 换成你的第二条链接线程数别贪高。批量时每条链接都要走接口查询加文件写入,线程过高容易触发限频,导致整批失败:
- ❌ 盲目拉满线程数追求速度,接口与磁盘压力成倍放大;
- ✅ 从 3-5 开始,配合配置文件里的 retry_times(默认 3 次)自动重试。
用数据库台账核对已下载内容
database 默认开启,每条回放成功后按 episode_id 写入本地 SQLite(dy_downloader.db),同时在下载根目录追加一份下载清单。台账的用途是核对"我到底存了哪些场":回放任务重跑同一链接会重新下载并覆盖同名文件,工具不会替你拦截,批量前先查清单、跳过已归档的场,才能把流量省下来。
database: true # 开启 SQLite 台账(默认开启) database_path: dy_downloader.db retry_times: 3 # 单文件失败后的自动重试次数验证方式:跑完后在终端看每条链接的成功计数,再对照下载清单里新增的记录数,两者一致即说明批量任务完整落地。
任务三:直播内容归档管理与长期保存
本节学完:你能用命名模板固定"主播/日期/标题"的目录分层,并在回放链接失效后依然检索到自己存过的每一场直播。
用命名模板固定目录结构
回放的目录名与文件名由模板生成,可用变量包括 {date}、{title}、{author}、{id} 等。模板必须包含 {id},否则不同场次重名会互相覆盖:
folderstyle: true # 每个内容单独建文件夹 filename_template: "{date}_{title}_{id}" # 开播日期_标题_id folder_template: "{date}_{title}_{id}" author_dir: nickname_uid # 主播目录=昵称_sec_uid,主播改名也不分裂这样归档结构稳定为:根目录/主播/日期_标题_id/xxx.mp4,按时间顺序浏览目录,就是按直播场次浏览。
台账备份,应对链接失效
回放的接口地址与分享链接都有寿命:平台侧回放会过期,视频流地址更短命。所以"直播回放怎么保存"的完整答案是:下载落盘只是第一步,之后要把下载目录、dy_downloader.db 和下载清单定期备份到外置存储,按标题关键字检索台账即可找回任何一场,不必再依赖原链接。
到这里,流程从"错过一场直播就找不回来"变成了"链接复制进来,文件躺在硬盘里":环境装好、Cookie 拿到之后,保存任何一场回放都只是复制链接、跑一次命令、核对文件三件事。链接总会失效,但落到本地并完成归档的回放不会。
【免费下载链接】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),仅供参考