en un clic
bilibili-search
// Search for videos on Bilibili using keyword queries generated from user interests.
// Search for videos on Bilibili using keyword queries generated from user interests.
Use OpenBiliClaw's adapter CLI to sync account signals, read profile summaries, fetch recommendations, submit feedback, and inspect runtime status.
Browse Bilibili pages using agent-browser for visual exploration and DOM interaction.
Analyze video comment sections to discover recommended content and gauge content quality.
| name | bilibili_search |
| description | Search for videos on Bilibili using keyword queries generated from user interests. |
| user-invocable | true |
| version | 0.1.0 |
| author | OpenBiliClaw |
| tags | ["bilibili","search","discovery"] |
Search for videos on Bilibili based on the user's interests and soul profile. Supports both LLM-driven automatic query generation (for discovery cycles) and direct keyword search (for explicit user requests).
keywords are provided, the skill uses an LLM to generate multiple search queries from the user's soul profile (top interests, cognitive style, deep needs). If keywords are provided, they are used directly.412 Precondition Failed) degrade gracefully and don't interrupt the overall flow. client.search retries v_voucher challenges 3× internally; three consecutive empty results trip "storm mode" (v0.3.61+) and the remaining queries are skipped (filled with empty results) rather than burned against an IP that's being challenged — the next refresh tick (~60s) gets a fresh shot. An active search cooldown short-circuits the remaining plan the same way.relevance_score (0.0–1.0). Items below the threshold are discarded.DiscoveredContent items.| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | string | No | "" | Search query string. If empty, the skill auto-generates queries from the soul profile. |
page | integer | No | 1 | Page number for paginated results. |
limit | integer | No | 20 | Maximum number of results to return. |
order | string | No | "totalrank" | Sort order. One of: "totalrank" (relevance), "pubdate" (newest), "click" (most viewed), "dm" (most commented). |
{
"type": "object",
"properties": {
"keywords": {
"type": "string",
"description": "Search query string. Auto-generated from profile if empty."
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"default": 20
},
"order": {
"type": "string",
"enum": ["totalrank", "pubdate", "click", "dm"],
"default": "totalrank"
}
}
}
Each result is a DiscoveredContent object with the following fields:
| Field | Type | Description |
|---|---|---|
bvid | string | Bilibili video BV ID |
title | string | Video title |
up_name | string | Creator's display name |
up_mid | integer | Creator's user ID |
cover_url | string | Video cover image URL |
duration | integer | Video length in seconds |
view_count | integer | Play count |
like_count | integer | Like count |
description | string | Video description |
tags | string[] | Video tags |
relevance_score | number | LLM-evaluated relevance (0.0–1.0) |
relevance_reason | string | Human-readable reason for the score |
source_strategy | string | Always "search" for this skill |
topic_key | string | Semantic topic classification |
style_key | string | Content style classification |
412 Precondition Failed and the skill will return empty results.https://api.bilibili.com; no additional API keys are needed beyond the B站 Cookie.412 Precondition Failed and degrade to empty results.When keywords is empty or not provided:
When Bilibili returns 412 Precondition Failed:
v_voucher challenge / transient failure: client.search retries the WBI request up to 3× internally; an empty list at the strategy layer means the keyword exhausted its retries (the IP is being challenged), which feeds the storm-mode counter abovepage: Passed directly to API (no clamping — caller should validate)limit: Passed directly to API (no clamping — caller should validate)order: Passed directly to API; defaults to "totalrank" if not providedv_voucher retries, and storm-mode/cooldown short-circuit described above (no Retry-After header parsing)