抖音批量下载的实用型方案:douyin-downloader 从环境配置到批量产出的完整记录
【免费下载链接】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 就是为这种场景而生的实用型抖音批量下载工具,支持视频、图集、合集、音乐(原声)以及作者主页的批量下载,默认去水印、带进度条与重试机制,一次配置,往后长期受益。
从一个"凌晨还在手动保存"的夜晚说起:这工具解决什么麻烦
先讲一个真实到扎心的场景。有个做美食素材整理的朋友,每天要盯 3 个博主的更新,逐个点开视频、等待加载、右键保存、改名归档,一套动作下来大半个小时就没了。更要命的是,网页端保存下来的视频经常带着平台水印,画质也被压缩得厉害;文件命名随心所欲,隔两周想找某条视频,只能在一堆"微信图片_20260501.jpg"里翻到怀疑人生。
手动流程的痛点其实就三条:慢(一次只能处理一个)、糙(有水印、画质差、元数据全丢)、乱(没有统一命名与去重,重复下载白白占硬盘)。
douyin-downloader 解决的正是这三点。它把"打开网页→找资源→保存→归档"这四步压缩成一条命令,交给程序排队处理。你在命令行里看到的是这样的画面——所有任务并行推进、逐条显示状态:
这张图是它跑批量下载时的真实界面:每个作品独立一行进度条,完成后即刻标记。人工逐个操作 100 条视频按每条 20 秒粗略估算要 40 分钟以上,而工具在默认并发 5、速率限制 2 请求/秒的设置下,通常几分钟内就能把一整个主页的作品拉完,中途完全不用盯着屏幕。
先看底牌:一条链接进去,能带出多少东西
很多下载工具的"下载"只是拿到一个视频文件,而这款工具更像一个内容归档器。把链接丢进去,它不只是抓视频本身:
- 无水印优先,最高清自动挑选:基于
video.bit_rate数组自动选中最高码率的视频源,实况图同样适用; - 附带数字资产:封面图、原声音乐、作者头像、完整 JSON 元数据(作品描述、发布时间、点赞评论数、话题标签)都会一并保存;
- 链接类型覆盖面广:单条视频、图文、合集、音乐、用户主页、收藏夹、短链(
v.douyin.com)、直播房间,都能识别并走对应的处理流程; - 可选的深度加工:评论采集(可含二级回复)、AI 视频转写(输出 txt/json 文稿)、热搜榜快照与关键词搜索导出。
它认得出的链接长这样(摘取几个代表):
https://www.douyin.com/video/{aweme_id} # 单条视频 https://www.douyin.com/note/{note_id} # 单条图文 https://www.douyin.com/collection/{mix_id} # 单个合集 https://www.douyin.com/music/{music_id} # 单个音乐 https://www.douyin.com/user/{sec_uid} # 作者主页 https://live.douyin.com/{room_id} # 直播房间这些 URL 既可以写进配置文件一次跑一批,也可以用-u参数在命令行追加。整个项目的代码按职责拆得很清楚:cli/管入口与展示,core/管下载流程与 URL 解析,storage/管文件与数据库,auth/管 Cookie,control/管限速与重试——想深入研究的读者可以直接翻这些目录,逻辑都不绕。
从零跑通第一单:环境、Cookie、配置与首跑全程拆解
上手比想象中简单,核心就四步:装依赖、取 Cookie、写配置、跑命令。
第一步,克隆并安装依赖(Python 3.8 及以上即可,Windows / macOS / Linux 通用):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt如果打算启用浏览器兜底(后面会讲它的用途)或者用自动方式获取 Cookie,再补装 Playwright 的浏览器内核:
pip install playwright python -m playwright install chromium第二步,获取 Cookie。Cookie 是访问抖音 API 的入场券,推荐用工具自带的自动获取方式:
python -m tools.cookie_fetcher --config config.yml它会弹出浏览器窗口,你扫码登录抖音网页版,回到终端按一下回车,Cookie 就自动写进配置了。以后 Cookie 过期,重跑这一条命令即可。
第三步,写一份最小配置。把config.example.yml复制成config.yml,然后精简成下面这样:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 50 thread: 5 retry_times: 3 database: truelink填你要处理的链接,mode填post表示下载作者主页发布的作品,number.post限制只取 50 条(0 表示不限量)。
第四步,跑起来:
python run.py -c config.yml第一次跑完,你会看到类似这样的结果——工具先告诉你一共抓到了多少个作品,然后逐条下载、跳过已存在的文件,最后给出统计:
图中"已获取全部作品:274 个"意味着翻页、解析、去重全自动完成,你只需要等结果。文件会按作者名/post/日期_标题_aweme_id/的目录结构归档,视频、封面、音乐、JSON 元数据各归其位,这在后面讲"资产化"时价值会体现得更明显。
批量提速的四个关键设置:并发、重试、增量和兜底
第一单跑通后,就该关心效率了。下面四个设置是我用下来觉得最值得调整的,都在config.yml里,改完立即生效。
1. 并发数与重试策略。默认并发 5、重试 3 次。网络好可以提到 8,遇到频繁失败反而要降下来;重试采用指数退避(1 秒、2 秒、5 秒),比固定间隔更温和,不容易触发风控:
thread: 8 retry_times: 5 timeout: 120 proxy: "" # 有代理需求时填,如 http://127.0.0.1:78902. 增量下载。对长期追更的博主,开启增量后每次只拉新增作品,已下载的自动跳过。它依赖 SQLite 的下载记录,所以database必须开着:
database: true increase: post: true数据库加本地文件的双重去重意味着:同一个作品在post、like、mix、music不同模式下出现,也只会下载一次,不会白白浪费带宽和硬盘。
3. 时间过滤。只想保留某段时间的作品,用start_time/end_time按日期裁剪,特别适合做周期性归档:
start_time: "2024-01-01" end_time: "2024-12-31"4. 浏览器兜底。翻页遇到风控时,API 可能只吐给你前 20 条。打开兜底开关,工具会切到浏览器模式继续采集,遇到验证码还会弹出窗口等人工处理:
browser_fallback: enabled: true headless: false # 非无头模式,方便手动过验证 max_scrolls: 240 idle_rounds: 8这四个旋钮配合起来,批量下载从"能跑"变成"跑得稳、跑得快",这也是它对比那些纯 API 工具的关键优势——接口受限时不至于整批任务报废。
三个真实场景复盘:素材库、研究样本与直播回放
光讲参数没感觉,我们看三个实际用得上它的场景,每个都配一份可直接照抄的配置。
场景一:运营团队的竞品素材库。每天把若干竞品博主的作品和点赞内容同步到本地,供剪辑团队取用。人力从每天专人盯 1 小时,降到开机自动跑 5 分钟:
link: - https://www.douyin.com/user/博主A的sec_uid - https://www.douyin.com/user/博主B的sec_uid mode: - post - like number: post: 100 like: 50 increase: post: true like: true场景二:学术研究的大规模样本采集。要按话题攒研究语料,用关键词搜索把结果直接落成 JSONL,方便后续做文本分析:
python run.py --search "猫咪" --search-max 500 -p ./研究数据/跑完会在输出目录生成search/猫咪_日期_时间.jsonl,每行一条结构化记录,配合--hot-board 30还能顺手抓热搜榜快照,适合追踪话题热度变化。
场景三:重要直播的自动录制。遇到需要留档的直播场次,配置里加上直播段即可。主播下播、网络空闲或者你按 Ctrl+C 中断,已录制的字节都会被保留下来:
link: - https://live.douyin.com/273940655995 live: max_duration_seconds: 3600 # 0 表示录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30上面这张图就是直播录制时的命令行:工具会先拉取直播间信息、当前在线人数,再让你从多个清晰度里挑一个,然后拿到流地址开始录制,同时把房间信息存成result.json快照。录制产物会放到作者名/live/目录下,FLV 文件可直接播放。
高频问题排雷清单:翻页、Cookie、失败与重新下载
用久了总会碰到几个坑,这里把最常见的四类问题一次说清。
Q1:明明主页有几百个作品,只抓到 20 条?这是翻页风控的典型表现。先确认browser_fallback.enabled: true且headless: false,兜底模式弹出浏览器后,如果出现验证码,手动点掉,别急着关窗口,让采集线程把后续页面滚完。
Q2:提示 Cookie 过期或登录失效?工具会自动检测。重新跑一次python -m tools.cookie_fetcher --config config.yml,扫码登录后自动更新,不需要手动改文件。
Q3:个别视频下载失败,会影响整批任务吗?不会。失败项会被单独跳过,其余任务继续;每个失败项还会按重试策略重试几次。想排查具体原因,用python run.py -c config.yml -v打开详细日志,看对应aweme_id的报错信息。
Q4:想重新下载某个作品,但它总被跳过?因为程序用"数据库记录 + 本地文件"双重检查判断是否已下载。要重下,就得两处都清掉——删掉本地对应文件(文件名里带aweme_id的那个目录),再清理数据库里对应记录,然后重跑。这也是它去重机制"严格"的体现,理解了这个逻辑就不会被"怎么跳过不下载"吓到。
下载结束只是开始:作品档案、接口服务与桌面客户端
很多工具下载完就撒手不管了,douyin-downloader 则把"下载"这件事做成了完整的数据闭环,这大概是我最欣赏它的一点。
每跑完一次任务,输出目录里除了媒体文件,还会多出download_manifest.jsonl——每行一条作品的 JSON 记录,包含发布日期、作者、描述、标签、文件路径等字段,追加式写入,天然就是一份可追溯的下载日志。配合 SQLite 里的aweme表和download_history表,历史记录按作者、按日期、按类型都能查。
如果你不想只停留在命令行,它还提供了两层更高级的入口:
- REST API 服务模式:
pip install fastapi uvicorn后执行python run.py --serve --serve-port 8000,就有/api/v1/download(提交下载)、/api/v1/jobs/{id}(查状态)等接口,可以轻松接到自己的自动化流程里; - 桌面版 Douzy:基于同一套后端的内测客户端,把下载入口、任务中心、作品档案都搬进了图形界面。
上面这张图是桌面版的作品档案页:所有经它下载的作品都记录在 SQLite 里,可以按作者、标题关键词、作品类型和发布时间筛选,博主列表还能一键"下载最新作品"——追更这件事在图形界面里变得相当顺手。
另外还有两个锦上添花的能力值得知道:下载完成后可以推送到 Bark / Telegram / 企业微信 Webhook(notifications配置段),任务结束手机立刻收到通知;视频转写功能(transcript配置段)能把视频转成 txt/json 文稿,对做内容检索或文稿归档的人非常实用。
写在最后:给你的上手路线图
到这里,这款工具能做什么、怎么用、坑在哪,基本都覆盖了。如果你决定动手试试,我给你一条不踩坑的路线:
- 克隆项目、装依赖(含 Playwright),先跑通
python -m tools.cookie_fetcher --config config.yml拿到有效 Cookie; - 用一条单视频链接做首次冒烟测试,确认输出目录结构和文件完整;
- 再换成作者主页
mode: post跑一个 20 条的小批量,观察并发与去重表现; - 确认稳定后,再按需开启增量、时间过滤、浏览器兜底和通知推送;
- 最后根据你的工作流决定是停留在命令行,还是接入 REST API,或尝试桌面版。
需要提醒的是:工具提供了批量获取的能力,但使用边界始终由你把握。请只在合规前提下下载你有权保存的内容,控制请求频率、尊重平台规则——这也是项目默认内置速率限制的原因所在。把技术用在正道上,它才会成为你内容创作、素材整理与研究的长期帮手。
【免费下载链接】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),仅供参考