配好 6 个键,把抖音创作者主页的全部作品批量下载到本地
【免费下载链接】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 为例,给出抖音主页备份(抖音批量下载)的实操教程:把创作者主页链接写进配置文件,工具会逐条拉取该主页的作品,并把视频、封面、背景音乐和元数据保存到本地。全流程只需要动 6 个键。
复制这份配置,把抖音创作者的全部作品存到本地
下面直接给出最终配置与启动命令,环境要求 Python 3.8+,先克隆仓库并装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt再把仓库里的config.example.yml复制成config.yml,改下面几处键。配置相当于一张工单,工具只会照着工单执行:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 创作者主页 path: ./Downloaded/ # 保存目录 mode: [post] # 拉取作品页 number: post: 2 # 0 = 全部,首次先试 2剩下两个键:thread: 5是并发数,database: true开启 SQLite 去重。保存后用一行命令启动:
python run.py -c config.yml启动后每个作品占一条进度条,最后汇总完成数量。不想碰命令行的话,项目还带一个桌面版(Beta):粘贴抖音链接即可发起下载。
link、mode、number 这些键怎么填
本节解释这 6 个键为什么这么配。
link是批量下载的入口,填入https://www.douyin.com/user/...格式的主页链接后,工具会逐页翻完该主页的作品列表。mode: [post]表示拉取「作品」页签;想连创作者点赞过、合集或原声音乐一起拉,可再补like、mix、music,各模式的策略实现位于 core/user_modes/。
number.post是拉取上限:0代表全部,非零代表只取最新 N 条。我首次先填了 2,确认路径和命名符合预期后再改成 0,这是最稳的顺序。默认不含置顶作品,需要的话把download_pinned改为true。
path决定文件落盘位置,中途不要挪动,否则去重记录会失效。跑完后目录树长这样:
Downloaded/ └── AuthorName/ └── post/ └── 2024-02-07_Title_aweme_id/ ├── xxx.mp4 ├── xxx_cover.jpg └── xxx_data.json打开cover: true、music: true会一并保存封面图与背景音乐,再打开json: true就多留一份元数据。
另要注意:作品列表接口近期可能触发风控,项目默认开启browser_fallback兜底,会弹出浏览器窗口协助翻页,不要过早关闭。
Cookie 自动获取怎么做,免手填字段
本节解决「登录态从哪来」的问题。抖音的部分接口要求登录身份,登录态由 Cookie 携带,项目自带获取工具 tools/cookie_fetcher.py:
python -m tools.cookie_fetcher --config config.yml它会弹出浏览器窗口,扫码登录后回到终端按回车,msToken 等字段自动写回配置文件。执行前先pip install playwright并安装 Chromium 内核。全程几分钟,之后随时重跑该命令即可刷新。
打开 increase 和 database,重跑只补新作品
本节解决「重跑白烧流量」的问题。
database: true让每个作品完成后写入一条 SQLite 下载记录,重跑时记录与本地已有文件双重比对,两者都命中才跳过。记录默认存在dy_downloader.db,由 storage/database.py 维护。
increase.post: true表示只补新作品:本地主文件已存在就跳过;删掉某作品的本地文件,下次会重新拉取。两者配合,跑十遍也不会重复下载旧作品。只想重拉某个时段,可用start_time与end_time圈定时间窗。
用 crontab 挂到每天凌晨自动跑,新作品自己到 💡
本节给无人值守方案。Linux 上执行crontab -e追加一行:0 4 * * * cd /path/to/douyin-downloader && python run.py -c config.yml。配合increase.post: true,创作者白天新发的作品会在凌晨自动补进本地。触发器像闹钟,到点只补缺的部分。
桌面版的任务中心里,每批任务的成功/失败数量一目了然,失败项可直接重试:
4 种常见症状与对应解法
遇到失败时先按症状定位,多数落在以下四类:
- 症状:大批作品失败,提示需要登录。原因:Cookie 过期。解法:重跑
python -m tools.cookie_fetcher --config config.yml,不要手改字段。 - 症状:只拉到二十来条,远少于实际数量。原因:API 分页触发风控。解法:保持
browser_fallback.enabled: true、headless: false,在弹出的浏览器里手动完成校验后继续任务。 - 症状:重跑把已下载的内容又下一遍。原因:
database没开,或保存路径中途改过。解法:保持database: true,path定好后不再挪动。 - 症状:中途提示磁盘空间不足。原因:全量拉取且音乐、封面、元数据全开,体积成倍增长。解法:用
start_time/end_time收窄时间窗,或调小number.post。
请仅把该工具用于个人学习、研究与备份,尊重内容创作者权益。现在就能做的下一步:把number.post改成 2,跑一次python run.py -c config.yml,确认Downloaded/里的产物符合预期。
【免费下载链接】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),仅供参考