MCPcopy Index your code
hub / github.com/davidteather/TikTok-Api

github.com/davidteather/TikTok-Api @v7.3.3 sqlite

repository ↗ · DeepWiki ↗ · release v7.3.3 ↗
167 symbols 883 edges 58 files 92 documented · 55%
README

非官方 TikTok Python API

这是一个针对 TikTok.com 的非官方 Python API 封装。使用此 API,你可以获取热门内容、抓取特定用户信息等更多数据。

DOI LinkedIn YouTube Discord

本 API 旨在从 TikTok 上“获取数据”。它不能用于代表用户在 TikTok 上“发布或上传”内容。它不支持任何需要用户身份验证的路由;如果你无法在“未登录状态”下通过浏览器完成的操作,这个库也无法完成。

赞助商

以下赞助商为展示位付费,或为我个人的联盟推广链接(可能会获得佣金)。除此之外,我与他们没有任何其他关联。TikTokAPI 包将始终保持免费、开源。若你希望赞助本项目,请查看我的 GitHub Sponsors 页面

<a href="https://tikapi.io/?ref=davidteather" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/tikapi.png" width="100" alt="TikApi">



        <b>TikAPI</b> 是一项付费的 TikTok API 服务,提供开箱即用的完整解决方案,让开发更轻松——已被 500+ 公司信任。



</a>



<a href="https://www.ensembledata.com/?utm_source=github&utm_medium=githubpage&utm_campaign=david_thea_github&utm_id=david_thea_github" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/EnsembleData.png" width="100" alt="Ensemble Data">
    <b></b>



     <b>EnsembleData</b> 是领先的 API 提供商,支持抓取 TikTok、Instagram、YouTube 等平台。

被主流的网红营销与社交媒体监测平台所信任。

</a>



<a href="https://tikhub.io/?utm_source=github&utm_medium=readme&utm_campaign=tiktok_api&ref=github_davidteather_tiktokapi" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/tikhub.png" width="100" alt="TikHub API">
    <b></b>



     <b>TikHub API</b> 提供 700+ 个端点,覆盖 14+ 个社交平台的数据抓取与分析,

包括视频、用户、评论、店铺、商品与趋势等——一站式搞定。

</a>



<a href="https://zernio.com/?utm_source=github&utm_medium=readme&utm_campaign=tiktok_api" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/zernio.png" width="100" alt="Zernio">
    <b></b>



     <b>Zernio</b> — 跳过 TikTok 的 API 审核流程。通过我们预审核通过的 TikTok 集成发布视频、定时发帖、管理评论并拉取分析数据。还支持另外 13 个平台。



</a>



<a href="https://socialapis.io/?utm_source=github&utm_medium=sponsor&utm_campaign=tiktok-api" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/socialapis.png" width="96" alt="SocialAPIs">
    <b></b>



    <b>SocialAPIs</b> — Facebook 数据 API,开箱即用。通过简洁的 JSON 端点提取 Page、群组、帖子、Reels、评论、广告资料库与 Marketplace。无需代理、无需无头浏览器。内含 MCP!



</a>



<a href="https://www.webshare.io/?referral_code=3x5812idzzzp" target="_blank">
    <img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/main/imgs/webshare.png" width="100" alt="Webshare Proxies">
    <b></b>



     <b>高性价比、可靠的代理:</b> 用快速稳定的代理为你的爬虫加速。立即试用 10 个免费数据中心代理!



</a>

目录

文档

完整文档见:文档站点

快速开始

按照以下步骤开始使用本 API。

注意:如果你想系统学习网页爬虫,请查看我开源免费的课程:Everything Web Scraping

如何支持本项目

  • 给仓库点个 Star 😎
  • 考虑在 GitHub 上赞助
  • 给我发邮件,或在 LinkedIn 上告诉我你在用这个 API 做什么——我很乐意听到你的故事
  • 为 issue 提交 PR :)

安装

注意:需要 Python 3.9 及以上版本

