Skip to content
Eden Engine

Bilibili App Home Feed

omnial/bilibili-app-fetch-home-feed

Fetches one page of Bilibili's personalized app home feed. Each call returns a list of recommended video cards -- video id, title, category, uploader (id and public display name), formatted view/danmaku/duration labels, and the playback ids (cid/aid) needed to play or look up the video elsewhere. Page through more of the feed with `idx`/`pull`/`flush`.

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

Bilibili

Data from Bilibili.

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/bilibili-app-fetch-home-feed" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/bilibili-app-fetch-home-feed" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/bilibili-app-fetch-home-feed", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/bilibili-app-fetch-home-feed", 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
Oct 27, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "idx"
  ],
  "properties": {
    "idx": {
      "type": "integer",
      "description": "Page index"
    },
    "pull": {
      "type": "boolean",
      "default": true,
      "description": "Pull to refresh"
    },
    "flush": {
      "type": "integer",
      "default": 0,
      "description": "刷新标记/Flush flag (0=普通加载, 1=刷新)"
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "idx": {
                "type": [
                  "number"
                ],
                "description": "An ordering value. Usually a large timestamp-like number, sometimes the sentinel `-1`, and sometimes absent entirely -- not reliable as a stable ordering or pagination key across pages."
              },
              "args": {
                "type": "object",
                "properties": {
                  "aid": {
                    "type": "number",
                    "description": "The video's numeric id; matches param/player_args.aid."
                  },
                  "tid": {
                    "type": "number",
                    "description": "Category id."
                  },
                  "tname": {
                    "type": "string",
                    "description": "Category label, e.g. a genre or channel tag (not a person's name)."
                  },
                  "up_id": {
                    "type": "number",
                    "description": "The uploader's numeric Bilibili member id."
                  },
                  "up_name": {
                    "type": "string",
                    "description": "The uploader's public display name -- the creator who published this video under this exact public channel identity."
                  }
                },
                "description": "The video's uploader and category.",
                "additionalProperties": true
              },
              "goto": {
                "type": "string",
                "description": "Same value as card_goto on every card observed."
              },
              "cover": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The video's thumbnail image URL. Value withheld (stripped to `null`) in this tool's output -- only whether a thumbnail exists is observable, not the image itself."
              },
              "param": {
                "type": "string",
                "description": "The video's numeric id as a string; matches args.aid/player_args.aid."
              },
              "title": {
                "type": "string"
              },
              "can_play": {
                "type": "number",
                "description": "1 (playable) on every real card observed."
              },
              "card_goto": {
                "type": "string",
                "description": "Content type discriminator, e.g. \"av\" for a video."
              },
              "card_type": {
                "type": "string",
                "description": "UI card layout variant, e.g. \"small_cover_v2\" on every card observed."
              },
              "player_args": {
                "type": "object",
                "properties": {
                  "aid": {
                    "type": "number"
                  },
                  "cid": {
                    "type": "number",
                    "description": "The default page/part's content id, needed to play or look up the video via other endpoints."
                  },
                  "type": {
                    "type": "string",
                    "description": "e.g. \"av\" for a video."
                  },
                  "duration": {
                    "type": "number",
                    "description": "Seconds."
                  }
                },
                "additionalProperties": true
              },
              "official_icon": {
                "type": "number",
                "description": "Official/verified-channel badge code. Present on only some cards; absent on the others."
              },
              "cover_right_text": {
                "type": "string",
                "description": "Formatted duration label, e.g. \"12:37\"."
              },
              "cover_left_icon_1": {
                "type": "number"
              },
              "cover_left_icon_2": {
                "type": "number"
              },
              "cover_left_text_1": {
                "type": "string",
                "description": "Formatted view-count label, e.g. \"75万\"."
              },
              "cover_left_text_2": {
                "type": "string",
                "description": "Formatted danmaku (overlay-comment) count label, e.g. \"1822\"."
              },
              "cover_right_content_description": {
                "type": "string",
                "description": "Accessibility text for the duration label."
              },
              "cover_left_1_content_description": {
                "type": "string",
                "description": "Accessibility text for the view-count label."
              },
              "cover_left_2_content_description": {
                "type": "string",
                "description": "Accessibility text for the danmaku-count label."
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per feed card. Typically video (\"av\") cards -- this endpoint's other possible card types (e.g. ads, banners) may have a different shape."
        }
      },
      "description": "The feed payload.",
      "additionalProperties": true
    }
  },
  "description": "The home feed page, typically a populated feed with real video cards.",
  "additionalProperties": true
}