Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Get Douyin video search V2

TikHub tool tikhub-api-douyin-search-fetch-video-search-v2 on looot: input fields, $0.01 per call, output shape, and code to run it with curl, JavaScript or Python.

Searches Douyin App videos by keyword, with more detailed fields than V1 such as author profile, multi-bitrate play sources and hashtags. Send keyword, with optional sort_type, publish_time, filter_duration and content_type; for paging send cursor (0 on the first page), search_id and backtrace from the previous response.

  • Tool id: tikhub-api-douyin-search-fetch-video-search-v2
  • Provider: TikHub
  • Job: Fetch video search v2 api douyin search (api.douyin.search.fetch-video-search-v2)
  • Price: $0.01 per call. A call that fails at the provider costs $0.

Inputs

Name Type Required Description
backtrace string no Backtrace for pagination, obtained from the last response
content_type string no Content type: 0=All, 1=Video, 2=Picture, 3=Article
cursor integer no Offset cursor for pagination, obtained from the last response
filter_duration string no Video duration filter: 0=Unlimited, 0-1=Within 1 minute, 1-5=1 to 5 minutes, 5-10000=More than 5 minutes
keyword string no Keyword
publish_time string no Publish time filter: 0=Unlimited, 1=Last day, 7=Last week, 180=Last half year
search_id string no Search ID for pagination, obtained from the last response
sort_type string no Sort type: 0=Comprehensive, 1=Most Likes, 2=Latest

Output

Shape of the run’s result, the expected shape, not yet checked against real answers:

{ code, docs, time, message, support, time_zone, message_zh, request_id, time_stamp, cache_message }

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"tikhub-api-douyin-search-fetch-video-search-v2","input":{},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "tikhub-api-douyin-search-fetch-video-search-v2",
    input: {},
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "tikhub-api-douyin-search-fetch-video-search-v2",
        "input": {},
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To let looot pick among every provider of this job instead, send job:api.douyin.search.fetch-video-search-v2 as endpointId; see the job page.

Was this page helpful?