douyin-downloader 只能下载 20 条?Cookie 失效?快速排查完整指南
2026/9/15 16:36:42 网站建设 项目流程

douyin-downloader 只能下载 20 条?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

抖音批量下载工具 douyin-downloader 的下载异常归为四类:只能抓到约 20 条、登录态失效 0 条、同一作品不再重复下载、transcript 文件未生成。修复思路:查日志定因,再重抓 cookie、启用浏览器兜底或清理数据库与本地文件的双重数据,然后重跑验证。

区分四类"下不动"现象,判断要不要动手

看起来一样的症状分属四种不同的问题域,对着现象判断即可:

  • 只抓到约 20 条就停,无报错 → 翻页风控,平台侧限流,走「如何启用浏览器兜底」。
  • 输出 0 条,或日志出现2483、"请先登录" → 服务端登录态失效,走「如何重新获取 Cookie」。
  • 重跑后同一作品不再下载 → 不是故障。程序用「数据库记录 + 本地文件」双重检查决定跳过,属预期行为,走「如何强制重新下载」。
  • 进度输出嘈杂、重复刷屏 → 不是故障,是默认静默模式的表现,无需修复,见「特殊现象」。

以上分诊依据 README.md 的常见问题与重新下载章节。

如何检查是风控、登录失效还是去重

🔎 两步定因。

第一步:看日志区分风控与登录失效。运行下面的命令,这条命令验证本次运行日志里是否存在登录态失效标记:

python run.py -c config.yml -v
  • 日志出现2483或"请先登录" → 登录态失效,走「如何重新获取 Cookie」一步。
  • 约 20 条后自动停止、无报错 → 翻页风控,走「如何启用浏览器兜底」一步。
  • 两者都没有且下载正常完成 → 问题出在重复下载侧,做第二步。

第二步:查数据库历史区分跳过与重下。运行下面的命令,这条命令查询下载历史库最近 20 条记录,验证作品是否已存在:

sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name, datetime(download_time, 'unixepoch', 'localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"
  • 有记录且本地目录存在对应文件 → 程序判定已下载并跳过,属设计内去重,走「如何强制重新下载」。
  • 有记录但本地无文件 → 程序视为需要重新下载,会自动重试,无需操作(README 原文 Note 的说法)。
  • 无记录 → 该作品从未成功下载过,回到第一步复查风控或登录失效。

如何重新获取 Cookie 并启用浏览器兜底

如何重新获取 Cookie(修复登录态失效)

自动方式(推荐):运行下面的命令,这条命令打开浏览器引导登录抖音,登录完成后回到终端按 Enter,cookie 会自动写回config.yml

python -m tools.cookie_fetcher --config config.yml

这是 README 常见问题中「Cookie 失效怎么办」的标准答案。独立验证:重跑原命令,日志不再出现2483→ 修好。

新版另有自动重登:运行中遇到2483会自动打开浏览器引导登录,抓到新 cookie 后自动重试一次;重登后仍失败则明确报错中止,不做无限重试。检测落点在 core/api_client.py,错误处理矩阵见设计文档。

手动方式:Playwright 未安装或当前环境开不了浏览器时,手动把浏览器里的 cookie 更新到config/cookies.jsonconfig.ymlcookies段后重跑;抓取实现可深挖 tools/cookie_fetcher.py。

平台差异:CI 或--serve模式这类非交互环境不会自动开浏览器,程序会打印"请手动更新 cookie"并中止;此时到交互终端手动重抓一次再复制回去即可。

如何启用浏览器兜底(修复只能 20 条)

修改config.yml,这段配置验证浏览器兜底是否开启、浏览器是否可见(手动过验证需要可见窗口):

browser_fallback: enabled: true headless: false

重跑下载命令。翻页受限时程序自动打开浏览器,在弹窗里手动完成验证,不要立即关闭窗口。验证:验证完成后下载数能越过 20 条 → 修好。注意:浏览器兜底目前只对post模式完整生效,like/mix/music仍依赖 API 翻页(README 的 Current Limitations 章节)。

如何强制重新下载已下载的内容

程序按「数据库记录 + 本地文件」双重检查决定是否跳过(README.zh-CN.md 的重新下载章节),强制重下需按范围清理:

重下特定作品,下面两条命令删除该作品的本地文件与数据库记录:

rm -rf Downloaded/AuthorName/post/*_<aweme_id>/ sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<aweme_id>';"

重下某作者全部作品,下面命令删除该作者目录与全部记录:

rm -rf Downloaded/AuthorName/ sqlite3 dy_downloader.db "DELETE FROM aweme WHERE author_name = 'AuthorName';"

全部重置,下面命令删除下载目录与历史库:

rm -rf Downloaded/ rm dy_downloader.db

双重规则(README 原文):只删数据库不删文件不会触发重新下载——程序扫描本地文件名中的aweme_id去重;只删文件不删数据库会触发重新下载。清理后重跑同一条命令,作品再次出现在输出中 → 成功。

验证下载状态是否恢复

✅ 重跑原命令闭环:

  • 风控类:下载数量越过 20 条,不再提前停止。
  • 登录失效类:日志不再出现2483,输出正常。
  • 重下类:用上面的历史查询命令,预期输出是该作品的download_time更新为本次运行时间;桌面版用户可在任务中心直接查看任务结果、对失败项点重试并打开输出目录:

仍未恢复时按症状回退分类:仍只有 20 条 → 回风控类,确认headless: false且手动验证已完成;仍2483→ 回登录失效类,确认新 cookie 确实写入了配置文件;仍被跳过 → 确认文件与数据库记录都删了,两者任一存在即会跳过。

特殊现象:按序检查,无需修复

transcript 文件为什么没有生成

属于配置与范围问题,不是下载失败。按 README 常见问题 4 的顺序检查:transcript.enabled是否为true;下载的是否视频(图文不转写,设计限制);OPENAI_API_KEYtranscript.api_key是否有效;response_formats是否包含txtjson

进度条为什么重复刷屏

不是故障。默认progress.quiet_logs: true会在进度阶段静默日志;输出看起来乱时,检查配置里该项是否为true;调试时临时加--show-warnings-v查看详细日志(README 常见问题 2)。

核心修复链路:查日志定因(2483→ 登录失效 / 20 条即停 → 风控 / 被跳过 → 去重)→ 重抓 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),仅供参考

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

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

立即咨询