douyin-downloader 完整指南:去水印、批量下载,3 步归档抖音主页
【免费下载链接】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 就是一个解决这件事的抖音批量下载工具:一份 YAML 配置,即可把无水印视频、图文笔记、合集、音乐原声归档到本地,自带进度显示、失败重试和按作者的目录归档。
选对入口,先走对路
这一节回答一个问题:你的需求属于哪一类,该从哪个入口进。
项目有一个统一的命令行入口run.py,链接类型决定下载内容,不用记第二套脚本:
- 单条内容:一条视频(
/video/xxx)、图文笔记(/note/xxx)、合集(/mix/xxx)或音乐(/music/xxx)链接,甚至v.douyin.com分享短链,填进link即可;也支持命令行直接追加:python run.py -u "https://www.douyin.com/video/xxxx"。 - 主页批量:
/user/{sec_uid}主页链接配合mode指定抓什么——post(作品)、like(点赞)、mix(合集)、music(音乐原声),一次可开多个模式,程序会跨模式去重。 - 直播间:
live.douyin.com/{room_id}链接触发录制,保存 FLV 文件,主播下播或网络中断时已录的字节会保留。 - 喜欢图形界面:项目同时提供桌面版 Douzy(内测中),与 CLI 同一套底层引擎,贴链接就能跑任务。
🚀 跑通首条下载
这一节是从零到第一次下载成功的最短路径,共四步。
先拿代码和依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt再处理登录凭证。抖音大部分内容要登录态,这是后面一切的前提,而它有过效期——Cookie 失效是长期使用时最常见的故障源,先记住这点。项目自带自动抓取脚本,会弹出浏览器让你手动登录,完成后把 Cookie 写回配置文件(依赖 playwright,需要时执行pip install playwright并python -m playwright install chromium):
python -m tools.cookie_fetcher --config config.yml然后建一份最小配置。复制模板改名,填一条链接即可,Cookie 上一步已自动写好:
cp config.example.yml config.ymllink: - https://v.douyin.com/xxxx/ path: ./Downloaded/最后运行,看结果:
python run.py -c config.yml程序先打印本次配置,再逐条推进度条,已下载过的内容直接跳过,结尾给出成功/失败统计。看到全部成功,第一条去水印下载就通了。
⚙️ 改与不改:配置文件怎么动
这一节把配置项分成三组,避免你逐项背文档。完整模板见config.example.yml,字段含义参考 config/default_config.py。
必须改的三项:
link:要下载的链接列表,可写多条;path:文件落盘根目录,默认./Downloaded/;cookies:登录凭证,交给 cookie_fetcher 自动填充最省事。
按需改的:
mode:主页链接抓什么内容(collect/collectmix专抓登录账号的收藏夹,需单独使用);number:各模式数量上限,0表示不限;start_time/end_time:按发布时间过滤,格式YYYY-MM-DD;music/cover/avatar/json:是否顺带保存原声、封面、头像、元数据,默认全关,只下视频本体;video_quality:画质档位,highest(默认)、original探原画或指定分辨率。
默认别动的:
thread: 5、retry_times: 3、rate_limit: 2:并发、重试、限速三件套,默认值就是为稳而设;database: true:历史数据库,开着不碍事;browser_fallback:翻页被风控时自动开浏览器兜底,保持enabled: true、headless: false;progress.quiet_logs:进度阶段静默日志。
📦 批量归档主页,每天只补新增
这一节讲两个常被一起做的事:整页打包一个创作者,以及之后每天只拉新内容。
打包很简单:主页链接加多模式、设好上限,剩下的交给程序。跨模式去重是自动的,同一条作品不会因为开了 post 又开了 like 就下两次。
link: - https://www.douyin.com/user/xxxx mode: [post, like, mix] number: {post: 0, like: 20}想要"每天跑一遍、只拿新增",增量开关打开即可:程序按磁盘上的主文件判断——本地已存在且非空就跳过,缺失或为空才重新下载。
increase: post: true database: true🗂️ 文件落在哪里,历史存在哪里
这一节回答三个问题:产物归档结构、历史记录位置、如何强制重下。
默认目录按"作者 → 模式 → 发布日期_标题_作品ID"三层归档,日期取自作品发布时间:
Downloaded/ └── 作者昵称/ └── post/ └── 2024-02-07_标题_aweme_id/ ├── .mp4 / _cover.jpg / _music.mp3 / _avatar.jpg └── _data.json除文件外还有两处记录:
- 下载清单
Downloaded/download_manifest.jsonl:每行一条 JSON,含发布日期、标题、标签、文件路径,方便日后检索; - SQLite 数据库
dy_downloader.db(默认开启):aweme表存作品明细,download_history表存每次任务快照。
想重新下载某条作品时,注意程序是"数据库记录 + 本地文件"双重校验:只删数据库不删文件不会触发重下;只删文件保留数据库反而会补下。标准动作是两边一起清:
rm -rf Downloaded/作者昵称/post/*_7604xxx/ sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id='7604xxx';"🔧 排查四类高频故障
这一节把新手最常碰到的四种情况按"现象 → 原因 → 动作"拆开。
1) Cookie 失效:突然大面积下载失败
- 现象:之前一直正常,某天后大批任务报登录类错误。
- 原因:Cookie 有过效期,登录态失效。
- 动作:重跑
python -m tools.cookie_fetcher --config config.yml换一份新 Cookie,基本即愈。
2) 主页作品只拿到二十条左右就停
- 现象:批量抓取在 20 条附近停住或翻不动页。
- 原因:接口分页触发了风控。
- 动作:确认
browser_fallback.enabled: true且headless: false,弹出的浏览器窗口里手动完成验证、别过早关掉;同时把thread调低,让翻页慢一点。
3) 想重下某条作品却不生效
- 现象:改了配置或删了东西,重跑还是跳过。
- 原因:双重校验机制在起作用,只动了一边。
- 动作:按上一节的标准动作,删本地文件夹和数据库记录各一步,缺一不可。
4) 怎么查历史下载记录
- 现象:想知道某条作品下过没有、什么时候下的。
- 原因:记录默认都写进了 SQLite。
- 动作:用数据库工具打开
dy_downloader.db,或命令行直接查:
sqlite3 dy_downloader.db "SELECT aweme_id, author_name, download_time FROM aweme ORDER BY download_time DESC LIMIT 20;"几条直接能用的建议
- 第一次先拿单条视频链接走一遍完整流程,确认落盘结构正常,再上主页批量;
- 给"日常收藏"和"完整备份"各建一份配置文件,数量上限分开设;
- 失败先查 Cookie,再看风控参数,
thread不要一上来拉满。
免责声明:本项目仅供技术学习与个人数据管理使用,请在合法合规的前提下使用,尊重内容版权与创作者权益。
【免费下载链接】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),仅供参考