SkillAgentSearch skills...

TikTokDownloader

TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具/下载工具

Install / Use

/learn @JoeanAmier/TikTokDownloader

README

<div align="center"> <img src="./static/images/DouK-Downloader.png" alt="DouK-Downloader" height="256" width="256"><br> <h1>DouK-Downloader</h1> <p>简体中文 | <a href="README_EN.md">English</a></p> <a href="https://trendshift.io/repositories/6222" target="_blank"><img src="https://trendshift.io/api/badge/repositories/6222" alt="" style="width: 250px; height: 55px;" width="250" height="55"/></a> <br> <img alt="GitHub" src="https://img.shields.io/github/license/JoeanAmier/TikTokDownloader?style=flat-square"> <img alt="GitHub forks" src="https://img.shields.io/github/forks/JoeanAmier/TikTokDownloader?style=flat-square&color=55efc4"> <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/JoeanAmier/TikTokDownloader?style=flat-square&color=fda7df"> <img alt="GitHub code size in bytes" src="https://img.shields.io/github/languages/code-size/JoeanAmier/TikTokDownloader?style=flat-square&color=a29bfe"> <br> <img alt="Static Badge" src="https://img.shields.io/badge/Python-3.12-b8e994?style=flat-square&logo=python&labelColor=3dc1d3"> <img alt="GitHub release (with filter)" src="https://img.shields.io/github/v/release/JoeanAmier/TikTokDownloader?style=flat-square&color=48dbfb"> <img src="https://img.shields.io/badge/Sourcery-enabled-884898?style=flat-square&color=1890ff" alt=""> <img alt="Static Badge" src="https://img.shields.io/badge/Docker-badc58?style=flat-square&logo=docker"> <img alt="GitHub all releases" src="https://img.shields.io/github/downloads/JoeanAmier/TikTokDownloader/total?style=flat-square&color=ffdd59"> </div> <br> <p>🔥 <b>TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具:</b>完全开源,基于 HTTPX 模块实现的免费数据采集和文件下载工具;批量下载抖音账号发布、喜欢、收藏、收藏夹作品;批量下载 TikTok 账号发布、喜欢作品;下载抖音链接或 TikTok 链接作品;获取抖音直播拉流地址;下载抖音直播视频;获取 TikTok 直播拉流地址;下载 TikTok 直播视频;采集抖音作品评论数据;批量下载抖音合集作品;批量下载 TikTok 合辑作品;采集抖音账号详细数据;采集抖音用户 / 作品 / 直播搜索结果;采集抖音热榜数据。</p> <p>⭐ 本项目历史名称:<code>TikTokDownloader</code></p> <p>📣 本项目将于未来进行代码结构重构,目标是让代码更加稳健,并具备更好的可维护性与扩展性;如果你对项目设计、实现方式或优化思路有想法,欢迎提出建议或参与讨论!</p> <hr>

📝 项目功能

