Douyin Live Room Lookup (by Room/Webcast ID)
omnial/douyin-web-fetch-user-live-videos
Given a Douyin live room's webcast_id, returns the room's status, title, viewer count, and like count, plus the room owner's Douyin profile: nickname, account ID, secure UID, and whether the calling account already follows them (avatar image URLs are withheld). Confirmed against two real rooms, including one whose owner account nickname shows it has since been deactivated. A room that is no longer live still resolves, with status 4 and zero viewer and like counts.
Price
Up to $0.00205 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Data from Douyin.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/douyin-web-fetch-user-live-videos" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/douyin-web-fetch-user-live-videos" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/douyin-web-fetch-user-live-videos", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/douyin-web-fetch-user-live-videos", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00205 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"webcast_id"
],
"properties": {
"webcast_id": {
"type": "string",
"examples": [
"376034101029"
],
"description": "Room webcast_id"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The room's title."
},
"id_str": {
"type": "string",
"description": "The room's own id, matching `enter_room_id`."
},
"status": {
"type": "number",
"description": "Numeric room status code; `4` observed in testing, including the deactivated-owner room -- the vendor does not document this enum, so a caller should not assume `4` universally means 'ended'."
},
"like_count": {
"type": "number",
"description": "`0` observed in testing."
},
"status_str": {
"type": "string",
"description": "String copy of `status`."
},
"mosaic_status": {
"type": "number",
"description": "Whether content-moderation blur/mosaic is applied to the stream. `0` (no mosaic) observed in testing."
},
"user_count_str": {
"type": "string",
"description": "Current viewer count, as a string. `\"0\"` observed in testing."
},
"mosaic_status_str": {
"type": "string",
"description": "String copy of `mosaic_status`."
},
"owner_user_id_str": {
"type": "string",
"description": "Empty string in testing -- the room owner's populated account id is reliably available instead at `data.user.id_str`."
},
"has_commerce_goods": {
"type": "boolean",
"description": "Whether the room has shoppable goods attached. `false` in testing."
}
},
"additionalProperties": true
},
"description": "One entry on both real calls observed, describing the live room itself."
},
"user": {
"type": "object",
"properties": {
"id_str": {
"type": "string",
"description": "The owner account's numeric Douyin user id."
},
"sec_uid": {
"type": "string",
"description": "The owner account's opaque, stable secure user id."
},
"nickname": {
"type": "string",
"description": "The owner account's public display name. Observed as a real handle for one account and the literal string '账号已注销' (account deactivated/canceled) for another -- a real, distinct account state, not a placeholder or error value."
},
"follow_info": {
"type": "object",
"properties": {
"follow_status": {
"type": "number",
"description": "`0` (not following) observed in testing."
},
"follow_status_str": {
"type": "string",
"description": "String copy of `follow_status`."
}
},
"additionalProperties": true
},
"avatar_thumb": {
"type": "object",
"properties": {
"url_list": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
},
"description": "The owner's avatar image at multiple mirror URLs in the raw response -- withheld here (returned as `null` entries) regardless of what the account has set; only that an avatar exists is observable, not the image itself."
}
},
"additionalProperties": true
},
"foreign_user": {
"type": "number",
"description": "`0` observed in testing."
}
},
"description": "The room owner's Douyin account.",
"additionalProperties": true
},
"room_status": {
"type": "number",
"description": "Numeric room status code; `2` observed in testing."
},
"enter_room_id": {
"type": "string",
"description": "The resolved room id -- matches `data.data[0].id_str`."
}
},
"additionalProperties": true
},
"status_code": {
"type": "number",
"description": "The call's own business-level status code. `0` on both real calls observed."
}
},
"description": "The room record.",
"additionalProperties": true
}