TikHub Python SDK 上手指南:几行代码拉取抖音、TikTok、小红书数据
【免费下载链接】TikHub-API-Python-SDKHigh-performance asynchronous Douyin(抖音) TikTok Xiaohongshu(小红书) Kuaishou(快手) Weibo(微博) Instagram YouTube(油管) Twitter(X) Captcha Solver(验证码解决器) Temp Mail(临时邮箱) API(接口).项目地址: https://gitcode.com/gh_mirrors/do/TikHub-API-Python-SDK
想从抖音拉一条视频的数据,却不想自己拼 HTTP 请求、抠签名参数、维护 Cookie?TikHub Python SDK 就是冲着这类场景来的:把 API Key 和方法名交给它,拿回结构化的社交媒体数据。它的 pip 包名是tikhub,同步、异步两种用法都支持,Python 3.9 以上就能跑。
📦 能力速览:一个 Key 打通 16 个平台
一句话讲清楚:SDK 把 TikHub.io 的 REST 接口变成了一堆现成的方法调用,你只管传参、拿数据。同步客户端TikHub和异步客户端AsyncTikHub的接口完全一样,区别只是异步那边每个方法前面多一个await。
- 一个 API Key 覆盖抖音、TikTok、小红书、快手、微博、Instagram、YouTube、Twitter 等 16 个平台
- 同步 + 异步双客户端,方法签名一致,随时切换
- 指数退避自动重试,429 限流自动处理,失败时抛出分类清晰的异常
- 方法名由 OpenAPI 规范机械生成,接口文档和代码一一对应,查文档等于查 API
从零到第一条响应:30 秒装好 Python SDK
环境里只要有 Python 3.9+,跑一下pip install tikhub就算装完。API Key 建议写到环境变量TIKHUB_API_KEY里,也可以直接传给构造函数,注意别把它提交进代码仓库。
装完别急着写业务,先打一个健康检查接口,确认 Key 有效、网络通路没问题:
from tikhub import TikHub with TikHub(api_key="YOUR_API_KEY", timeout=60, max_retries=3) as client: # 连通性验证:返回带 code: 200 的结果就说明通路正常 health = client.health_check.check() print(health)timeout、max_retries都是可选参数,不传就走默认值;默认地址就是官方 TikHub 接口,除非你接的是私有镜像,否则不用额外配置 base_url。
用法按场景拆:Python 怎么调抖音接口
记住一条命名规则,剩下的接口自己就能找着:客户端属性是资源名(比如douyin_web),方法名就是 API 路径的最后一段,参数名和接口文档里的完全一致。下面是两个最常见的场景。
场景一:查一个账号的粉丝画像。
from tikhub import TikHub with TikHub() as client: # 传 sec_user_id,返回性别、年龄等画像字段 info = client.douyin_web.handler_user_profile_v4( sec_user_id="MS4wLjABAAAA..." ) print(info)手上只有抖音号或者 UID 的话,同一个资源里也有对应的handler_user_profile_v2/v3方法,直接换参数调就行。
场景二:批量拉某个话题下的视频。
with TikHub() as client: # 用 challenge_id 取话题下的作品,cursor 控制翻页 posts = client.douyin_web.fetch_challenge_posts( challenge_id="1608846127610893", count=20, ) print(posts)只想要单条视频时,client.douyin_web.fetch_one_video(aweme_id="7345492945006595379")就够了;列表型接口返回分页对象,可以逐页迭代,也可以一次取前 N 条。账号相关的资源还能顺手查自己的套餐和每日调用量,调试额度时很 handy。
⚡ 同步代码调异步 SDK:包装写法防"异步传染"
你的项目是同步的(脚本、Flask 路由之类),不必为了用异步客户端把整个工程改成 async。asyncio.run()是标准入口:它新建一个事件循环,把协程跑到结束,再把循环收掉,异步世界的东西就不会泄漏到你其余的代码里。
包一层,就是一行同步函数,这也是最典型的 TikHub SDK 异步请求示例:
import asyncio from tikhub import AsyncTikHub def fetch_one_video(aweme_id: str): """同步入口:用一次性事件循环驱动一次异步调用。""" async def _run(): async with AsyncTikHub() as client: return await client.douyin_web.fetch_one_video(aweme_id=aweme_id) return asyncio.run(_run())同步代码里直接fetch_one_video("..."),用起来和普通过程函数没区别。如果你的代码本来就跑在异步服务里(比如 FastAPI),直接用AsyncTikHub,每个方法前加await即可。
🚧 新手常踩的三个坑
- 调完拿到的是协程对象,没有数据。原因:用异步客户端时漏了
await。解决:每个AsyncTikHub方法调用前补上await,入口用asyncio.run(main())收尾。 - 请求全部 401、认证失败。原因:Key 无效、过期,或者压根没传进来。SDK 会抛
TikHubAuthError。解决:去控制台核对 Key,或确认TIKHUB_API_KEY环境变量已生效。 - 连接超时、抛代理相关异常。原因:本地网络必须走代理,但构造时没配
proxy,SDK 会抛TikHubProxyError。解决:初始化时把代理地址传进去,例如TikHub(proxy="http://127.0.0.1:7890")。
社区里已经有人用这套 SDK 搭了数据分析、内容管理之类的项目,你可以顺着同样的思路扩展自己的应用。更多可运行的示例都在仓库的examples/目录里,一个平台一个脚本;认证、异步、分页、错误分级这些专题,看docs/目录里的文档就够了。
【免费下载链接】TikHub-API-Python-SDKHigh-performance asynchronous Douyin(抖音) TikTok Xiaohongshu(小红书) Kuaishou(快手) Weibo(微博) Instagram YouTube(油管) Twitter(X) Captcha Solver(验证码解决器) Temp Mail(临时邮箱) API(接口).项目地址: https://gitcode.com/gh_mirrors/do/TikHub-API-Python-SDK
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考