DouK-Downloader 抖音 TikTok 作品批量下载:5 类任务跑通实操
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
DouK-Downloader(历史名称 TikTokDownloader)是一款开源免费的抖音 / TikTok 作品批量下载与数据采集工具。粘贴作品链接,视频文件落进本地 Download 文件夹;整账号、整场直播、整批评论数据,也交给它跑。本文覆盖 5 个核心场景:环境安装与 Cookie 配置、单条作品下载、直播录制、账号作品批量下载、Web API 服务化接入。
5 分钟装好并写入 Cookie
- 克隆仓库并同步依赖(需 Python ≥ 3.12,
uv是 Python 包管理工具,负责一键装依赖):
git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader uv sync --no-dev && uv run main.py- 不想配环境?下载 Windows / macOS 平台的预编译可执行文件,解压后双击
main运行;macOS 首次运行先在终端执行xattr -cr 项目文件夹路径移除系统安全标记。 - 程序启动后会展示免责声明,按提示输入确认进入主菜单。
- 浏览器登录抖音网页版,按
F12打开开发者工具,切到"网络"选项卡,筛选框输入cookie-name:odin_tt,点开任意作品评论区。 - 选中任意请求,复制
Cookie的完整值;回主菜单选**"手动输入 Cookie (抖音)"粘贴,或选"从剪贴板读取 Cookie (抖音)"**按提示确认,凭证即写入settings.json。 - 其余字段(下载目录、线程数等)保持默认即可。终端约定:直接回车 = 返回上级菜单,输入
Q= 退出程序。
用一条链接存下单条作品
效果:粘贴一条链接,视频文件出现在程序根目录的Download文件夹。
- 主菜单选择**"终端交互模式"**;
- 选择**"批量下载链接作品(抖音)",再选"手动输入待采集的作品链接"**;
- 粘贴作品链接(App 里"复制链接"得到的分享口令同样可以),回车;
- 看到文件进入
Download文件夹即成功,多链接可继续粘贴。
- 链接里不要带换行符,混入空行可能解析失败;
- 图集作品会拆成多张图片保存,属正常现象;
- 想同时保留封面,把
settings.json的dynamic_cover、static_cover改为true; - 复制即下载:主菜单的**"后台监听模式"**会盯着剪贴板,省掉手工粘贴。
- 下载核心逻辑见 download.py,数据提取见 extractor.py。
顺手把直播也录下来
settings.json的ffmpeg字段必须填本机 FFmpeg 的完整路径,否则提示"未检测到有效的 ffmpeg,不支持直播下载功能";- 主菜单选择**"终端交互模式",再选"获取直播拉流地址(抖音)"**,粘贴直播间分享链接;
- 程序解析出直播数据并列出清晰度,输入清晰度名称或序号(如
FULL_HD1、HD1、SD1),录制随即开始; - 直播结束后录制文件自动落盘到下载目录;清晰度一栏直接回车 = 只要拉流地址、不录制;
- 想中途停止按
Ctrl + C,不要直接关终端窗口。
把整个账号作品页拉下来
给一条主页链接,把整个作品页拉下来,重复运行只补新增。
- 选择**"终端交互模式",再选"批量下载账号作品(抖音)"**;
- 粘贴账号主页链接,程序自动解析账号信息;
- 选择内容类型:发布 / 喜欢 / 收藏 / 收藏夹;
- 多线程并发开始下载。
- 下载过的作品 ID 会被记录,下次运行自动跳过,反复跑同一个账号只存新增的;
- 时间范围用
earliest、latest两个字段限定,只拉指定时段内的作品; - 喜欢、收藏页平台只返回发布日期不返回操作日期,作品多时耗时较长,用
max_pages字段限制请求页数; - 私密账号的作品,需要来自已关注该账号的登录态 Cookie 才能拉到;
- TikTok 的账号作品批量下载,需先在
settings.json配置device_id参数。
想长期跟踪某个账号,把链接登记进settings.json,每次启动只补新作品:
"accounts_urls": [ { "mark": "我关注的博主", "url": "https://www.douyin.com/user/xxx", "earliest": "2024-01-01", "enable": true } ]合集同理:链接填进mix_urls字段,mark、url、enable三项即可。
把下载和采集封装成本地服务
下载和采集能力想封装成服务、或直接落盘成表格,都从这一节开始。
采集评论与热榜数据
- 先开存储格式:把
settings.json的storage_format字段设为csv、xlsx、sqlite之一,采集结果按该格式落盘; - 评论:选择**"采集作品评论数据(抖音)"**,粘贴作品链接,程序按页拉取评论与回复;
- 热榜:选择**"采集抖音热榜数据(抖音)"**,直接采集当前榜单;
- 程序内置智能延时机制控制请求节奏,评论量特别大的作品建议用
pages参数限制采集页数,不要自行调高请求频率。
接入 Web API
- 主菜单选**"Web API 模式"**,本地服务随即启动;浏览器访问
http://127.0.0.1:5555/docs查看自动生成的接口文档; - 常用端点:
POST /douyin/detail(单作品数据,参数传detail_id)、POST /douyin/account(账号作品页,参数传sec_user_id)、POST /douyin/comment(评论数据);TikTok 对应/tiktok/detail、/tiktok/account; - 只有分享链接时先调
POST /douyin/share,把口令文本换成完整链接。
from httpx import post data = {"detail_id": "0123456789", "pages": 2} response = post( "http://127.0.0.1:5555/douyin/comment", json=data, headers={"token": ""}, ) print(response.json())部署到服务器长期跑,用仓库自带的Dockerfile构建镜像,把5555端口映射出去即可;容器访问不到宿主机文件系统,依赖本地资源的个别功能在容器里不可用。另外settings.json改动后要重启程序才生效。各平台接口实现见 interface/ 目录。
排障速查
| 现象 | 大概率原因 | 操作 |
|---|---|---|
| 只下到低清晰度 | Cookie 失效,程序拿不到高清数据 | 按前文步骤重新获取一份已登录的 Cookie 写入 |
| 请求超时、下载中断 | 网络受限 | 在settings.json的proxy字段配置代理后重试 |
| 下载到一半停止 | 磁盘空间不足 | 清理磁盘,或把root字段改到别的盘 |
| 提示"未检测到有效的 ffmpeg" | 未配置 FFmpeg 路径 | 把本机 FFmpeg 完整路径填入ffmpeg字段 |
| 启动程序失败 | Python 版本低于 3.12 或依赖缺失 | 确认版本后重新uv sync --no-dev再运行 |
还查不到原因,先看程序日志目录里的当日日志;问题仍在,去仓库提 issue,附上系统版本与报错原文。
从一条视频、一个账号主页,到整场直播、整批评论数据,DouK-Downloader 把这些重复动作都变成了可以放着跑的自动任务。仅限个人学习研究,遵守平台规则与版权要求。实现层面可从这几处入手:下载核心、数据提取、各平台接口实现、全部配置项定义。
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考