如何用抖音下载器一次下完一个主页的 50 条作品
【免费下载链接】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
上周有同事问我,有没有办法把他常看的三个抖音主页、每个最新 50 条视频,去水印后按作者归好档存进 NAS。我拿 douyin-downloader 试了一轮,先说结果:能跑,但有两个坑必须提前知道——凭证会过期,平台风控也会变。这个 Python 项目把抖音批量下载拆得很干净:Cookie 登录态、限流、去重、浏览器兜底各管一摊,跑一次之后,同样的命令隔周再跑只会补新作品。
先说结论:值不值得花二十分钟
- 它是免费开源的 Python 项目,全程本地运行,不经过任何第三方解析站,链接、Cookie、素材都不出机器;
- 每次下载都会把作品标识写进本地 SQLite,二次运行自动跳过已存在的部分,这就是"增量"能成立的前提;
- 它不追求"永远最快",而是把并发、限速、重试都放在可配置、可预期的轨道上——批量抖音下载里,稳定比速度值钱。
功能地图:一个项目管四类活儿
- 单作品与图文去水印保存:拿到一条视频或图集链接,直接存成干净文件,适合临时收藏、二次剪辑。
- 主页批量抓取:
link里放作者主页 URL,mode选post(作品)、like(喜欢)、mix(合集)、music(音乐原声),可叠加多选,适合按作者建素材库。 - 增量与历史:默认开启增量,跳过已下载作品;
start_time/end_time还能按日期窗口筛,适合每周定时补库。 - 可选附带物:封面、作者头像、JSON 元数据、评论采集、完成通知都能单独开关,适合要把素材直接喂给音乐软件或档案系统的场景。
仓库其实分两条产品线:命令行版只管抖音,日常全平台下载官方推荐的是桌面版 Douzy(README 说明);本文只讲命令行这条线。
抖音批量下载器最快上手四步
第 1 步,拿代码、装依赖。Python 3.9 以上即可,浏览器兜底需要 Playwright:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt pip install playwright python -m playwright install chromium第 2 步,拿 Cookie。这是全流程唯一要人参与的一步,命令会拉起浏览器:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml登录完成回到终端按回车,Cookie 就写进了配置。
第 3 步,改最小配置。打开 config.example.yml 对照,真正要动的只有这几处:
link: - https://www.douyin.com/user/某个sec_uid path: ./Downloaded/ mode: [post] number: post: 50 # 0 表示不限 increase: post: true # 跳过已下载第 4 步,跑起来。一行命令,终端会实时刷进度和跳过计数:
python run.py -c config.yml为什么敢让它连跑一晚上
翻过源码之后,有三处设计让我敢把长任务挂上去不管。
其一,限流不是口号。control/rate_limiter.py里全局只有一个令牌口,默认每秒放行 2 个请求,每次放行还额外加 0~0.5 秒随机抖动——请求节奏是"看起来像人"的,而不是一刀切的匀速。批量任务里,这就是"慢一点但不断"和"快一点但被掐"的差别。
其二,去重落在数据库。每成功一条,storage/database.py会把作品aweme_id记进 SQLite;下一轮任务开工前先查库,命中即跳过,磁盘上的主文件若缺失还会按redownload_missing_files决定要不要补。你不用自己维护"哪些下过了"。
其三,浏览器兜底带手动出口。API 翻页受阻时会拉起一个真实浏览器窗口继续抓,且headless: false——碰上滑块验证,人过去点一下,任务就能继续,而不是整批报废。
但要说实话:截至仓库 README 的现状说明,抖音风控已经收紧,CLI 直连接口下载单个作品、合集、音乐、喜欢这几类会被拦,主页作品走 Playwright 兜底"不保证成功",日常高频使用官方建议转 Douzy。CLI 的强项,更多在批量流程、归档和增量这套工程化能力上。
Cookie 过期了怎么办,还有两个坑提前避
- 关于请求频率:
thread默认 5、限速默认 2/s,这两个值都别调高。我见过的失败模式几乎同一种:并发一拉满,限流和风控一起上,整体耗时反而更长。 - 关于凭证时效:Cookie 一般撑几周到一两个月。失效的典型症状是"列表抓得到、作品下不动",不用排查网络,直接重跑
python -m tools.cookie_fetcher --config config.yml刷新即可;cli/main.py里还有自动重登录逻辑,检测到未登录会自己弹浏览器补一次。 - 关于目录结构:
filename_template/folder_template支持{author}、{date}、{id}等变量,规则要求模板里必须带{id}防止重名覆盖。命名规则一旦定错,几百条文件只能重下——建议第一天就想清楚"作者/日期/标题"的层级,再开跑。
谁适合、谁不必
适合:有固定关注的几个作者、每周想增量补齐素材库的人;喜欢命令行加定时任务、想把素材按作者归档进 NAS 或音乐软件的人;需要 JSON 元数据、评论采集这类附带产物的研究者。
不必:只是偶尔存一两条视频,浏览器另存或网页解析更省事;完全不想碰终端的,直接用仓库里的 Douzy 桌面版;对"百分百必成"有硬要求的,先把 README 里的风控限制读完再决定。
最后照例提醒:下载内容仅用于个人学习、研究与数据备份,尊重平台规则和创作者版权,别把素材直接拿去做二次分发——这条边界,比工具本身更值得守住。
【免费下载链接】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),仅供参考