<details> <summary>功能列表(点击展开)</summary> <ul> <li>✅ 下载抖音视频/图集</li> <li>✅ 下载抖音实况/动图</li> <li>✅ 下载最高画质视频文件</li> <li>✅ 下载 TikTok 视频原画</li> <li>✅ 下载 TikTok 视频/图集</li> <li>✅ 下载抖音账号发布/喜欢/收藏/收藏夹作品</li> <li>✅ 下载 TikTok 账号发布/喜欢作品</li> <li>✅ 采集抖音 / TikTok 详细数据</li> <li>✅ 批量下载链接作品</li> <li>✅ 多账号批量下载作品</li> <li>✅ 自动跳过已下载的文件</li> <li>✅ 持久化保存采集数据</li> <li>✅ 支持 CSV/XLSX/SQLite 格式保存数据</li> <li>✅ 下载动态/静态封面图</li> <li>✅ 获取抖音直播拉流地址</li> <li>✅ 获取 TikTok 直播拉流地址</li> <li>✅ 调用 ffmpeg 下载直播</li> <li>✅ Web UI 交互界面</li> <li>✅ 采集抖音作品评论数据</li> <li>✅ 下载抖音合集作品</li> <li>✅ 下载 TikTok 合辑作品</li> <li>✅ 记录点赞收藏等统计数据</li> <li>✅ 筛选作品发布时间</li> <li>✅ 支持账号作品增量下载</li> <li>✅ 支持使用代理采集数据</li> <li>✅ 支持局域网远程访问</li> <li>✅ 采集抖音账号详细数据</li> <li>✅ 作品统计数据更新</li> <li>✅ 支持自定义账号/合集标识</li> <li>✅ 自动更新账号昵称/标识</li> <li>✅ 部署至私有服务器</li> <li>✅ 部署至公开服务器</li> <li>✅ 采集抖音搜索数据</li> <li>✅ 采集抖音热榜数据</li> <li>✅ 记录已下载作品 ID</li> <li>☑️ <del>扫码登陆获取 Cookie</del></li> <li>✅ 从浏览器读取 Cookie</li> <li>✅ 支持 Web API 调用</li> <li>✅ 支持多线程下载作品</li> <li>✅ 文件完整性处理机制</li> <li>✅ 自定义规则筛选作品</li> <li>✅ 按文件夹归档保存作品文件</li> <li>✅ 自定义设置文件大小上限</li> <li>✅ 支持文件断点续传下载</li> <li>✅ 监听剪贴板链接下载作品</li> </ul> </details>

💻 程序截图

<p><a href="https://www.bilibili.com/video/BV1d7eAzTEFs/">前往 bilibili 观看演示</a>;<a href="https://youtu.be/yMU-RWl55hg">前往 YouTube 观看演示</a></p>

终端交互模式

<p>建议通过配置文件管理账号,更多介绍请查阅 <a href="https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation">文档</a></p>

终端模式截图


终端模式截图


终端模式截图

Web UI 交互模式

项目代码已重构,该模式代码尚未更新,未来开发完成重新开放!

Web API 接口模式

WebAPI模式截图


WebAPI模式截图

启动该模式后,访问 http://127.0.0.1:5555/docs 或者 http://127.0.0.1:5555/redoc 可以查阅自动生成的文档!

API 调用示例代码

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()

📋 项目说明

快速入门

<p>⭐ Mac OS、Windows 10 及以上用户可前往 <a href="https://github.com/JoeanAmier/TikTokDownloader/releases/latest">Releases</a> 或者 <a href="https://github.com/JoeanAmier/TikTokDownloader/actions">Actions</a> 下载已编译的程序,开箱即用!</p> <p>⭐ 本项目包含自动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!</p> <p>⭐ 自动构建可执行文件教程请查阅本文档的 <code>构建可执行文件指南</code> 部分;如果需要更加详细的图文教程,请 <a href="https://mp.weixin.qq.com/s/TorfoZKkf4-x8IBNLImNuw">查阅文章</a>!</p> <p><strong>注意:由于 Mac OS 平台的可执行文件 <code>main</code> 未经过代码签名,首次运行时会受到系统安全限制。请先在终端执行 <code>xattr -cr 项目文件夹路径</code> 命令移除安全标记,执行一次后即可正常运行。</strong></p> <hr> <ol> <li><b>运行可执行文件</b> 或者 <b>配置环境运行</b>(二选一) <ol><b>运行可执行文件</b> <li>下载 <a href="https://github.com/JoeanAmier/TikTokDownloader/releases/latest">Releases</a> 或者 Actions 构建的可执行文件压缩包</li> <li>解压后打开程序文件夹,双击运行 <code>main</code></li> </ol> <ol><b>配置环境运行</b> <li>安装 <code>3.12</code> 版本的 <a href="https://www.python.org/">Python</a> 解释器</li> <li>下载最新的源码或 <a href="https://github.com/JoeanAmier/TikTokDownloader/releases/latest">Releases</a> 发布的源码至本地</li> <ol><b>使用 pip 安装项目依赖</b> <li>运行 <code>python -m venv venv</code> 命令创建虚拟环境(可选)</li> <li>运行 <code>.\venv\Scripts\activate.ps1</code> 或者 <code>venv\Scripts\activate</code> 命令激活虚拟环境(可选)</li> <li>运行 <code>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt</code> 命令安装程序所需模块</li> <li>运行 <code>python .\main.py</code> 或者 <code>python main.py</code> 命令启动 DouK-Downloader</li> </ol> <ol><b>使用 uv 安装项目依赖(推荐)</b> <li>运行 <code>uv sync --no-dev</code> 命令同步环境依赖</li> <li>运行 <code>uv run main.py</code> 命令启动 DouK-Downloader</li> </ol> </ol> </li> <li>阅读 DouK-Downloader 的免责声明,根据提示输入内容</li> <li>将 Cookie 信息写入配置文件 <ol><b>从剪贴板读取 Cookie(推荐)</b> <li>参考 <a href="https://github.com/JoeanAmier/TikTokDownloader/blob/master/docs/Cookie%E8%8E%B7%E5%8F%96%E6%95%99%E7%A8%8B.md">Cookie 提取教程</a>,复制所需 Cookie 至剪贴板</li> <li>选择 <code>从剪贴板读取 Cookie</code> 选项,程序会自动读取剪贴板的 Cookie 并写入配置文件</li> </ol> <ol><b>从浏览器读取 Cookie</b> <li>选择 <code>从浏览器读取 Cookie</code> 选项,按照提示输入浏览器类型或序号</li> </ol> <ol><b><del>扫码登录获取 Cookie</del>(失效)</b> <li><del>选择 <code>扫码登录获取 Cookie</code> 选项,程序会显示登录二维码图片,并使用默认应用打开图片</del></li> <li><del>使用抖音 APP 扫描二维码并登录账号</del></li> <li><del>按照提示操作,程序会自动将 Cookie 写入配置文件</del></li> </ol> </li> <li>返回程序界面,依次选择 <code>终端交互模式</code> -> <code>批量下载链接作品(通用)</code> -> <code>手动输入待采集的作品链接</code></li> <li>输入抖音作品链接即可下载作品文件(TikTok 平台需要更多初始设置,详见文档)</li> <li>更多详细说明请查看 <b><a href="https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation">项目文档</a></b></li> </ol> <p>⭐ 推荐使用 <a href="https://learn.microsoft.com/zh-cn/windows/terminal/install">Windows 终端</a>(Windows 11 自带默认终端)</p>

Docker 容器

<ol> <li>获取镜像</li> <ul> <li>方式一:使用 <code>Dockerfile</code> 文件构建镜像</li> <li>方式二:使用 <code>docker pull joeanamier/tiktok-downloader</code> 命令拉取镜像</li> <li>方式三:使用 <code>docker pull ghcr.io/joeanamier/tiktok-downloader</code> 命令拉取镜像</li> </ul> <li>创建容器:<code>docker run --name 容器名称(可选) -p 主机端口号:5555 -v tiktok_downloader_volume:/app/Volume -it &lt;镜像名称&gt;</code> </li> <br><b>注意:</b>此处的 <code>&lt;镜像名称&gt;</code> 需与您在第一步中使用的镜像名称保持一致(例如 <code>joeanamier/tiktok-downloader</code> 或 <code>ghcr.io/joeanamier/tiktok-downloader</code>) <li>运行容器 <ul> <li>启动容器:<code>docker start -i 容器名称/容器 ID</code></li> <li>重启容器:<code>docker restart -i 容器名称/容器 ID</code></li> </ul> </li> </ol> <p>Docker 容器无法直接访问宿主机的文件系统,部分功能不可用,例如:<code>从浏览器读取 Cookie</code>;其他功能如有异常请反馈!</p> <hr>

关于 Cookie

点击查看 Cookie 获取教程

  • Cookie 仅需在失效后重新写入配置文件,并非每次运行程序都要写入配置文件!

  • Cookie 会影响下载的视频文件分辨率,如果无法下载最高分辨率的视频文件,请尝试更新 Cookie!

  • 程序获取数据失败时,可以尝试更新 Cookie 或者使用已登录的 Cookie!

