
抖音批量下载工具 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-downloaderdouyin-downloader 是一个用 Python 写成的抖音下载工具能处理单条视频、图文、合集、音乐也能顺着作者主页把作品成批抓下来默认输出无水印的高清文件。它内置进度条、失败重试、SQLite 去重和浏览器兜底机制整体更接近一套小型内容归档系统而不是随手写一个的临时脚本。这篇文章按我自己的使用顺序来写从第一次跑通到把整个关注列表变成本地档案馆再到让它半夜自己干活。先搞清楚它是什么再决定要不要用市面上抖音下载器不少多数是给你一个网页粘个链接、点个按钮、弹个广告。douyin-downloader 走的是另一条路它是一个命令行工具把下载这件事拆成了可配置、可重跑、可扩展的流程。拆开看它的核心能力其实就三块识别链接短链v.douyin.com开头自动解析/video/、/note/、/collection/、/music/、/user/、live.douyin.com各种形态都能认。抓取与下载视频取无水印源按bit_rate自动挑最高码率图文、封面、音乐、头像、元数据 JSON 按需一并落盘。保底与去重请求失败按 1s、2s、5s 指数退避重试SQLite 数据库加本地文件双重去重翻页被卡住时自动切换浏览器策略留出人工过验证码的窗口。翻译成人话你丢给它一串链接它负责把链接背后所有能拿的内容整整齐齐搬回来而且同一件事跑第二次不会重复下载。动手前三件小事花不了十分钟第一件确认 Python 版本需要 Python 3.8 及以上macOS、Linux、Windows 都行。终端里验证一下python --version第二件把代码拉下来git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader第三件装依赖、配 Cookiepip install -r requirements.txt cp config.example.yml config.ymlCookie 是访问抖音接口的通行证工具给了三种给法按优先级从上到下cookies: auto自动获取需要额外装 Playwrightpip install playwright playwright install然后运行python -m tools.cookie_fetcher --config config.yml浏览器里登录一次回到终端按回车Cookie 自动写进配置。整串粘贴cookies: msTokenxxx; ttwidxxx; ...适合手动从浏览器复制。键值对cookies:下面逐行写msToken: xxx这种形式。建议首次用auto最省事。装完这三步就算进入备战状态了。第一站先跑通单条链路别一上来就批量先拿一条视频验证整条链路是通的。编辑config.yml把链接写进linklink: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ music: true cover: true json: true运行python run.py -c config.yml跑完去Downloaded/目录看会发现一个以作者命名的文件夹里面按post分类作品又套了一层以日期开头的小文件夹例如2024-02-07_作品标题_aweme_id/里面躺着视频本体、_cover.jpg封面、_music.mp3原声、_data.json元数据。一条链接把附属资源全带回来了。如果不想改配置文件也可以命令行直接追加python run.py -c config.yml -u https://www.douyin.com/video/xxx -t 8 -p ./Downloaded-u追加链接可重复传-t调并发数-p指保存目录。第二站把整个作者主页搬回家单条链路跑通后批量就是换个链接、加几个参数的事。把link换成用户主页link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 发布的作品 - like # 公开的喜欢列表 - mix # 作者创建的合集 - music # 用过的原声 number: post: 50 # 0 表示不限制全量抓取 like: 0mode支持四种并行组合number控制每种模式抓多少条0 就是全量。值得说的是跨模式自动去重同一个作品既出现在 post 里又出现在 like 里数据库会认出同一个aweme_id只下第一份不会白白占两份磁盘。跑一次主页批量下载终端会看到 Rich 渲染的进度条总数、已成功、剩余时间、跳过文件数一目了然。如果你只是想要某一段时间的作品加两个字段就行start_time: 2024-01-01 end_time: 2024-12-31工具只会把落在区间内的作品留下来整理年度回顾时特别好用。第三站合集与音乐给创作备素材做剪辑的人经常需要某个合集里所有片段或某首原声下的所有作品这两件事 douyin-downloader 也管。合集链接形如https://www.douyin.com/collection/{mix_id}直接放link里即可整个合集抓下来主页的mix模式则是把该作者名下所有合集一网打尽。音乐https://www.douyin.com/music/{music_id}优先拿原声文件本身如果原声缺失会回退到该音乐下第一条作品的音轨保证你总能拿到东西。三个站点跑完你的本地内容库大致长这样Downloaded/ ├── download_manifest.jsonl └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── xxx.mp4 │ ├── xxx_cover.jpg │ ├── xxx_music.mp3 │ └── xxx_data.json ├── like/ ├── mix/ └── music/下载完文件是怎么落盘的这一节聊聊下载之后的事。批量任务跑多了最怕的就是不知道哪个文件是谁的、什么时候下的、下了几遍。douyin-downloader 用两个机制解决命名模板。默认文件名是{date}_{title}_{id}目录里再按作者名/模式/分层。想在文件名里加分辨率、加来源都可以在配置里调模板桌面版还提供了 15 个可用变量让你选。下图是按日期分类后资源管理器里的实际效果每个文件夹就是一天的作品SQLite 档案。默认数据库文件是当前目录下的dy_downloader.db记录每一次下载的去重信息、历史记录和增量断点。想手动翻档案用任意 SQLite 工具打开它就行sqlite3 dy_downloader.db .tables增量下载increase.post: true就依赖这个库——它知道上次下到哪个aweme_id下次运行只追新增。所以有个硬约束关掉database: true增量功能就失效因为断点没地方记了。进阶让它半夜自己干活命令行工具最大的好处就是能进定时任务。假设你每天想追更几个作者的动态写个十几行的脚本丢给系统定时器即可import subprocess import schedule import time def backup_following(): subprocess.run([ python, run.py, -c, config.yml, -u, https://www.douyin.com/user/作者A的sec_uid, -u, https://www.douyin.com/user/作者B的sec_uid, -p, ./Downloaded ]) schedule.every().day.at(03:00).do(backup_following) while True: schedule.run_pending() time.sleep(60)前提是配置里把increase.post打开、database保持开启这样每天凌晨 3 点它只拉新增几分钟跑完。下载完成的推送也可以接上配置里支持 Bark、Telegram、Webhook 三种渠道企业微信、飞书、钉钉的机器人地址都能直接当 webhook 用跑完给你发一条结果不用干瞪眼盯终端。除了定时备份还有几件事值得单独拎出来说直播录制link填https://live.douyin.com/{room_id}加一段live配置max_duration_seconds、chunk_size、idle_timeout_seconds。它会把直播流存成 FLV主播下播、网络空闲或 CtrlC 中断时已录的字节都会保留不会白录。热搜与搜索python run.py --hot-board 30拉热搜榜python run.py --search 猫咪 --search-max 100按关键词搜作品结果落成 JSONL 文件适合做舆情或选题分析。REST API 模式装fastapi uvicorn后python run.py --serve --serve-port 8000对外暴露/api/v1/download、/api/v1/jobs等接口可以接进你自己的 Web 前端或机器人。浏览器兜底API 翻页受限时把browser_fallback.enabled打开headless: false它会弹出一个真实浏览器手动翻页必要时还能人工过验证码把接口被限流这个死局盘活。避坑这几个坑我替你踩过1. 收藏夹模式很挑食。collect/collectmix只能单独使用不能和post/like/mix/music混在同一批任务里而且只支持当前登录 Cookie 对应的账号。想同时抓自己和别人的主页拆成两次任务跑。2. HLS 直播源需要后处理。FLV 源录下来直接能播但如果是 HLS 源工具只保存 playlist 文件得自己用 ffmpeg 合并。录播之前先确认源类型。3. 增量依赖数据库。前面提过increase只有在database: true时才有效。如果你为了省事把数据库关了增量开关形同虚设。4. 频繁请求容易被限。默认并发 5、速率限制 2 请求/秒是项目自己调的平衡点。批量任务挂了代理就填proxy: http://127.0.0.1:7890给 API 请求和媒体下载都走代理能明显降低被限流的概率。5. 直播接口仍是实验性能力。README 里明确写了 webcast 直播接口未覆盖所有场景录播失败别意外多试几个直播间或者退回录回放。接下来的三步走如果这篇文章对你有一点用我的建议是别一次吃成胖子今天跑通单条视频链路把 Cookie 配置摸熟确认输出目录的命名你满意。这周挑一个你最常看的作者主页post模式全量备份一次感受一下去重和进度条的体验。下个月给关注列表里最活跃的几个作者开增量接上定时任务和通知推送让备份变成一件不用想的事。工具再强也请记住它的定位帮你合法合规地保存自己需要的内容尊重创作者的版权下载的素材只用于个人学习、研究或备份。用到顺手之后你会发现真正的门槛从来不是下载而是——你要怎么整理这几百个 G 的本地档案馆。【免费下载链接】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),仅供参考