TikTok API:搜索视频、读详情和评论
要研究 TikTok 上某个话题的内容,分三步:先按关键词搜索作品,拿到作品 ID(video_id,TikTok 里也叫 aweme_id);再用这个 ID 读单个视频的详情;最后读它的评论。下面每一步都是真实的接口和参数。
新账号有 50 次试用调用,之后按成功调用从预充值余额扣费,详见 定价。
三步查 TikTok 的视频和评论
示例里的搜索词 nike 换成你要查的关键词。第二、三步示例中的 video_id 是占位符,要换成第一步结果里的作品 ID,也可以取自作品链接 tiktok.com/@用户名/video/<ID> 里的数字。需要 API Key,新账号有 50 次试用调用。
按关键词搜索作品
sort 选 general 按相关度(默认)或 most_liked 按点赞数;publish_time 限定发布时间(如 week 一周内);region 是两位大写国家代码,默认 US。翻页时把上一页返回的 cursor 传回来,相邻页可能有少量重复,请按 id 去重;没有结果时返回空结果。
TikTok 视频搜索
GET /v1/raw/tiktok/searchcurl 'https://api.qovia.ai/v1/raw/tiktok/search?keyword=nike®ion=US' \ -H "Authorization: Bearer $QOVIA_KEY"
import os import requests resp = requests.get( "https://api.qovia.ai/v1/raw/tiktok/search", params={"keyword": "nike", "region": "US"}, headers={"Authorization": f"Bearer {os.environ['QOVIA_KEY']}"}, timeout=30, ) resp.raise_for_status() body = resp.json() print(body["meta"]["charged_usd"], body["data"])
返回的 data 部分。示例取自接口目录,不是实时数据;列表只保留前两条,图片链接省略:
{ "data": { "items": [ { "id": "soc_tik_9e48546cd716", "src": "social", "platform": "tiktok", "lang": "en", "text": "Nike mind 001 🔥🔥🔥 #fyp #sneakers #streetwear #streetwear #nike ", "author": { "uid_hash": "e3ccd58d819c", "followers": 2950, "nickname": "Q***y", "uid": "7000000000000000004", "sec_uid": "MS4wLjABAAAAexampleTikTokUserSecUid0000000000000004", "unique_id": "example.user.4" }, "metrics": { "likes": 19, "comments": 0, "shares": 0, "saves": 0, "plays": 4281 }, "extra": { "source_id": "7699038487848193282", "published_at": "2026-10-21T08:41:33+00:00", "video_dur_s": 11, "topic": "#fyp", "topics": [ "fyp", "sneakers", "streetwear", "nike" ], "topic_ids": { "fyp": "229207", "sneakers": "64092", "streetwear": "315492", "nike": "9789" }, "content_type": "video", "url": "https://www.tiktok.com/@example.user.4/video/7699038487848193282" }, "prov": { "hash": "0xe14a962a80ca2a5d", "ts": "2026-10-21T23:15:00+08:00", "source": "live" } }, { "id": "soc_tik_56aaf63cda54", "src": "social", "platform": "tiktok", "lang": "pt", "text": "Tênis Nike 😍 #airmax95 #nikesneakers #nikeairmax #sporlife #nike ", "author": { "uid_hash": "b04c374c292e", "followers": 8456, "nickname": "T***🥇", "uid": "7000000000000000005", "sec_uid": "MS4wLjABAAAAexampleTikTokUserSecUid0000000000000005", "unique_id": "example.user.5" }, "metrics": { "likes": 1071, "comments": 6, "shares": 69, "saves": 92, "plays": 9423 }, "extra": { "source_id": "7698432825535663381", "published_at": "2026-10-19T17:31:23+00:00", "video_dur_s": 15, "topic": "#airmax95", "topics": [ "airmax95", "nikesneakers", "nikeairmax", "sporlife", "nike" ], "topic_ids": { "airmax95": "3514896", "nikesneakers": "3746670", "nikeairmax": "702042", "sporlife": "43175617", "nike": "9789" }, "content_type": "video", "url": "https://www.tiktok.com/@example.user.5/video/7698432825535663381" }, "prov": { "hash": "0x594f2ae067a753d1", "ts": "2026-10-21T23:15:00+08:00", "source": "live" } } ], "cursor": 20, "has_more": true, "prov": { "hash": "0xa1565bda8147e52a", "ts": "2026-10-21T23:15:00+08:00", "source": "live" } } }读单个视频的详情
video_id 是 15 到 20 位的数字,和搜索结果是同一个 ID(记录里的 extra.source_id)。示例里的 ID 只是占位符,请换成第一步返回的作品 ID。返回文案、作者、播放、点赞、评论、分享、收藏数和话题。作品不存在或已删除时返回 404。
TikTok 视频详情
GET /v1/raw/tiktok/videocurl 'https://api.qovia.ai/v1/raw/tiktok/video?video_id=7688834577418194206' \ -H "Authorization: Bearer $QOVIA_KEY"
翻页读评论
返回作品的一级评论,count 每页最多 50 条。第一页 cursor 为 0,之后把上一页返回的 cursor 传回来,has_more 为 false 时停止。示例里的 video_id 是占位符。评论下的回复用 raw.tiktok.comment_replies 读。没有评论时返回空结果。
TikTok 视频评论
GET /v1/raw/tiktok/commentscurl 'https://api.qovia.ai/v1/raw/tiktok/comments?video_id=7688834577418194206' \ -H "Authorization: Bearer $QOVIA_KEY"
更多相关接口
常见问题
video_id 从哪里来?
来自搜索结果(raw.tiktok.search)里记录的作品 ID,也可以取自作品链接 tiktok.com/@用户名/video/<ID> 里的数字。搜索、详情和评论接口用的是同一个 ID。
怎么读评论下的回复?
评论接口只返回一级评论。把评论的 cid 作为 comment_id,连同 video_id 传给 raw.tiktok.comment_replies,同样用 cursor 翻页。
能查某个创作者的视频吗?
可以。raw.tiktok.user_search 按关键词找创作者,raw.tiktok.creator 读资料,raw.tiktok.creator_videos 列出作品,记录和视频详情是同一种,ID 也相同。它们列在本页的更多接口里。
怎么计费?
新账号有 50 次试用调用,之后从预充值余额按次扣费,只对返回了数据的成功调用收费;空结果和报错不扣费,每次返回的 meta.charged_usd 写着这次扣了多少。各接口单价见 API 参考,套餐见定价页。