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.