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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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".
日本語の概要は準備中です。原文の説明を表示しています。