如何用 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 是一款抖音批量下载命令行工具:给它一个链接加一份 YAML 配置,无水印视频、图文、合集、音乐与直播录制都会自动归档到本地,并自带 SQLite 去重与断点续跑能力。本文面向想长期存档自己或他人抖音内容的新手,读完后你能够跑通第一次无水印下载。
视频带水印:怎么拿到无水印原画
手动保存下来的视频都带水印,走第三方站点转存又常常掉清晰度——这是大多数人想换工具的原因。
douyin-downloader 的处理方式是自动挑选无水印视频源,并进一步按视频自身的码率列表选最高清的一档,拿到的 mp4 就是当前可得的最好版本。想把作品完整留档,还可以顺手打开几个开关:
cover:true— 一并保存封面图music:true— 把原声音乐存下来json:true— 额外输出一份作品元数据文件video_quality:original— 在最高转码档之外再探测原画源
跑完后,Downloaded/下会出现以作者名命名的目录,无水印 mp4 就在里面。短链(v.douyin.com开头)也能自动解析,不必展开成完整地址。下一步:先用一条视频链接验证环境没问题,再往下看批量抓主页。
一句如实说明:2026-09 起抖音对部分接口的直连请求加强了风控,个别作品类型的 API 通道受限,遇到失败时请打开浏览器兜底或改用桌面版 Douzy,详见 README.zh-CN.md 的"限制说明"一节。
主页批量下载:怎么抓全一个人的作品
手动一条条保存太慢,还容易漏。而主页是分页加载的,翻页一旦被风控拦截,很多工具停在 20 条左右。
把主页链接交给 douyin-downloader,翻页由它来管。link里写/user/{sec_uid}主页地址,mode勾选要抓的类型(post作品、like喜欢、mix合集、music音乐,可一次混跑且跨模式自动去重),number给每种类型设上限(0 表示不限):
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post, mix] number: {post: 50, mix: 20}翻页被风控截断时,browser_fallback.enabled: true会自动开浏览器接着翻,配合headless: false还能弹窗里手动过验证码。只想存某段时间的内容,用start_time/end_time(YYYY-MM-DD格式)分段抓即可。
收藏夹也有专门入口:link填/user/self?showTab=favorite_collection,模式用collect或collectmix,就能把当前登录账号收藏的作品与合集本地化。注意这两种模式必须单独使用,不能和其他四种混写。
跑完后,内容按作者/post/、作者/mix/分层归档,每条作品一个子目录。想看看桌面端的形态,同一套后端的 Douzy(内测中)提供了关注同步与任务中心:
任务中断:如何避免重复下载又能放心续跑
批量任务跑几十分钟,最怕中断后重跑:要么全被跳过白等,要么硬盘里堆出一堆重复文件。
douyin-downloader 的去重分两层。database: true会把每条下载记录写进 SQLite 文件;increase.post: true这类增量开关则直接跳过本地已存在的媒体文件。判断时数据库记录与本地文件两者都会检查:只删库、文件还在,不会触发重下;文件删了但库里还有记录,则会重新下载。理解了这一点,你随时敢重跑。
可靠性也内置了:retry_times: 3让失败按 1s/2s/5s 退避自动重试;默认限速 2 请求/秒,降低被风控盯上的概率;写盘前还会比对文件的 Content-Length,不完整文件自动清理重试(逻辑在 core/video_downloader.py)。
想强制重下某一条被跳过的作品,把两边都清掉:
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<aweme_id>';"再删掉Downloaded/下对应的目录(目录名里含 aweme_id),重新运行即可。数据库结构可看 storage/database.py。
快速上手:三步跑通第一条无水印下载
只需要 Python 3.8+,macOS、Linux、Windows 均可。
第一步:装依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第二步:抓 Cookie
Cookie 是浏览器的登录态,一串让站点认出"你是谁"的凭证。抖音的大量内容只向登录用户开放,所以这步不能省。项目自带浏览器抓取脚本(见 tools/cookie_fetcher.py):
pip install playwright python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml浏览器弹出后扫码登录,回到终端按 Enter,Cookie 会自动写进配置文件,不用手动复制。若弹出后卡住,先确认 chromium 那步装成功了。
第三步:写配置并运行
cp config.example.yml config.yml python run.py -c config.yml配置模板每个字段都有中文注释,必填的只有link、path、cookies三项,改完link就能跑。不想动文件时,命令行也能临时覆盖:-u追加链接、-t调并发、-p指定输出目录。
同后端的桌面版 Douzy 处于内测期,提供粘贴链接即下、任务状态跟踪与本地档案查看,截图可以当功能参考:
进阶技巧:抖音批量下载的长任务参数组合
跑通之后,下面这些组合值得记住。
值得调的配置项:
| 配置项 | 效果 |
|---|---|
thread | 并发数,默认 5,网络稳定再提到 8 |
start_time/end_time | 按发布时间过滤,大主页分段抓 |
browser_fallback.headless | 设为false才能手动过验证码 |
live.max_duration_seconds | 直播录制时长上限,0 = 录到主播下播 |
notifications | 跑完推 Bark / Telegram / Webhook 到手机 |
transcript.enabled | 调 OpenAI 把视频转写成 txt/json(图文不生成) |
comments.enabled | 每条作品旁多存一份*_comments.json |
并发别一上来拉满,5 起步、稳定再升,否则触发风控反而更慢。录直播时把live.douyin.com/{room_id}填进link,程序自动拉流,FLV 与房间信息 JSON 落在Downloaded/{作者}/live/下,录满时长、主播下播或 Ctrl+C 中断,已录的字节都会保留(该功能标注为 experimental)。想挂机跑长任务就配上notifications,几个小时后手机会收到推送。
不下文件、只收集数据时有两条独立命令:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果分别落在Downloaded/hot_board/与Downloaded/search/,是 JSONL 格式,可直接用 pandas 或 jq 二次处理。另外,--serve可以把工具跑成 REST API 服务(可选装 fastapi + uvicorn),仓库里也带了 Dockerfile,需要容器化部署时直接用。
常见问题速查:抖音批量下载 4 个高频疑问
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 主页只抓到 20 条左右 | 翻页被风控拦截 | 确认browser_fallback.enabled: true且headless: false,弹窗出现后手动过验证码 |
| 突然大面积失败 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml更新登录态 |
| 硬盘堆出重复文件 | 没开数据库去重 | database: true,再配合increase走增量 |
| 进度输出很吵 | 日志未静默 | progress.quiet_logs: true;排查时临时加-v |
Cookie 失效是常态,建议当成周期性维护项而不是故障。更多细节(如查看下载历史的 sqlite3 命令)见 README.zh-CN.md 的"常见问题"一节。
本项目仅供技术学习与个人使用,请尊重内容版权与创作者权益。
【免费下载链接】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),仅供参考