ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

douyin-downloader:一个命令免费把博主主页整体存到本地

douyin-downloader:一个命令免费把博主主页整体存到本地 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刷到一条 3 分钟的手作教程想存下来当素材划走就找不回来了就算存进相册水印还在文件名还是一串数字。douyin-downloader 是一款开源免费的抖音无水印下载工具粘个链接能下单条给个创作者主页能批量搬回作品内置去重和断点续传。从零开始跑通第一次无水印下载还会覆盖整页备份、直播录制和评论采集。半小时跑通从安装到首次运行前提是电脑装有 Python 3.8 及以上版本。先把代码克隆下来装好依赖顺手把浏览器内核装上后面接口遇到风控时会用它做浏览器兜底git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader cp config.example.yml config.yml pip install -r requirements.txt pip install playwright python -m playwright install chromium成功的标志终端没有红色报错目录里多出一个config.yml。安装慢或报网络错误时给 pip 命令加-i https://pypi.tuna.tsinghua.edu.cn/simple临时换国内镜像源。接下来拿登录凭证。抖音不登录拿不到完整内容但凭证不用你手动找跑一条命令就行python -m tools.cookie_fetcher --config config.yml浏览器会自动弹出来用手机扫码登录一次抖音回到终端按回车凭证Cookie登录凭证扫码一次即写入本地就存进配置文件里了只保存在你自己机器上具体抓取逻辑在 tools/cookie_fetcher.py 里可以看到。⚠️ 凭证有效期有限过期后重跑上面这条命令扫一次码即可其余配置一律不用动。然后打开config.yml把示例link换成一条你想下载的视频链接其余保持默认最小可运行片段长这样link: - https://v.douyin.com/EXAMPLE123/ path: ./Downloaded/ # 保存目录 music: true # 顺带下背景音乐 cover: true # 顺带下封面图 json: true # 保存作品元数据最后运行python run.py -c config.yml几秒后终端里进度条走完、打印成功统计打开Downloaded/目录第一个无水印视频已经躺在里面旁边是封面和data.json。所有字段的完整含义都能翻 config.example.yml 查。不想碰命令行的话同一套后端还有桌面版粘个链接就能发起任务按任务来从一条视频到整个主页保存单条视频或图文笔记把 App 分享出来的v.douyin.com/xxx短链直接贴进来就行不用手动转长链工具会自动解析。甚至不用改配置文件用-u参数把链接追加到本次运行python run.py -c config.yml -u https://v.douyin.com/xxxx/跑完之后你手里多的是Downloaded/ └── 2024-02-07_教程标题_aweme_id/ ├── 2024-02-07_教程标题_aweme_id.mp4 # 无水印视频 ├── 2024-02-07_教程标题_aweme_id_cover.jpg └── 2024-02-07_教程标题_aweme_id_data.jsonmp4是主体封面和 JSON 分别在cover、json开启时出现。单合集、单音乐也是同一套路把合集或原声链接贴进去整组抓取音乐优先拿原声文件。整页备份一个创作者主页想把一个创作者的作品整体搬回本地把链接换成创作者主页、指定模式即可。post是发布的作品like是他点赞的mix是合集music是用过的音乐link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 # 只下最近 50 个0 表示全部 increase: post: true # 跳过已下载过的作品跑完之后你手里多的是作品按作者归档一个作品一个文件夹视频、封面、BGM、元数据整整齐齐Downloaded/ ├── download_manifest.jsonl └── 创作者昵称/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── 2024-02-07_作品标题_aweme_id.mp4 ├── 2024-02-07_作品标题_aweme_id_cover.jpg ├── 2024-02-07_作品标题_aweme_id_music.mp3 └── 2024-02-07_作品标题_aweme_id_data.json顶层的download_manifest.jsonl是下载清单每个作品一行 JSON记录下载状态方便后续核对。去重发生在两层跨模式重叠的作品不会下第二遍increase配合本地 SQLite 小数据库记录作品 ID让重跑同一创作者时自动跳过已有作品。登录状态下还能用collect/collectmix把自己账号的收藏夹整体搬走。只想按时间截取一段的话start_time: 2024-06-01 end_time: 2024-06-30文件名不是写死的filename_template和folder_template里可以用{date}、{title}、{id}、{author}、{year}、{month}、{day}等变量自由组合但模板里必须包含{id}防止重名覆盖。各模式的具体抓取策略实现在 core/user_modes/ 目录里想改行为可以从这里下手。直播回放录制与断点续传想留住主播的直播回放但人没法全程守在屏幕前把直播间链接交给工具它替你挂机录着。link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 一直录到主播下播跑完之后你手里多的是录像存在Downloaded/{作者}/live/下旁边附带一份*_room.json直播间元数据快照。主播下播、断网或者你按 CtrlC 中断已录制的部分都会保留不浪费。批量任务里的断点续传是同一套机制内置完整性校验文件不完整会自动清理重取再次运行同一命令只补缺失部分不用从头来。评论采集与元数据导出想分析某个作品下用户在讨论什么一条条截图太原始。打开评论采集开关每个作品会自动多出一份结构化 JSON二级回复都在直接丢给脚本分析comments: enabled: true include_replies: true # 连二级回复一起抓 max_comments: 500 # 0 不限跑完之后你手里多的是2024-02-07_作品标题_aweme_id/ └── 2024-02-07_作品标题_aweme_id_comments.json不追特定博主、就想看今天抖音在聊什么或者按关键词收作品做选题还有两条现成命令。前者导出热搜榜前 30 条后者导出与猫咪相关的 100 个作品都落成 JSONL分别放在hot_board/和search/目录里python run.py --hot-board 30 -p ./Downloaded python run.py --search 猫咪 --search-max 100 -p ./Downloaded高频配置项速查前文涉及的高频字段加上几个常用的集中整理在这一张表里。字段名默认值一句话说明所属分组link必填抖音链接单条或创作者主页下载行为modepost批量模式post/like/mix/music/collect下载行为number全 0各模式下载数量0 表示不限下载行为start_time/end_time按日期截取YYYY-MM-DD下载行为increase各模式true增量开关跳过已下载作品下载行为databasetrue用本地 SQLite 记录下载历史下载行为video_qualityhighest画质original/highest/1080p 等下载行为download_pinnedfalse是否包含置顶作品下载行为path./Downloaded/保存目录输出与命名video/music/cover/jsontrue/false/false/false各类产物的开关输出与命名folderstyletrue是否按作品建独立文件夹输出与命名filename_template{date}_{title}_{id}文件名模板必须含{id}输出与命名folder_template{date}_{title}_{id}目录名模板输出与命名author_dirnickname作者目录命名nickname/sec_uid输出与命名redownload_missing_filestrue主文件缺失时重新下载输出与命名thread5并发下载数容错与性能retry_times3单任务失败重试次数容错与性能rate_limit2请求间隔秒容错与性能browser_fallback.enabledtrue接口失败时浏览器兜底开关容错与性能browser_fallback.headlessfalse浏览器是否无头运行容错与性能comments.enabledfalse评论采集输出*_comments.json扩展开关live.max_duration_seconds0录制时长上限0 表示录到流结束扩展开关transcript.enabledfalse视频语音转写扩展开关notifications.enabledfalse下载完成通知推送扩展开关server.max_jobs500REST 服务任务上限扩展开关跑不通时的快速排查突然出现 403 Forbidden或提示未登录。 最可能原因Cookie 过期最高频的一种。 修复python -m tools.cookie_fetcher --config config.yml扫一次码解决。主页明明上百个作品只抓到二三十条。 最可能原因翻页触发了风控。 修复确认browser_fallback.enabled: true且headless: false弹窗浏览器里手动完成验证别急着关窗口。下载到一半断了担心要全部重来。 最可能原因不需要担心这是正常情况。 修复重跑python run.py -c config.yml完整性校验只补缺失部分。批量下载时内存、流量占用明显偏高。 最可能原因并发开太大。 修复改成thread: 3按 50~100 个作品分批执行开跑前先确认磁盘余量。同一个作品被下载了两遍。 最可能原因增量开关没开。 修复确认database: true且对应的increase模式是true。锦上添花的扩展能力这些能力都不是必须完成的步骤用到了再开。REST API 服务模式想把它嵌进自己的自动化脚本时用。pip install fastapi uvicorn之后运行python run.py --serve --serve-port 8000通过接口提交下载任务、查询状态服务逻辑在 server/ 目录里。完成通知推送notifications.providers支持 Bark、Telegram 和企业微信 Webhook长任务跑完手机立刻知道结果。视频语音转写transcript.enabled: true并提供 OpenAI Key 后每个视频生成xxx.transcript.txt和xxx.transcript.json把视频内容变成可检索的文字。桌面客户端同一套后端粘贴链接即可开始下载关注列表同步、进度可视化适合不想碰命令行的人。第一次用的人从单条保存那条短链开始先把克隆—扫码—配置—运行整条链路走一遍。已经跑通的人把database和increase两个开关打开让整页备份按增量跑起来。抖音上的内容随时可能下架把真正在意的东西稳妥留在本地才是最踏实的收藏方式。【免费下载链接】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),仅供参考
返回列表