
抖音下载实战指南5 个关键配置让平台限频下依然稳定取内容【免费下载链接】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 用模拟真实浏览器行为来应对自动读取登录态、把请求节奏压到人速、失败自动补刀。这篇指南带你 10 分钟内跑通首个下载之后可以放心批量抓整个主页。 能力速览无水印下载自动选无水印源覆盖单条视频、图集、合集、音乐登录态自动获取拉起浏览器扫码回车即把 Cookie 存进配置限速 重试双保险默认 2 次/秒失败按 1s→2s→5s 递增等待补发浏览器兜底翻页被拦时自动打开浏览器验证码可人工介入增量去重磁盘加 SQLite 双重记录二次运行直接跳过已下载进度可见实时进度条支持静默模式和完成通知推送⚡ 快速上手环境三步搞定装依赖、拿登录态、跑通一个视频。第一步装好运行环境# 克隆仓库并安装核心依赖需 Python 3.8 git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt # 可选但强烈建议装浏览器内核Cookie 自动获取和验证码兜底都靠它 pip install playwright python -m playwright install chromium第二步获取登录态# 复制一份默认配置 cp config.example.yml config.yml # 启动自动获取工具会弹出浏览器窗口 python -m tools.cookie_fetcher --config config.yml # 在窗口里扫码登录回到终端按 EnterCookie 自动写回 config.yml第三步跑通首个下载# 单条视频链接试水文件默认落在 ./Downloaded/ python run.py -u https://www.douyin.com/video/xxxxxx -c config.yml同一套后端还提供桌面版Douzy粘贴链接即下命令行流程与本文一致 核心功能拆解登录态搞定后先别急着批量跑下面 5 个机制各管一块看懂了再调参数不慌。如何自动获取并保住有效登录态适用场景第一次使用或下载时报需登录、接口返回空先做这一步。怎么实现tools/cookie_fetcher.py 用 Playwright 拉起一个真浏览器由你手动扫码完成登录工具监听页面请求同时抓取 Cookie 头里和地址栏参数里的 msToken平台用来识别网页访客的令牌只回写 msToken、ttwid、odin_tt、passport_csrf_token 这几个必要项附带 sid_guard 等登录凭证不塞无关字段结果落到 config.yml 的 cookies 段之后所有请求直接复用无需重复登录关键参数缺任何一个必需键工具都会明确提示不会静默存一份废配置不想动配置文件时可单独导出到config/cookies.json。如何把请求频率调到不触发风控适用场景整站批量前确认节奏合适。默认值已经按真人刷手机设计多数情况不用动。怎么实现全局限速器保证两次请求之间至少间隔 1/max_per_second 秒每次放行后再随机多等 0~0.5 秒抖动避免节拍器式固定间隔被识别并发任务通过同一把锁排队取号线程再多也不会冲破速率上限单次请求失败不硬刚交给重试模块按递增等待补发关键参数rate_limit默认 2每秒 2 个请求与thread默认 5 路并发配套频繁被拦就把rate_limit降到 1。实现见 control/rate_limiter.py。如何命中验证码时自动兜底适用场景抓博主主页翻页中途被平台拦下弹验证码或返回空不用手动重启。怎么实现检测到 API 翻页受阻后自动拉起本地浏览器模拟滚动加载继续取数默认非无头模式窗口留在前台出现验证码时你可以直接人工点掉滚动达到上限、或连续若干轮没有新内容时自动收手不无限空转post模式已完整验证like/mix 等模式目前主要依赖 API 翻页关键参数browser_fallback.enabled默认 truemax_scrolls上限 240 轮wait_timeout_seconds600 秒留给你人工处理验证码的时间。如何降低批量下载的失败率适用场景网络不稳时批量总有个别条目超时、半截文件靠这组机制自动救回。怎么实现请求失败后按 1 秒→2 秒→5 秒递增等待再发不是一失败就立刻重锤默认 5 路并发单条失败不中断整批进度条照常推进文件下完后拿实际大小和服务端声明的 Content-Length 对账不符就删掉重新下每条下载元数据写入 SQLite默认dy_downloader.db方便复盘和增量判断关键参数retry_times默认 3首次之外最多补 3 次thread默认 5弱网环境降到 3 反而更稳。重试逻辑在 control/retry_handler.py。桌面版任务中心思路一致任务互相隔离失败项可以单独重跑如何避免重复下载旧内容适用场景想定期同步某几个博主的新更新又不想把三个月前的视频再存一遍。怎么实现每种模式有独立增量开关increase.post等开启后跳过已判定下载过的条目判断先看磁盘主文件文件被删时默认重新下载也可改为信数据库记录mode支持 post发布、like喜欢、mix合集、music音乐、collect/collectmix收藏夹六种用户模式各自是独立策略实现想看某模式行为可直接读对应策略文件关键参数number.post设为 0 表示抓全量配合start_time/end_time可只取指定时间段的作品。桌面版可按博主同步内容并筛选新作品与命令行增量下载目标一致 参数速查参数默认值作用建议值rate_limit2每秒最大请求数保持 2频繁被拦降到 1thread5并发下载任务数弱网降 3好网络可试 8retry_times3失败后的最大补发次数保持 3video_qualityhighest在码率档位中取最高转码档追画质用 original省流量用 720pincrease.posttrue跳过已下载条目定期同步保持 truedatabasetrue下载历史写入 SQLite保持 truebrowser_fallback.enabledtrue翻页受阻自动开浏览器post 模式保持 truedownload_pinnedfalse是否包含主页置顶作品默认 false 常见问题排查Q下着单条视频突然报需登录或返回空怎么办A登录态过期了重新跑一遍python -m tools.cookie_fetcher --config config.yml刷新即可。QCookie 刚拿的过几天就失效是不是坏了A这是正常现象网页登录态本身有有效期。大批量任务开跑前重新抓一次耗时不到一分钟。Q网络不稳时磁盘上留下半截视频要手动清吗A不用。程序下载完会和服务端声明的长度对账不符自动删除并走重试流程。Q翻页卡验证码是不是每次都得手动点Abrowser_fallback默认开启命中后会自己拉起浏览器你在窗口里点一次验证码即可后续抓取继续在该浏览器里进行post 模式支持最好。Q第二次运行把同样的视频又下了一遍A先确认increase.*是 true。磁盘文件被手动删掉时默认行为就是重下redownload_missing_files为 true改成 false 可在数据库仍有记录时直接跳过。⚖️ 合规提醒仅用于个人学习与备份尊重创作者版权下载内容请勿二次分发控制请求频率不要对单一账号做长时间不间断抓取平台规则随时可能调整若账号被限频降速或改到低峰时段再跑本工具不提供绕过付费内容、私密内容访问的能力 延伸阅读Playwright 官方文档浏览器兜底与 Cookie 自动获取的底层技术浏览器搜 Playwright Python 即可找到完整功能清单与已知限制README.zh-CN.md 的 Current Limitations 一节源码入口用户模式策略在 core/user_modes/全部可配参数及注释见 config.example.yml下次要存博主主页或一批视频流程就是本文这套抓状态、跑起来、把节奏交给限速器。下不全、重复下这两个最烦人的问题靠默认配置加增量开关基本可以解决。【免费下载链接】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),仅供参考