<hr>

其他说明

<ul> <li>程序提示用户输入时,直接回车代表返回上级菜单,输入 <code>Q</code> 或 <code>q</code> 代表结束运行</li> <li>由于获取账号喜欢作品和收藏作品数据仅返回喜欢 / 收藏作品的发布日期,不返回操作日期,因此程序需要获取全部喜欢 / 收藏作品数据再进行日期筛选;如果作品数量较多,可能会花费较长的时间;可通过 <code>max_pages</code> 参数控制请求次数</li> <li>获取私密账号的发布作品数据需要登录后的 Cookie,且登录的账号需要关注该私密账号</li> <li>批量下载账号作品或合集作品时,如果对应的昵称或标识发生变化,程序会自动更新已下载作品文件名称中的昵称和标识</li> <li>程序下载文件时会先将文件下载至临时文件夹,下载完成后再移动至储存文件夹;程序运行结束时会清空临时文件夹</li> <li><code>批量下载收藏作品模式</code> 目前仅支持下载当前已登录 Cookie 对应账号的收藏作品,暂不支持多账号</li> <li>如果想要程序使用代理请求数据,必须在 <code>settings.json</code> 设置 <code>proxy</code> 参数,否则程序不会使用代理</li> <li>如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 <a href="https://www.toolhelper.cn/JSON/JSONFormat">在线工具</a> 编辑配置文件内容,修改后需要重启软件才能生效。</li> <li>当程序请求用户输入内容或链接时,请注意避免输入的内容或链接包含换行符,这可能会导致预期之外的问题</li> <li>本项目不会支持付费作品下载,请勿反馈任何关于付费作品下载的问题</li> <li>Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie</li> <li>本项目并未针对程序多开的情况进行优化,如需程序多开,请复制整个项目的文件夹,避免出现预期之外的问题</li> <li>程序运行过程中,如需终止程序或 <code>ffmpeg</code>,请按下 <code>Ctrl + C</code> 终止运行,不要直接点击终端窗口的关闭按钮</li> </ul> <h2>构建可执行文件指南</h2> <details> <summary><b>构建可执行文件指南(点击展开)</b></summary>

本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包!


使用步骤

1. Fork 本仓库

  1. 点击项目仓库右上角的 Fork 按钮,将本仓库 Fork 到您的个人 GitHub 账户中
  2. 您的 Fork 仓库地址将类似于:https://github.com/your-username/this-repo

2. 启用 GitHub Actions

  1. 前往您 Fork 的仓库页面
  2. 点击顶部的 Settings 选项卡
  3. 点击右侧的 Actions 选项卡
  4. 点击 General 选项
  5. Actions permissions 下,选择 Allow all actions and reusable workflows 选项,点击 Save 按钮

3. 手动触发打包流程

  1. 在您 Fork 的仓库中,点击顶部的 Actions 选项卡
  2. 找到名为 构建可执行文件 的工作流
  3. 点击右侧的 Run workflow 按钮:
    • 选择 master 或者 develop 分支
    • 点击 Run workflow

4. 查看打包进度

  1. Actions 页面中,您可以看到触发的工作流运行记录
  2. 点击运行记录,查看详细的日志以了解打包进度和状态

5. 下载打包结果

  1. 打包完成后,进入对应的运行记录页面
  2. 在页面底部的 Artifacts 部分,您将看到打包的结果文件
  3. 点击下载并保存到本地,即可获得打包好的程序

注意事项

  1. 资源使用

    • Actions 的运行环境由 GitHub 免费提供,普通用户每月有一定的免费使用额度(2000 分钟)
  2. 代码修改

    • 您可以自由修改 Fork 仓库中的代
View on GitHub
GitHub Stars13.7k
CategoryDevelopment
Updated3h ago
Forks2.4k

Languages

Python

Security Score

100/100

Audited on Mar 21, 2026

No findings