douyin-downloader 实操手册:从零开始完成抖音无水印下载与批量拉取
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 是一个命令行抖音无水印下载工具单视频、图集、音乐可以直接解析用户主页作品可以批量拉取文件附带封面、原声与 JSON 元数据重复任务用 SQLite内置关系数据库自动去重。能力速览能力说明单视频 / 图文下载短链自动解析默认挑选无水印源用户主页批量作品 / 点赞 / 合集 / 音乐四种模式跨模式去重直播回放录制FLV/HLS 流中断后保留已录数据断点与续跑已下载文件跳过不完整文件自动重下元数据导出每件作品一个_data.json外加 JSONL 下载清单时间过滤start_time/end_time按发布时间截取区间装好并跑通第一次下载第一步克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt克隆代码并装好运行所需的全部依赖后续所有命令都在仓库目录内执行。第二步把示例配置复制为工作配置填入第一条下载链接cp config.example.yml config.yml生成你的config.yml编辑时只改link其余字段先保持默认。第三步启动 Cookie 获取并扫码登录Cookie 是抖音识别你登录身份的凭据没有它大部分接口会拒绝访问python -m tools.cookie_fetcher --config config.yml该命令基于 Playwright浏览器自动化库需要pip install playwright弹出浏览器扫码完成后自动把 Cookie 写回配置。第四步执行下载并验证产物python run.py -c config.yml运行入口是 core/url_parser.py 所在的主流程跑完后在Downloaded/目录下能找到视频文件、封面和_data.json即算跑通。Cookie 认证自动获取与手动填写怎么选自动获取推荐重跑上面的cookie_fetcher命令即可。它启动 Chromium开源浏览器内核让你扫码结束后自动把msToken、ttwid、odin_tt、passport_csrf_token四个必需字段回写到配置不需要手动复制粘贴适合绝大多数人。手动填写浏览器登录抖音网页版从开发者工具的 Application → Cookies 里复制上述字段填进config.yml的cookies段。适合无图形界面的服务器环境。Cookie 有效期不长失效时接口会提示登录态问题重跑自动获取命令就能恢复。获取工具的实现见 tools/cookie_fetcher.py。单视频、主页批量、直播回放三种模式各一行命令单视频python run.py -c config.yml -u https://www.douyin.com/video/7341234567890。-u传入的链接会追加到配置的link列表适合临时补下某一条。主页批量link填https://www.douyin.com/user/MS4wLjABAAAAxxxx配置中设mode: - post number: post: 50mode: post表示拉取该作者发布的全部作品post: 50限制只下前 50 条填0表示不限。直播回放link填https://live.douyin.com/房间号配置中设live: max_duration_seconds: 3600 idle_timeout_seconds: 30录满 1 小时自动停止把max_duration_seconds设为 0 会一直录到主播下播。配置文件关键项thread: 5 retry_times: 3 start_time: 2024-01-01 end_time: 2024-12-31 database: truethread是并发下载数家庭网络 5 足够retry_times控制失败重试次数时间两项按作品发布时间过滤区间格式YYYY-MM-DDdatabase: true开启 SQLite 去重与历史记录。底层机制core/downloader_factory.py 中的工厂类根据链接类型把任务分发给对应的下载器你不需要自己判断。下载过程由 control/queue_manager.py 按thread并发调度RateLimiter 把请求速率压在默认 2 次/秒RetryHandler 按 1s、2s、5s 指数退避重试。源地址默认优先无水印下载前会对比 Content-Length响应头中声明的文件大小校验不通过的文件自动删除并重下。排错速查现象主页只抓到 20 条 → 原因翻页触发风控 → 解法开启browser_fallback.enabled: true保持headless: false弹出浏览器后手动完成验证。现象提示登录态失效 → 原因Cookie 过期 → 解法重跑python -m tools.cookie_fetcher --config config.yml。现象日志刷屏、进度看不清 → 原因未开静默日志 → 解法配置中设progress.quiet_logs: true。现象个别文件损坏或大小异常 → 原因网络中断导致下载不全 → 解法程序会按 Content-Length 自动清理重下反复失败时调小thread。进阶玩法SQLite 去重开启database: true后每件作品的aweme_id作品唯一编号会记入dy_downloader.db重跑同一链接已下载的内容直接跳过。想看下载历史用sqlite3查aweme表即可。定时增量配合increase.post: true每次运行只补拉上次之后新发布的作品0 3 * * * cd /path/to/douyin-downloader python run.py -c config.ymlcrontab系统定时任务每天凌晨 3 点只下增量适合长期跟踪固定账号。合规与社区只下载公开内容尊重创作者版权下载的数据不用于商用传播Cookie 等同于账号凭据不要分享给他人。功能问题与平台接口变更的反馈建议到仓库 Issue 区提交附上日志和链接便于复现。下一步先跑通一个单视频确认Downloaded/里有完整产物再用-u追加一条主页链接把批量流程也验证一遍。【免费下载链接】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),仅供参考

