如何用 douyin-downloader 完成无水印批量下载与主页存档?实操教程
2026/9/20 13:12:21 网站建设 项目流程

如何用 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_timeYYYY-MM-DD格式)分段抓即可。

收藏夹也有专门入口:link/user/self?showTab=favorite_collection,模式用collectcollectmix,就能把当前登录账号收藏的作品与合集本地化。注意这两种模式必须单独使用,不能和其他四种混写。

跑完后,内容按作者/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

配置模板每个字段都有中文注释,必填的只有linkpathcookies三项,改完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: trueheadless: 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询