抖音批量下载工具douyin-downloader完整上手手册:去水印、抓全集、零重复 📅 2026/8/14 14:15:40 抖音批量下载工具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-downloaderdouyin-downloader是一款开源的抖音批量下载工具支持视频、图文、合集、音乐、收藏夹等多种内容一键抓取自动去水印、智能去重、保存完整元数据并提供浏览器兜底与直播录制能力。无论你是内容创作者、做研究的同学还是想备份个人收藏的普通用户这篇文章都会带你从零开始把它的全部价值用起来。先看一组对比手动搬运和工具抓取差距有多大如果你需要为项目收集 500 条指定话题的抖音视频手动操作是这样的复制链接、等待页面加载、右键另存、重命名再粘贴下一条……一个熟练的人连续操作也至少要消耗大半天而且中途很容易出现漏存、重复下载和文件命名混乱。使用 douyin-downloader 之后同样的任务可以在几分钟内完成。核心原因在于它把整套流程拆成了可并行的流水线多线程并发抓取默认 5 线程可调高到 8~10失败自动重试采用 1 秒、2 秒、5 秒的指数退避策略内置频率控制默认每秒 2 个请求避免触发平台风控SQLite 数据库加本地文件双重去重同一作品永远不会存两遍一句话总结它把能不能下载的问题变成了想下载多少的问题你只需要关心数量和范围剩下的交给工具。环境搭建三步让工具跑起来工具基于 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再补装 Playwrightpip install playwright python -m playwright install chromium第二步准备配置文件项目自带一份示例配置复制一份即可cp config.example.yml config.yml第三步登录获取 Cookie抖音的公开接口需要带 Cookie 才能稳定抓取推荐用工具自带的自动化方式python -m tools.cookie_fetcher --config config.yml命令会打开浏览器你登录一次抖音回到终端按一下回车Cookie 就会被自动写入配置。整个过程一分钟左右比手动从浏览器开发者工具里复制 Cookie 省事得多。可选用 Docker 一键部署不想污染本地 Python 环境项目提供了 Dockerfiledocker build -t douyin-downloader . docker run -v $(pwd)/config.yml:/app/config.yml -v $(pwd)/Downloaded:/app/Downloaded douyin-downloader一张表看懂哪些链接可以直接抓工具的入口是一个链接不同的链接类型对应不同的抓取方式链接形式抓取内容/video/{aweme_id}单个视频/note/{note_id}、/gallery/{note_id}单个图文/collection/{mix_id}、/mix/{mix_id}单个合集/music/{music_id}单个音乐优先原声缺失时回退到该音乐下的首条作品v.douyin.com/...、v.iesdouyin.com短链自动解析无需先手动跳转/user/{sec_uid}作者主页批量下载/user/self?showTabfavorite_collection当前登录账号的收藏夹先看一个最简单的用法——下载单个视频在config.yml里写link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ music: true cover: true json: true然后执行python run.py -c config.yml工具会同时保存视频文件自动挑选无水印源、封面、背景音乐和一份完整的 JSON 元数据。命令行里会实时滚动进度条抓完的文件按日期_标题_作品ID的格式存放在./Downloaded/下。进阶玩法作者主页的四种批量模式真正体现批量威力的是作者主页抓取。把link换成用户主页地址再用mode声明要抓哪几类内容link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post - like - mix - music number: post: 50 # 作品数量0 表示全量 like: 0 mix: 10 music: 5 thread: 5 retry_times: 3四种模式的含义分别是post作者发布的所有作品like作者点赞过的作品mix作者创建的合集music作者使用过的音乐原声多个模式可以同时开启同一个作品在跨模式时会被自动去重不会重复下载。number里填0表示不限制数量、全量抓取。如果你想备份的是自己收藏的内容把链接换成/user/self?showTabfavorite_collection再单独使用collect或collectmix模式即可。注意收藏夹模式必须单独使用不能和post、like这些模式混在一起。除了配置文件命令行也可以临时追加参数方便单次操作python run.py -c config.yml \ -u https://www.douyin.com/video/7604129988555574538 \ -t 8 \ -p ./Downloaded其中-u追加链接可重复传、-t指定并发数、-p指定输出目录。让文件井井有条命名模板与目录策略批量下载最怕一锅粥好在工具的命名规则是完全可以自定义的。配置文件里的filename_template支持一组白名单变量{date}发布日期、{year}、{month}、{day}、{time}{author}作者昵称、{author_id}作者 ID{title}作品标题、{id}作品 ID{type}、{mode}、{timestamp}等辅助字段一个常用示例filename_template: {date}_{author}_{title}_{id} author_dir: nickname_uid folderstyle: trueauthor_dir控制作者目录的命名方式可选nickname直观、sec_uid稳定唯一、nickname_uid既直观又唯一默认是nicknamefolderstyle: true时每个作品会单独建一个子文件夹视频、封面、音乐、JSON 都放在一起抓取完成后的目录结构大致是这样的Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── ...mp4 ├── ..._cover.jpg ├── ..._music.mp3 └── ..._data.json这套结构配合 SQLite 里的下载历史等于给自己建了一个轻量级的本地作品档案库。如果想控制下载范围还可以用start_time/end_time做时间过滤或开启increase.post: true只增量抓取新作品——这些配置在douyin-downloader/config/目录下都能找到对应的默认值定义。常见卡点排查翻页风控、Cookie 失效与重复下载为什么只能抓到 20 条作品这是抖音翻页风控的典型表现。工具提供了浏览器兜底策略在 API 分页受限时会自动拉起浏览器继续滚动加载。需要确认两点browser_fallback: enabled: true headless: false当浏览器窗口弹出来时手动完成页面上的滑块或验证码不要急着关窗口让工具自己跑完再关闭。Cookie 失效了怎么办重新执行一次 Cookie 获取命令即可python -m tools.cookie_fetcher --config config.yml文件明明存在为什么不会重新下载工具通过数据库记录 本地文件双重检查判断是否跳过。要强制重新下载需要同时清理两处删除本地文件文件名里包含aweme_id的文件夹再删除数据库记录sqlite3 dy_downloader.db DELETE FROM aweme WHERE aweme_id aweme_id;如果想全部从头来过删掉Downloaded/目录和dy_downloader.db文件即可。注意只删数据库不删文件不会触发重下因为程序会扫描本地文件名做去重。进度条刷屏怎么处理默认progress.quiet_logs: true已经会在进度阶段静默日志。排查问题时可以临时加--show-warnings或-v显示更详细的日志。把它变成自动化流水线定时任务、通知与 REST API手动跑命令只适用于临时需求。对于每天自动更新博主最新作品这类场景可以把它挂进系统定时任务。Linux / macOS 用 crontab每天凌晨 2 点执行0 2 * * * cd /path/to/douyin-downloader python run.py -c config.yml download.log 21Windows 用户则在任务计划程序里新建一个任务执行同样的命令即可。任务跑完后想第一时间知道结果配置通知推送支持 Bark、Telegram 和企业微信/飞书/钉钉的 Webhooknotifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY sound: bell - type: webhook url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxx如果你想把下载能力集成进自己的系统可以启动 REST API 服务模式pip install fastapi uvicorn python run.py --serve --serve-port 8000服务提供几个核心接口POST /api/v1/download提交下载链接并返回任务 IDGET /api/v1/jobs/{job_id}查询任务状态GET /api/v1/health做健康检查。完成态的任务会自动按 TTL 和数量上限清理正在执行的任务永远不会被裁掉。容易被忽略的彩蛋功能除了下载本身工具还藏了不少实用功能值得逐个试一遍热搜榜快照python run.py --hot-board 30 -p ./Downloaded把当日抖音热搜导出成 JSONL 文件做舆情分析很方便关键词搜索python run.py --search 猫咪 --search-max 100 -p ./Downloaded按关键词搜索作品并导出结果评论采集在配置里开启comments.enabled: true下载的同时按作品抓评论可含二级回复输出*_comments.json视频转写配置transcript.enabled: true并填好 OpenAI API Key视频下载后自动生成 txt / json 格式的文字稿做内容检索和二次编辑非常实用直播录制链接填live.douyin.com/{room_id}可录制 FLV / HLS 直播流主播下播时已录数据会保留直播录制是实验性功能录好的 FLV 可以直接播放如果是 HLS 源工具只保存 playlist 文件需要自己用 ffmpeg 做后处理。另外基于同一套后端打造的桌面客户端 Douzy 正在内测中界面更直观粘贴链接即刻开始下载、自动同步关注列表、可视化跟踪任务状态、用 SQLite 档案管理历史作品。下图是桌面版的任务中心与作品档案界面可以看到每个任务的实时状态从今天开始让下载变成一件省心事把工具用起来的路径其实很清晰克隆项目、安装依赖、获取 Cookie约 10 分钟从下载第一个视频开始验证配置是否生效试着抓一个作者主页的 post like感受批量与去重的效果按自己的需求定制命名模板和目录结构加上定时任务和通知推送彻底解放双手需要特别提醒的是请只在合法合规的范围内使用尊重内容版权和平台规则工具自带的频率控制就是在帮你降低对平台的压力。下载回来的素材用于学习、研究和个人备份才是它最恰当的打开方式。如果某个环节卡住了项目里的README.zh-CN.md、USAGE.md以及douyin-downloader/docs/目录都是很好的参考遇到翻页风控、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),仅供参考