如何批量下载抖音无水印作品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是一个免费开源的抖音批量下载工具支持视频、图文、合集、音乐和作者主页链接默认提供进度展示、失败重试与 SQLite 去重API 翻页受限时还能自动切换浏览器兜底完成抓取。三步完成首次抖音批量下载环境要求 Python 3.8macOS / Linux / Windows 均可运行。第 1 步准备环境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第 2 步配置登录态Cookie抖音资源访问需要登录状态。运行下面的命令后会弹出一个 Chromium 窗口正常登录抖音账号回到终端按 EnterCookie 会自动写入配置文件cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml第 3 步运行下载打开config.yml填入链接最小可用配置如下link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 0 thread: 5然后执行python run.py -c config.yml文件会按Downloaded/作者名/post/日期_标题_aweme_id/的目录结构落盘视频本体默认保存封面、音乐、JSON 元数据按需打开对应开关。临时加一条链接不用改配置直接在命令行追加即可python run.py -c config.yml -u https://www.douyin.com/video/7604129988555574538 -t 8。同一套后端还提供了内测中的桌面版 Douzy粘贴链接即可开始任务队列、失败重试都有可视化界面与其他抖音下载工具不同的三个细节 多数免费工具只能处理单条链接这套工具的差别集中在三点跨会话去重。每下载一条作品其 aweme_id 会写入 SQLite 数据库默认dy_downloader.db同时程序还会扫描本地文件名里包含的 aweme_id下载前两处都检查任一命中即跳过。同一个配置可以放心反复运行只拉新增内容。浏览器兜底。作者主页走 API 翻页时容易触发风控通常在 20 条左右停下。此时程序可以启动 Playwright 浏览器接管翻页并允许人工通过验证码headless: false时窗口可见验证结果并入原有下载流程。目前该兜底主要在post模式下经过验证。多模式一次配置。mode可同时写post发布作品、like点赞、mix合集、music音乐原声跨模式自动去重自己账号的收藏夹模式collect/collectmix需单独使用且只作用于当前 Cookie 对应的账号。配合start_time/end_time还能按发布时间截取区间。并发方面默认 5 线程、限速 2 请求/秒失败按 1s / 2s / 5s 指数退避重试均可通过thread、retry_times等配置项调整。桌面版的任务中心里每个批量任务的状态、成功与失败数量、重试入口一目了然从作者备份到音频素材三个典型场景抖音作者主页批量下载自媒体与存档用途谁在用想长期跟踪某位博主产出的创作者、研究者。怎么配置link填/user/主页链接mode: [post]number.post填 50 表示取最新 50 条填 0 表示不限量全量抓取。得到什么按日期和标题命名的完整目录树每条作品含无水印视频以及可选的封面、音乐、JSON 元数据。音频素材收集音乐制作与剪辑谁在用音乐制作人、视频剪辑师。怎么配置把mode改为music下载该作者使用过的音乐原声若直接给音乐链接/music/{music_id}程序优先取原声文件缺失时回退到该音乐下的首条作品也可以在下发视频时打开music: true顺带抽取音轨。得到什么每个作品对应的音频文件旁边的 JSON 里保留了作者、发布时间等字段便于归档检索。自己收藏夹的持续归档谁在用想把个人收藏同步到本地硬盘的用户。怎么配置link: - https://www.douyin.com/user/self?showTabfavorite_collection mode: - collectcollectmix则对应收藏合集。注意该模式不支持增量截断increase只覆盖 post/like/mix/music但去重机制仍然生效重复运行不会重复下载已有作品。桌面端的「收藏与喜欢」页面把这套流程做成了同步按钮顺带一提link指向live.douyin.com/{房间号}时进入实验性直播录制live.max_duration_seconds: 0表示录到主播下播中途断流或按 CtrlC已录制的字节会被保留。常见故障排查更新 Cookie、过风控、重新下载抓取停在 20 条左右现象主页批量下载只出二十来条就结束。常见原因API 翻页触发风控。解决步骤确认配置里browser_fallback.enabled: true且headless: false浏览器窗口弹出后手动完成验证验证完成前不要关闭窗口。下载失败或链接无法解析现象任务批量失败或提示 Cookie 无效。常见原因登录态过期。解决步骤重新执行python -m tools.cookie_fetcher --config config.yml更新 Cookie并确认链接未被作者删除或设为私密。终端日志刷屏现象进度阶段输出过多。常见原因warning 级日志被打印出来。解决步骤确认progress.quiet_logs: true默认开启确需排查时临时加--show-warnings或-v参数。想重新下载某条已有作品现象重跑配置后目标作品没有重新拉取。常见原因去重双通道判定它已下载。解决步骤去重依据是「数据库记录 本地文件名」两者都要清理——先删除本地目录目录名含 aweme_id再执行sqlite3 dy_downloader.db DELETE FROM aweme WHERE aweme_id aweme_id;只删数据库不删文件不会触发重下反过来只删文件则会触发因为数据库有记录而文件缺失时程序会判定需要补下载。架构设计双引擎下载与双通道去重 ⚙️核心思路是「API 优先、浏览器兜底」。日常抓取由异步 HTTP 客户端直连完成内置限速器默认 2 请求/秒和指数退避重试降低触发风控的概率翻页受限后Playwright 浏览器接管滚动采集人工通过验证码两条链路汇入同一套去重、进度与落盘逻辑切换引擎不会产生重复下载。去重层是双通道的SQLite 数据库记录作品明细与每次任务的历史aweme与download_history两张表本地文件名的 aweme_id 作为第二道检查另有download_manifest.jsonl清单文件逐行追加即使关闭数据库也能追溯已保存内容。各模式策略与数据落盘细节见 PROJECT_SUMMARY.md核心实现位于 core/。总结douyin-downloader 把「保存某位作者的全部作品」这件事从手动逐条操作变成一份 YAML 配置加一条命令免费、开源MIT License风控与 Cookie 过期都有现成的兜底路径。完整功能与配置参考README.zh-CN.md带注释的示例配置config.example.yml架构与落盘策略说明PROJECT_SUMMARY.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),仅供参考
