Use when designing, reviewing, or refactoring a CLI that must serve AI agents alongside humans, or when converting an API or SDK into an agent-usable CLI interface.
The English summary is being prepared. Showing the original description.
Fetch Bilibili (哔哩哔哩) video comments for UP主 self-analysis. Use when the user asks to collect, download, export, or analyze comments on a Bilibili video (BV号 / URL / UID). Produces JSONL + summary.json suitable for further Claude Code analysis (sentiment, keywords, audience trends). Read-only; does not post/edit/delete.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Download all comments (top-level + nested + pinned) for a Bilibili video and produce data that Claude Code can analyze downstream.
Throttle to one check per 24 hours per installation; never mutate the skill directory without explicit user consent.
If <this-skill-dir>/.last_update exists and is less than 24 hours old, skip this step entirely.
Otherwise, fetch the latest tag from upstream:
git -C <this-skill-dir> ls-remote --tags origin 'v*' 2>/dev/null \
| awk '{print $2}' | sed 's|refs/tags/||' \
| sort -V | tail -1
Compare with this skill's metadata.version from the frontmatter. If the upstream tag is strictly newer (semver), tell the user one line and ask:
"A newer version of this skill is available: vX.Y.Z → vA.B.C. Want me to
git pull?"
If they say yes, run git -C <this-skill-dir> pull --ff-only. Refresh .last_update either way so the prompt doesn't repeat for 24 hours.
If upstream is the same or older, refresh .last_update silently and continue.
On any failure (offline, not a git checkout — e.g. ClawHub-installed copy, read-only path, no permission), swallow the error silently and continue with the user's task. Do not mention the failure.
Trigger this skill when the user:
https://www.bilibili.com/video/BVxxxxxxxxxx/.Do not use for: posting / deleting comments, downloading videos, barrage (弹幕), live stream data, or private messages.
Python 3.9+ (stdlib only — zero pip install).
Bilibili cookie. The user must be logged in to bilibili.com. The recommended path:
www.bilibili.com_cookies.txt.--cookie-file or set $BBC_COOKIE_FILE.Alternatives:
$BBC_SESSDATA env var with just the SESSDATA value.--browser auto. Works best for Firefox; Chrome/Edge needs a logged-in
profile with cookies flushed to disk.Auth delegation (Principle 7): the skill never runs OAuth flows. The human is expected to log in via browser; the agent only consumes the resulting cookie.
Before any fetch, verify the cookie works:
python3 -m bbc cookie-check
Success envelope (stdout):
{"ok":true,"data":{"mid":441831884,"uname":"探索未至之境","vip":false}}
Fetch all comments for a single video:
python3 -m bbc fetch BV1NjA7zjEAU
Or pass a URL:
python3 -m bbc fetch "https://www.bilibili.com/video/BV1NjA7zjEAU/"
Output (default ./bilibili-comments/<BV>/):
comments.jsonl — one comment per line, flattenedsummary.json — video metadata + statistics + top-Nraw/ — archived API responses.bbc-state.json — resume state| Command | Purpose |
|---|---|
bbc fetch <BV|URL> | Fetch all comments for one video |
bbc fetch-user <UID> | Batch fetch all videos of a UP主 |
bbc summarize <dir> | Rebuild summary.json from existing comments.jsonl |
bbc cookie-check | Validate cookie; print logged-in user |
bbc schema [cmd] | Return JSON schema for commands (for agent discovery) |
Call bbc <cmd> --help or bbc schema <cmd> for full parameter details — do
not guess flag names.
{"ok":true,"data":...} or
{"ok":false,"error":...}. JSON is the default when stdout is not a TTY.
Pass --format table for human-readable tables.| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Runtime / API error |
| 2 | Auth error (cookie invalid / missing) |
| 3 | Validation error (bad BV number, bad flag) |
| 4 | Network error (timeout / retries exhausted) |
{
"ok": false,
"error": {
"code": "auth_expired",
"message": "SESSDATA 已过期,请重新登录 B 站",
"retryable": true,
"retry_after_auth": true
}
}
Error codes: validation_error, auth_required, auth_expired, not_found,
rate_limited, api_error, network_error. See bbc schema for the full
contract.
Every fetch command supports --dry-run to preview the planned request
without making network calls:
python3 -m bbc fetch BV1NjA7zjEAU --dry-run
Re-running the same fetch command on the same output directory resumes from
.bbc-state.json (skips already-fetched pages). Pass --force to refetch.
After fetch completes:
summary.json first (< 10 KB) to establish global context: video
metadata, total counts, time distribution, top-N.Grep or head/tail on comments.jsonl —
each line is a flat JSON object, never load the whole file unless small.message by batchmid, count entries, aggregate likeis_up_reply=trueip_location histogramctime_iso by day/weekThe summary.json schema is documented in references/agent-contract.md.
Run the skill against any video to produce a real sample locally.
All commands are read-only (tier: open). No mutation, no deletion, no
message sending. Dry-run available for all fetch commands.
references/api-endpoints.md — Bilibili API fields usedreferences/cookie-extraction.md — per-browser cookie decryptionreferences/agent-contract.md — full envelope + schema contractall_count returned by the API includes pinned comments. Completeness
check: top_level + nested + pinned == declared_all_count.--max values or repeated runs may trigger HTTP 412.
The client sleeps 1s between requests and backs off on 412.No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when designing, reviewing, or refactoring a CLI that must serve AI agents alongside humans, or when converting an API or SDK into an agent-usable CLI interface.
The English summary is being prepared. Showing the original description.
Search free commercial-use creative assets across multiple online sources — photos, illustrations, icons, video footage, music, sound effects, and fonts. Use when the user needs to find assets for videos, PPTs, articles, or any content creation. Trigger on phrases like "find me a photo of", "search for icons", "I need background music", "find video footage", "search fonts", "找一张图片", "搜素材", "帮我找图标/视频/音乐/字体". Covers Pexels, Unsplash, Pixabay, Iconify, Freesound, Google Fonts and more — with API-backed search where available.
The English summary is being prepared. Showing the original description.
Query the Semantic Scholar academic corpus through AI2's Asta MCP server: keyword or title search with venue and date filters, who-cited-a-paper traversal, author profiles and publications, DOI/arXiv/PMID lookup, and ~500-word full-text snippets for evidence, with citation counts and h-index. Use when the user asks for papers on a topic, who cited a paper, an author's work, recent literature since a date, or a venue-scoped paper list. Requires the Asta MCP server.
The English summary is being prepared. Showing the original description.
Extract and organize frames from a Bilibili video (bangumi episode, UP upload, or a local file) into scenery shots and per-character image groups, using anime-specific person detection + CCIP character-identity embeddings. Two modes — cluster everyone, or pull out one (or several) named characters via reference folders. Use when the user wants to collect, extract, or organize anime frames/screenshots by character or by scenery from a Bilibili video. Read-only download for personal viewing/analysis; uploads nothing.
The English summary is being prepared. Showing the original description.
Use when user requests diagrams, flowcharts, architecture charts, or visualizations. Also use proactively when explaining systems with 3+ components, complex data flows, or relationships that benefit from visual representation. Generates .excalidraw files and exports to PNG/SVG via Kroki API or locally using excalidraw-brute-export-cli.
The English summary is being prepared. Showing the original description.
Use whenever the user wants to interact with Figshare - searching public datasets/articles, downloading Figshare files, listing their own articles/collections/projects, creating or updating articles, or uploading files (including large multi-part uploads) via the Figshare v2 REST API. Trigger on mentions of "figshare", figshare DOIs (10.6084/m9.figshare.*), figshare.com URLs, or phrases like "upload my dataset to figshare", "publish to figshare", "get figshare article".
The English summary is being prepared. Showing the original description.