抖音无水印批量下载实操指南:单条视频到作者主页一次搞定
【免费下载链接】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 是一个开源的抖音下载工具,解决"无水印保存视频、图集、合集、音乐(原声)"的问题:支持单条链接和作者主页批量下载,自动去水印,内置进度显示、失败重试、SQLite 去重和浏览器兜底解析。适合想长期备份抖音内容、又不想付费网盘会员的个人用户和技术爱好者。
为什么值得试
- 去水印 + 批量:自动选择无水印源,一条主页链接拉取几十上百条作品,不用逐条手动保存
- 自动去重:SQLite 数据库记录历史,已下载的作品跳过,配合增量模式只补新作品
- 内容打包完整:音乐(原声)、封面、头像、元数据 JSON 各有独立开关,默认全开
环境准备与安装
需要 Python 3.8 及以上。下面每条命令前都说明了它的作用:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第一条命令克隆项目,第二条进入目录,第三条安装 requests、pyyaml、rich 等依赖(网络慢可临时换国内镜像源)。
接下来准备登录态。抖音接口需要 Cookie,脚本会自动打开浏览器让你扫码登录,并写入配置文件:
python cookie_extractor.py它依赖 Playwright,首次运行前先执行pip install playwright && playwright install chromium。也可以不装它:在浏览器登录抖音后,打开开发者工具从请求头里复制 Cookie,手动写进配置文件。
最小可运行路径
三步看到第一个结果。
第一步,复制一份配置模板:
cp config.example.yml config.yml第二步,编辑config.yml,只保留必要字段:
link: - https://www.douyin.com/video/7604129988555574538 # 换成你的链接 path: ./Downloaded/ # 保存目录 music: true # 顺带下载原声音乐 cover: true # 顺带下载封面 # json: true # 保存元数据,默认开启,可省略第三步,执行下载:
python DouYinCommand.py跑完去./Downloaded/目录确认,无水印视频、音乐、封面会按类型归档存放,终端实时显示每条的进度百分比、成功/失败统计和总耗时。
核心用法
下载单条视频、图文、合集
要改的只有一个字段:link。工具会自动识别链接类型,按作品(aweme)、用户(user)、合集(mix)、音乐(music)、直播(live)分别处理:
link: - https://www.douyin.com/video/7604129988555574538 # 单个视频 # - https://www.douyin.com/note/7341234567890123456 # 单个图文 # - https://www.douyin.com/music/7341234567890123456 # 音乐(原声)从 App 复制的短链接(https://v.douyin.com/...)可以直接粘贴,会自动解析还原,不用手动展开。
批量下载作者主页作品
要改两个字段:link换成作者主页链接,再用mode和number控制范围和数量:
link: - https://www.douyin.com/user/MS4wLjABxxxx mode: - post # 发布的作品 # - like # 点赞过的作品 # - mix # 作者的合集 number: post: 50 # 最近 50 条,填 0 表示全部post、like、mix三种模式可以组合,同一个作品在多个模式里出现时会自动去重,不重复下载。批量下载时的终端效果:
按时间范围筛选作品
加两个日期字段即可,格式YYYY-MM-DD:
start_time: "2024-06-01" # 只收这天及之后的作品 end_time: "2024-06-30" # 只收这天及之前的作品配合number一起用效果最好:比如"某博主 6 月的全部作品",时间圈范围,数量设 0。两个值都留空表示不过滤。
直播解析与录制
link换成直播间地址即可,工具会解析直播间信息并列出可选清晰度:
link: - https://live.douyin.com/123456789解析结果会打印直播流(FLV 直存)和清晰度列表(如 FULL_HD1、SD1),同时把直播间信息保存为 JSON。已录制内容在中断后保留,不会白录。
进阶定制
增量下载,只补新作品
作者持续更新时,第二次运行不必全量重来:
database: true # 用 SQLite 记录下载历史,默认开启 increase: post: true # 主页作品只下载新增的改动前:每次全量请求并跳过已有文件;改动后:工具对比数据库记录,直接跳过旧作品,省时省流量。注意增量依赖database开关,关掉数据库增量就失效。
并发线程与重试
批量下载速度慢时调thread,默认 5 个并发线程,可上调到 8 左右观察是否触发风控;下载失败不用手动处理,工具内置重试(默认 3 次),中断产生的残缺文件会自动清理重下。
下载产物按用户_昵称_主页ID/模式/作品分层存放,每个作品目录内含视频、音乐、封面、data.json元数据(标题、点赞数、话题、发布时间)。
常见问题
Q1:装依赖报错或python DouYinCommand.py找不到命令?先确认python --version是 3.8 及以上;依赖装完后重新打开终端再试。脚本必须在项目根目录下运行,因为它默认读取当前目录的config.yml。
Q2:运行后提示未登录或 403?Cookie 过期了(有效期一般 7~15 天)。重跑python cookie_extractor.py刷新,或手动更新配置文件里的cookies。建议每周一检查一次。
Q3:想重新下载某个已有作品怎么办?去重靠"数据库记录 + 本地文件"双重判断,两边都要清:先删Downloaded/下对应作品目录,再删数据库记录:
sqlite3 data.db "SELECT * FROM t_user_post;"查看各表后按作品 ID 执行 DELETE 对应行即可。
Q4:怎么核对下载结果?运行结束会打印统计(总数/成功/失败/跳过);逐个作品看Downloaded/目录,有data.json说明元数据也落盘了。想看某条是否已下载,直接查data.db里的记录表。
收尾
douyin-downloader 用一份 YAML 配置覆盖单条、批量、时间筛选和直播四类任务,配好 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),仅供参考