相关新闻

Grafana Tempo 感知可用区的 live-store 复制(Zone-aware live-stores)配置指南

Grafana Tempo 感知可用区的 live-store 复制(Zone-aware live-stores)配置指南

Grafana Tempo 感知可用区的 live-store 复制(Zone-aware live-stores)配置指南 【免费下载链接】tempo Grafana Tempo is a high volume, minimal dependency distributed tracing backend. 项目地址: https://gitcode.com/GitHub_Trending/tempo1/te…

2026/9/20 2:43:46 阅读更多 →
Hermes引擎接入React Native的工程实践:配置、度量与调试

Hermes引擎接入React Native的工程实践:配置、度量与调试

项目升级到 React Native 0.70 那天,我以为换到 Hermes 就是改一行开关的事。结果两轮真机跑下来,启动时间确实好看了,但团队的接入姿势五花八门:有人开着远程 JS 调试上线,有人 iOS 的 Podfile 忘开 Hermes&#xff0…

2026/9/18 19:54:04 阅读更多 →
LeetCode 题解:Minimum Number of Increments on Subarrays to Form a Target Array——从分治模拟到线段树再到单趟贪心的三阶演进

LeetCode 题解:Minimum Number of Increments on Subarrays to Form a Target Array——从分治模拟到线段树再到单趟贪心的三阶演进

LeetCode 题解:Minimum Number of Increments on Subarrays to Form a Target Array——从分治模拟到线段树再到单趟贪心的三阶演进 【免费下载链接】leetcode Leetcode solutions 项目地址: https://gitcode.com/GitHub_Trending/leetcode1/leetcode 导读 …

2026/9/18 19:54:04 阅读更多 →

最新新闻

汽车仪表DCDC选型:150V耐压与COT架构实战指南

汽车仪表DCDC选型:150V耐压与COT架构实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 2:43:03 阅读更多 →
Ollama本地部署全攻略:安装、镜像加速与GGUF模型导入实操

Ollama本地部署全攻略:安装、镜像加速与GGUF模型导入实操

先亮明观点:想在本地跑一个开源大模型,Ollama 是门槛最低的那个,没有之一。它把环境、依赖、API 服务全收在一个小工具里,装完之后一条命令就能把大模型权重拉下来直接跑。但很多新手卡在第一步:官网下载慢、pull 模型…

2026/9/20 2:43:03 阅读更多 →
OpenClaw本地部署实战:Ollama+飞书机器人搭建私有AI代理

OpenClaw本地部署实战:Ollama+飞书机器人搭建私有AI代理

做 AI 代理本地部署这件事,最大的问题从来不是“模型跑不起来”,而是把模型、工具、IM 入口这些零零散散的模块串成一条完整的链路。OpenClaw 是少有的、能把本地大模型调度、工具调用、多渠道消息接入统一到一个进程里的开源代理框架,配上 O…

2026/9/20 2:43:03 阅读更多 →
网络运维四项核心能力:从配置到架构、排障、自动化与业务沟通

网络运维四项核心能力:从配置到架构、排障、自动化与业务沟通

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 2:43:03 阅读更多 →
豆包AI图片去水印全攻略:从官方工具到API源头关闭水印

豆包AI图片去水印全攻略:从官方工具到API源头关闭水印

你有没有遇到过这种尴尬:用豆包生成了一张特别满意的封面图,准备放到公众号或者小红书的时候,却发现右下角躺着一个半透明的小Logo。裁掉吧,构图直接没了;留着吧,又像在给平台免费打广告。这个问题太常见了…

2026/9/20 2:43:03 阅读更多 →
2026最新揭秘:别人做的网站百度网站验证全攻略

2026最新揭秘:别人做的网站百度网站验证全攻略

2026最新揭秘:别人做的网站百度网站验证全攻略 网站被黑挂马不知道怎么办?这是很多接手旧站或外包项目的运营人员最头疼的问题。尤其是遇到“别人做的网站”,代码逻辑混乱,后台权限丢失,甚至被植入了恶意代码,这时候如果直接去申请百度网站验证,大概率会被驳回,甚至影响后续收录。2026最新的安全规范对网站…

2026/9/20 2:42:46 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →