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 是一款开源的抖音下载工具,把视频、图集、合集、音乐批量存成本地无水印文件,还能录直播、抓评论。本文写给第一次上手的普通用户和需要定期保存内容的创作者,按"安装 → 登录 → 配置 → 运行"的顺序完整走一遍。
一、盘点 douyin-downloader 的功能:一次看懂能下什么、产出什么
上手前先花一分钟对照这张表,确认它覆盖不覆盖你的需求:
| 核心功能 | 适用场景 | 最终产出 |
|---|---|---|
| 单条视频 / 图文下载 | 保存某一条作品或图集 | 无水印文件 + 封面、BGM、元数据 JSON |
| 作者主页批量下载 | 整页归档某位创作者的作品、点赞、合集、音乐 | 按作者分目录的成批文件 |
| 增量补更 | 定期追更,避免重复下载 | 只落盘数据库里没有的新作品 |
| 收藏夹同步 | 把自己账号"点赞过""收藏夹"里的内容存到本地 | 当前登录账号收藏内容的本地副本 |
| 合集与原声音乐 | 整套教程合集、单首背景音乐 | 整组合集文件 / 音乐文件 |
| 直播录制 | 开播时挂机,下播后补看 | FLV 录像 + 直播间元数据 JSON |
| 评论与热搜数据 | 内容研究、选题观察 | 结构化 JSON / JSONL 数据文件 |
两个默认行为值得记住:媒体文件优先选择无水印源,并在多档清晰度里自动挑码率最高的一档。
二、安装依赖并获取 Cookie:十分钟完成第一次无水印下载
1. 克隆项目并确认 Python 版本
要求Python 3.8 及以上,macOS / Linux / Windows 均可:
python --version git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader你应该看到:python --version输出 3.8 或更高;进入目录后能看到run.py、config.example.yml、requirements.txt这几个文件,说明项目完整。
2. 安装依赖
pip install -r requirements.txt你应该看到:结尾出现Successfully installed ...,没有红色 ERROR。
提示:如果安装很慢或报网络错误,临时换用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
之后如果打算用"浏览器兜底"(批量下载被限流时的备用通道,后面会讲),再补装一套浏览器组件:
pip install playwright python -m playwright install chromium3. 复制配置模板并获取登录凭证
抖音的完整内容只对"已登录用户"开放,所以需要先拿到你的登录凭证——Cookie。你可以把Cookie 理解成进展会的胸牌:服务器看到它,才认定这个请求来自一个真实登录的账号。
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml你应该看到:自动弹出浏览器,用手机抖音扫码登录,回到终端按一次回车,Cookie 就写进了config.yml。它只保存在你本地。
注意:胸牌有有效期,Cookie 一般一两周过期。过期后不用动任何其他配置,重跑上面第二条命令即可。
4. 修改最小配置
打开config.yml,把link换成你要下载的视频或图文链接,其余项保持模板默认即可:
link: - https://www.douyin.com/video/XXXXXXXXX # 换成你的视频/图文链接 path: ./Downloaded/ # 文件保存目录 music: true # 同时下载背景音乐 cover: true # 同时下载封面图 json: true # 保存作品元数据(标题、发布时间、点赞数等)全部字段的含义可以参考 douyin-downloader/config.example.yml。
5. 运行下载任务
python run.py -c config.yml你应该看到:终端先打印链接解析结果和"下载配置"(总数、线程数、保存路径),随后出现进度条推进到 100%,最后输出"下载完成"和保存位置。
6. 查看下载结果
Downloaded/目录下会出现一个以作品命名的文件夹,内容整整齐齐:
Downloaded/ └── 作者昵称/ └── post/ └── 2024-06-15_作品标题_作品ID/ ├── 2024-06-15_作品标题_作品ID.mp4 # 无水印视频 ├── 2024-06-15_作品标题_作品ID_cover.jpg # 封面图 ├── 2024-06-15_作品标题_作品ID_music.mp3 # 背景音乐 └── 2024-06-15_作品标题_作品ID_data.json # 元数据命令行展示了时间范围过滤、下载配置、进度条和底部下载统计,可对照确认任务是否成功结束、文件落在哪个路径
到这里,你的第一条无水印视频已经到手。
三、跑三个高频场景:批量保存作者主页、增量补更、录制直播
场景 1:整页保存一位作者的作品
关注一位创作者很久,想把他发布的内容整体归档,把主页链接填进去、指定模式就行:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 作者主页链接 mode: - post # 只下他发布的作品;还支持 like/mix/music number: post: 50 # 只下载最近 50 个,0 表示全部 start_time: "2024-06-01" # 起始日期:只取这个日期之后发布的作品 end_time: "2024-06-30" # 截止日期:两个时间都留空则不限制其中thread: 5表示同时用 5 个"人手"并行下载,就像超市多开几个收银台,数量越大提速越明显。
你会得到:每个作品一条独立进度条并行推进,失败的自动重试;文件按"作者 → 模式 → 作品"三级目录归位。
批量下载时每个作品都有独立进度条,并发执行,可直观确认并行与重试是否生效
下载完成后的目录按"日期_标题_作品ID"分门别类存放,可确认命名规则是否符合预期
场景 2:开启增量模式,只拉新作品
上周已经存了 50 条,这周作者又更新了,你不想把旧内容再下一遍。打开增量开关:
database: true # 开启 SQLite 记录库,每次下载的作品 ID 都记一笔 increase: post: true # 只下载数据库里没有的新作品这相当于一本借阅台账:每次"借出"都登记在册,下次再跑同一个作者时,台账里有记录的一律跳过,只发新书。
你会得到:工作目录生成dy_downloader.db台账文件;再次运行时旧作品显示"跳过已存在",磁盘上只有新增内容。
场景 3:挂机录制一场直播
博主开播时你没空守着?把直播间链接写进配置,让它替你"守夜":
link: - https://live.douyin.com/123456789 # 直播间链接 live: max_duration_seconds: 3600 # 录满 1 小时自动收尾;填 0 则录到主播下播你会得到:FLV(一种可直接播放的视频格式)录像保存在Downloaded/{作者}/live/下,附带直播间元数据 JSON 快照。中途下播或按 Ctrl+C 中断,已录制的部分都会自动保留,不会白等。
录制前会列出可选清晰度和直播流地址,输入编号即可开始,可确认直播间信息与流地址是否正常解析
四、配置进阶能力:去重续传、API 服务与完成通知
跑通基础流程后,这几项能力可以让任务更省心,按需开启即可:
- 断点续传与完整性校验:中断后重跑会跳过已完成文件;每个文件还会和服务端声明的大小做一次比对——像快递员拿秤核对包裹重量,缺斤少两就自动清理重下。
- REST API 服务模式:先执行
pip install fastapi uvicorn,再运行python run.py --serve --serve-port 8000,就可以通过POST /api/v1/download提交下载任务、查询任务状态,适合接进自己的自动化流程。 - 完成通知推送:
notifications.enabled: true并配置 Bark / Telegram / Webhook 任一渠道,任务成功或失败时手机即时收到推送。 - 视频语音转写:
transcript.enabled: true并设置OPENAI_API_KEY环境变量后,每个视频会额外生成.transcript.txt文字稿,方便检索。 - 自定义命名模板:
filename_template: "{date}_{title}_{id}"可自由组合{date}、{title}、{author}、{id}四个变量;必须包含{id},避免重名覆盖。
项目还配套了处于内测期的桌面客户端,基于同一套后端,粘贴链接即可开始下载,任务中心可以逐条回看每个任务的状态与耗时:
桌面版任务中心逐任务展示状态与结果,可确认长任务最终是否成功、耗时多少
更完整的参数说明见 douyin-downloader/README.zh-CN.md。
五、排查常见问题:Cookie 过期、翻页受限、中断与慢速
现象一:报 403 或提示"未登录"
- 现象:终端出现
403 Forbidden,或任务解析不出任何作品。 - 原因:Cookie 过期,这是最高频的情况。
- 解法:重新运行
python -m tools.cookie_fetcher --config config.yml,扫码后按回车。建议每周固定刷新一次。
现象二:批量下载卡在二三十条不动
- 现象:抓取作者主页到 20~30 条左右就不再增长。
- 原因:抖音对连续翻页做了风控限制,API 不再发放下一页。
- 解法:开启浏览器兜底——相当于线上窗口办不了时,安排工作人员陪你到线下柜台人工核验:
browser_fallback: enabled: true headless: false # 保持窗口可见,方便你手动完成验证弹窗出现后手动完成验证即可,别急着关窗口,等它跑完自然补齐。
现象三:中断之后担心要全部重来
- 现象:网络断开或手动停止后,不知道已完成的部分还算不算数。
- 原因:其实工具内置了去重与完整性校验,已完成的作品都记录在案。
- 解法:确认配置中
database: true已开启,直接重跑python run.py -c config.yml,已完成文件会显示"跳过已存在",只补缺的部分。
现象四:下载速度明显偏慢
- 现象:进度条推进缓慢,偶尔出现超时重试。
- 原因:网络环境不稳,或并发开得太高导致重试变多。
- 解法:把并发调小、重试调大;有代理环境就填上代理地址:
thread: 3 # 并发数,从默认 5 调小 retry_times: 5 # 失败重试次数 proxy: "http://127.0.0.1:7890" # 代理地址,不用则留空写在最后:按这个顺序开始
- 先跑单条视频:完整走完第二节,确认环境和 Cookie 都没问题;
- 再试整页批量:挑一位你真喜欢的作者,用
mode+number限定数量,感受批量下载的节奏; - 最后打开进阶开关:按需启用增量补更、时间过滤、直播录制和完成通知,让工具贴合你的使用习惯。
无水印、有目录、可追溯——让内容从"云端随时会消失"变成硬盘上随时能翻出的东西,才是收藏这件事真正的落点。
【免费下载链接】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),仅供参考