TikTok API:搜索视频、读详情和评论

要研究 TikTok 上某个话题的内容,分三步:先按关键词搜索作品,拿到作品 ID(video_id,TikTok 里也叫 aweme_id);再用这个 ID 读单个视频的详情;最后读它的评论。下面每一步都是真实的接口和参数。

新账号有 50 次试用调用,之后按成功调用从预充值余额扣费,详见 定价。

三步查 TikTok 的视频和评论

示例里的搜索词 nike 换成你要查的关键词。第二、三步示例中的 video_id 是占位符,要换成第一步结果里的作品 ID,也可以取自作品链接 tiktok.com/@用户名/video/<ID> 里的数字。需要 API Key,新账号有 50 次试用调用。

  1. 按关键词搜索作品

    sort 选 general 按相关度(默认)或 most_liked 按点赞数;publish_time 限定发布时间(如 week 一周内);region 是两位大写国家代码,默认 US。翻页时把上一页返回的 cursor 传回来,相邻页可能有少量重复,请按 id 去重;没有结果时返回空结果。

    TikTok 视频搜索GET /v1/raw/tiktok/search

    cURL
    curl 'https://api.qovia.ai/v1/raw/tiktok/search?keyword=nike&region=US' \
      -H "Authorization: Bearer $QOVIA_KEY"
    Python
    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 部分。示例取自接口目录,不是实时数据;列表只保留前两条,图片链接省略:

    200 OK
    {
      "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"
        }
      }
    }
  2. 读单个视频的详情

    video_id 是 15 到 20 位的数字,和搜索结果是同一个 ID(记录里的 extra.source_id)。示例里的 ID 只是占位符,请换成第一步返回的作品 ID。返回文案、作者、播放、点赞、评论、分享、收藏数和话题。作品不存在或已删除时返回 404。

    TikTok 视频详情GET /v1/raw/tiktok/video

    cURL
    curl 'https://api.qovia.ai/v1/raw/tiktok/video?video_id=7688834577418194206' \
      -H "Authorization: Bearer $QOVIA_KEY"
  3. 翻页读评论

    返回作品的一级评论,count 每页最多 50 条。第一页 cursor 为 0,之后把上一页返回的 cursor 传回来,has_more 为 false 时停止。示例里的 video_id 是占位符。评论下的回复用 raw.tiktok.comment_replies 读。没有评论时返回空结果。

    TikTok 视频评论GET /v1/raw/tiktok/comments

    cURL
    curl '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 参考,套餐见定价页。

你的 Agent 能看到什么,取决于你给它什么数据

把抖音、小红书、公众号和电商评价交给它:结构化,按次计费,失败不扣费。