字节笔记本

2026年2月22日

DouK-Downloader:抖音 TikTok 数据采集与下载工具

本文介绍 DouK-Downloader(原 TikTokDownloader),一个功能强大的抖音和 TikTok 数据采集与下载工具。该项目完全开源,支持批量下载视频、图集、直播等内容,是社交媒体内容管理的实用利器。

项目简介

DouK-Downloader 是一个基于 Python 开发的开源项目,由 JoeanAmier 开发维护。截至目前,该项目在 GitHub 上已获得 13.2k+ stars2.3k+ forks,是一个非常受欢迎的数据采集工具。

该项目基于 HTTPX 模块实现,提供完全免费的数据采集和文件下载功能,支持抖音和 TikTok 双平台的内容获取。

核心功能

抖音平台支持

  • 批量下载账号发布、喜欢、收藏、收藏夹作品
  • 下载抖音链接作品(视频/图集/实况)
  • 获取抖音直播拉流地址并下载直播视频
  • 采集抖音作品评论数据
  • 批量下载抖音合集作品
  • 采集抖音账号详细数据
  • 采集抖音用户/作品/直播搜索结果
  • 采集抖音热榜数据

TikTok 平台支持

  • 批量下载账号发布、喜欢作品
  • 下载 TikTok 链接作品
  • 获取 TikTok 直播拉流地址并下载直播视频
  • 批量下载 TikTok 合辑作品

技术栈

  • Python 3.12 - 主要开发语言
  • HTTPX - 高性能 HTTP 客户端
  • Docker - 容器化部署支持
  • Web UI - 交互式界面(开发中)
  • Web API - RESTful API 接口

安装指南

方式一:使用预编译程序(推荐)

Mac OS、Windows 10 及以上用户可直接下载使用:

  1. 前往 ReleasesActions 下载已编译的程序
  2. 解压后双击运行 main 即可开箱即用

Mac OS 用户注意:由于可执行文件未经过代码签名,首次运行时需要在终端执行 xattr -cr 项目文件夹路径 移除安全标记。

方式二:源码运行

前置要求:

  • Python 3.12
  • pip 或 uv 包管理器

使用 pip 安装:

bash
# 克隆仓库
git clone https://github.com/JoeanAmier/TikTokDownloader.git
cd TikTokDownloader

# 创建虚拟环境(可选)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或 venv\Scripts\activate  # Windows

# 安装依赖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

# 启动程序
python main.py

使用 uv 安装(推荐):

bash
# 创建虚拟环境
uv venv

# 同步依赖
uv sync

# 启动程序
uv run main.py

方式三:Docker 部署

bash
# 拉取镜像
docker pull joeanamier/tiktok-downloader
# 或
docker pull ghcr.io/joeanamier/tiktok-downloader

# 创建并运行容器
docker run --name tiktok-downloader -p 5555:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader

# 启动已有容器
docker start -i tiktok-downloader

快速开始

  1. 运行程序(选择上述任意一种安装方式)
  2. 阅读免责声明并根据提示操作
  3. 配置 Cookie
    • 从剪贴板读取 Cookie(推荐)
    • 从浏览器读取 Cookie
  4. 选择工作模式
    • 终端交互模式
    • Web UI 交互模式(开发中)
    • Web API 接口模式

使用示例

终端交互模式

bash
# 启动后选择:
# 终端交互模式 -> 批量下载链接作品(通用) -> 手动输入待采集的作品链接

# 输入抖音/TikTok 作品链接即可下载

Web API 模式

启动 API 模式后,访问 http://127.0.0.1:5555/docshttp://127.0.0.1:5555/redoc 查看自动生成的文档。

API 调用示例:

python
from httpx import post
from rich import print

def demo():
    headers = {"token": ""}
    data = {
        "detail_id": "0123456789",
        "pages": 2,
    }
    api = "http://127.0.0.1:5555/douyin/comment"
    response = post(api, json=data, headers=headers)
    print(response.json())

demo()

重要说明

关于 Cookie

  • Cookie 仅需在失效后重新写入配置文件,并非每次运行都需要
  • Cookie 会影响下载的视频文件分辨率,如遇问题请尝试更新 Cookie
  • 获取私密账号数据需要登录后的 Cookie,且登录账号需关注该私密账号

使用限制

  • 本项目不支持付费作品下载
  • Windows 系统需要以管理员身份运行才能读取 Chromium、Chrome、Edge 浏览器 Cookie
  • 不建议程序多开,如需多开请复制整个项目文件夹

其他注意事项

  • 程序提示输入时,直接回车代表返回上级菜单,输入 Qq 代表结束运行
  • 如需终止程序,请按下 Ctrl + C,不要直接点击终端窗口的关闭按钮
  • 下载文件时会先保存至临时文件夹,完成后再移动至储存文件夹

项目链接

免责声明

使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。本项目的作者提供的代码和功能是基于现有知识和技术的开发成果,旨在提供学习和研究用途,并不保证其准确性、完整性或可靠性。使用者应自行判断其适用性,并自行承担风险。

分享: