Skip to content
Eden Engine

Douyin User Video Feed (by sec_user_id)

omnial/douyin-app-fetch-user-post-videos

Given a Douyin user's sec_user_id, returns a page of that user's posted videos: caption, publish time, duration, hashtags, engagement counts (likes, comments, shares, collects), the video's own technical shape (resolution, watermark flag), the credited sound/music, and the user's own public profile fields on each video. Paginate with the returned max_cursor. A sec_user_id that does not resolve to a real account returns an empty video list rather than an error.

activeper callv2

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

Douyin

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
agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/douyin-app-fetch-user-post-videos" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/douyin-app-fetch-user-post-videos" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/douyin-app-fetch-user-post-videos", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/douyin-app-fetch-user-post-videos", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not 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.

ChargePrice
Per call
$0.00205
Updated
Nov 6, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "sec_user_id"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "default": 20,
      "description": "Number per page"
    },
    "channel": {
      "type": "string",
      "default": "normal",
      "description": "抖音渠道版本/Douyin channel: normal(正常版-默认), lite(极速版)"
    },
    "sort_type": {
      "type": "integer",
      "default": 0,
      "description": "Sort type"
    },
    "max_cursor": {
      "type": "integer",
      "default": 0,
      "description": "Maximum cursor"
    },
    "sec_user_id": {
      "type": "string",
      "examples": [
        "MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE"
      ],
      "description": "User sec_user_id"
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "uid": {
      "type": "string",
      "description": "The queried user's own numeric id, echoed back."
    },
    "sec_uid": {
      "type": "string",
      "description": "The queried sec_user_id, echoed back."
    },
    "has_more": {
      "type": "number",
      "description": "Non-zero when a further page exists at the returned max_cursor."
    },
    "aweme_list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "desc": {
            "type": "string",
            "description": "The video's caption text."
          },
          "music": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number"
              },
              "title": {
                "type": "string"
              },
              "author": {
                "type": "string",
                "description": "The credited artist/creator name for this sound."
              },
              "id_str": {
                "type": "string"
              },
              "duration": {
                "type": "number",
                "description": "Seconds."
              },
              "play_url": {
                "type": "object",
                "properties": {
                  "url_list": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "description": "Withheld -- only whether a playable URL exists is observable."
                  }
                },
                "description": "The sound's own playable URL. Value withheld (stripped to `null`) in this tool's output.",
                "additionalProperties": true
              },
              "is_original": {
                "type": "boolean"
              }
            },
            "description": "The sound/music used in this video.",
            "additionalProperties": true
          },
          "video": {
            "type": "object",
            "properties": {
              "cover": {
                "type": "object",
                "properties": {
                  "url_list": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "description": "Withheld -- only whether a cover exists is observable."
                  }
                },
                "description": "The video's cover thumbnail. Value withheld (stripped to `null`) in this tool's output.",
                "additionalProperties": true
              },
              "ratio": {
                "type": "string",
                "description": "e.g. \"default\"."
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "duration": {
                "type": "number",
                "description": "Milliseconds. Matches the top-level `duration`."
              },
              "play_addr": {
                "type": "object",
                "properties": {
                  "url_list": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "description": "Withheld -- only whether a playable URL exists is observable."
                  }
                },
                "description": "The playable video URL. Value withheld (stripped to `null`) in this tool's output.",
                "additionalProperties": true
              },
              "has_watermark": {
                "type": "boolean"
              }
            },
            "description": "The video file's own technical shape.",
            "additionalProperties": true
          },
          "author": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "sec_uid": {
                "type": "string"
              },
              "nickname": {
                "type": "string",
                "description": "The user's own display name."
              },
              "short_id": {
                "type": "string"
              },
              "signature": {
                "type": "string",
                "description": "The user's own bio text."
              },
              "unique_id": {
                "type": "string",
                "description": "The user's own @handle. Can be an empty string when unset."
              },
              "is_verified": {
                "type": "boolean"
              },
              "avatar_thumb": {
                "type": "object",
                "properties": {
                  "url_list": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "description": "Withheld -- only whether an avatar is set is observable."
                  }
                },
                "description": "The user's own avatar. Value withheld (stripped to `null`) in this tool's output.",
                "additionalProperties": true
              },
              "custom_verify": {
                "type": "string",
                "description": "Verification label text. Empty string when not verified."
              },
              "verification_type": {
                "type": "number"
              },
              "enterprise_verify_reason": {
                "type": "string",
                "description": "Business verification label text. Empty string when not set."
              }
            },
            "description": "The queried user's own public profile fields, repeated on every video in the feed.",
            "additionalProperties": true
          },
          "region": {
            "type": "string",
            "description": "Two-letter-style region code, e.g. \"CN\"."
          },
          "aweme_id": {
            "type": "string",
            "description": "The video's own id."
          },
          "cha_list": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "cid": {
                  "type": "string",
                  "description": "The hashtag's own id."
                },
                "cha_name": {
                  "type": "string",
                  "description": "The hashtag's own text, e.g. \"le\"."
                }
              },
              "additionalProperties": true
            },
            "description": "Hashtags ('challenges') attached to this video, when any; `null` when none."
          },
          "duration": {
            "type": "number",
            "description": "Milliseconds."
          },
          "video_tag": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "level": {
                  "type": "number",
                  "description": "Tag hierarchy depth, e.g. 1-3."
                },
                "tag_id": {
                  "type": "number"
                },
                "tag_name": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "description": "Platform-assigned topic tags for this video, when any."
          },
          "item_title": {
            "type": "string",
            "description": "A separate short title field, typically an empty string."
          },
          "statistics": {
            "type": "object",
            "properties": {
              "digg_count": {
                "type": "number",
                "description": "Likes."
              },
              "play_count": {
                "type": "number",
                "description": "Typically 0."
              },
              "share_count": {
                "type": "number"
              },
              "collect_count": {
                "type": "number"
              },
              "comment_count": {
                "type": "number"
              },
              "forward_count": {
                "type": "number",
                "description": "Typically 0."
              },
              "download_count": {
                "type": "number",
                "description": "Typically 0."
              }
            },
            "description": "Engagement counters for this video.",
            "additionalProperties": true
          },
          "text_extra": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "end": {
                  "type": "number"
                },
                "type": {
                  "type": "number"
                },
                "start": {
                  "type": "number",
                  "description": "Character offset into `desc`."
                },
                "hashtag_id": {
                  "type": "string"
                },
                "hashtag_name": {
                  "type": "string",
                  "description": "The mentioned hashtag's own text."
                }
              },
              "additionalProperties": true
            },
            "description": "Hashtag mentions parsed out of `desc`'s own text, when any; `null` when none."
          },
          "create_time": {
            "type": "number",
            "description": "Unix seconds."
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per posted video on this page. Empty when the user has none."
    },
    "max_cursor": {
      "type": "number",
      "description": "Pass this back as the `max_cursor` input to fetch the next page."
    },
    "min_cursor": {
      "type": "number",
      "description": "The newest video's own cursor position."
    },
    "status_msg": {
      "type": "string",
      "description": "Empty string on a normal call."
    },
    "status_code": {
      "type": "number",
      "description": "0 on a normal call."
    }
  },
  "description": "A page of a Douyin user's posted videos. `aweme_list` is an empty array (with the other top-level fields still populated) when the given `sec_user_id` does not resolve to a real account.",
  "additionalProperties": true
}