如果遇到问题,请先查看仓库里的已关闭 issue;如果你发现久远的 issue 与现在的问题相同,也可以新开一个 issue。该代码库会受到 TikTok 更新的影响,有时需要一些时间来适配。

pip install TikTokApi
python -m playwright install

如果你更喜欢视频讲解,关于安装与设置可以看这段 YouTube 视频(版本可能略旧,但安装步骤相同)。

如果你想快速了解如何在 Python 中监听 TikTok Live 事件,也可以看这段短视频。

Docker 安装

将本仓库克隆到本地(或只拷贝 Dockerfile,因为它会从 pip 安装 TikTokApi),然后运行以下命令:

docker pull mcr.microsoft.com/playwright:focal
docker build . -t tiktokapi:latest
docker run -v TikTokApi --rm tiktokapi:latest python3 your_script.py

注意:以上示例假设你的脚本名为 your_script.py,且位于仓库根目录。

常见问题

  • 空响应异常(EmptyResponseException)——表示 TikTok 拦截了请求并检测到你是机器人。这可能来自你的环境设置或库本身
  • 你可能需要代理才能稳定抓取 TikTok。我做了一节代理课程,讲解住宅代理与数据中心代理的区别等内容

  • “Browser has no attribute …”——请确认已执行 python3 -m playwright install。若问题仍在,请参考 playwright-python 的快速上手指南

  • “API 方法返回协程(Coroutine)”——库中很多方法是异步的,请确保在你的程序中使用 await 正确调用

快速上手示例

下面是一个示例,用于获取 TikTok 上最新的热门视频。更多示例见 examples 目录。

注意:如果你想学习通过逆向工程进行网页抓取,请查看我开源免费的课程:Web Scraping with Reverse Engineering

from TikTokApi import TikTokApi
import asyncio
import os

ms_token = os.environ.get("ms_token", None) # 从 tiktok.com 的浏览器 Cookie 中获取你的 ms_token

async def trending_videos():
    async with TikTokApi() as api:
        await api.create_sessions(ms_tokens=[ms_token], num_sessions=1, sleep_after=3, browser=os.getenv("TIKTOK_BROWSER", "chromium"))
        async for video in api.trending.videos(count=30):
            print(video)
            print(video.as_dict)

if __name__ == "__main__":
    asyncio.run(trending_videos())

在仓库根目录下,使用 -m 方式可直接运行示例脚本:

python -m examples.trending_example

你可以通过 .as_dict 访问对象创建时的完整数据字典。对于视频对象,可能类似于这个示例。由于 TikTok 会不定期调整数据结构,建议在使用时先了解字典结构。

Core symbols most depended-on inside this repo

create_sessions
called by 55
TikTokApi/tiktok.py
videos
called by 18
TikTokApi/api/user.py
info
called by 17
TikTokApi/api/user.py
make_request
called by 16
TikTokApi/tiktok.py
close_sessions
called by 14
TikTokApi/tiktok.py
stop_playwright
called by 14
TikTokApi/tiktok.py
_get_valid_session_index
called by 13
TikTokApi/tiktok.py
_is_session_valid
called by 12
TikTokApi/tiktok.py

Shape

Method 76
Function 70
Class 20
Route 1

Languages

Python100%

Modules by API surface

TikTokApi/tiktok.py29 symbols
tests/test_session_recovery.py17 symbols
TikTokApi/api/video.py10 symbols
TikTokApi/api/user.py10 symbols
examples/proxy_provider_example.py9 symbols
TikTokApi/exceptions.py9 symbols
tests/test_proxy_provider.py8 symbols
tests/test_custom_launchers.py7 symbols
TikTokApi/api/sound.py7 symbols
TikTokApi/api/playlist.py7 symbols
TikTokApi/api/hashtag.py7 symbols
TikTokApi/api/comment.py6 symbols

Dependencies from manifests, versioned

httpx0.27.0 · 1×
playwright1.36.0 · 1×
proxyproviders0.2.1 · 1×
requests2.31.0 · 1×

For agents

$ claude mcp add TikTok-Api \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact