
bbc-skill
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.
- Installs
- 266
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/agents365-ai/365-skills --skill bbc-skill- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads bbc-skill automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
bbc-skill — Bilibili Comment Collector
Download all comments (top-level + nested + pinned) for a Bilibili video and produce data that Claude Code can analyze downstream.
Update check
Throttle to one check per 24 hours per installation; never mutate the skill directory without explicit user consent.
-
If
<this-skill-dir>/.last_updateexists 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.versionfrom 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_updateeither way so the prompt doesn't repeat for 24 hours. -
If upstream is the same or older, refresh
.last_updatesilently 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.
When to use
Trigger this skill when the user:
- Asks to get / fetch / download / export / collect / analyze comments of a specific Bilibili video (BV 号, URL, or video page).
- Asks to analyze audience feedback / sentiment / keywords / top comments / IP distribution of their own Bilibili videos.
- Provides a Bilibili URL like
https://www.bilibili.com/video/BVxxxxxxxxxx/. - Mentions their UP主 UID and wants batch analysis across their videos.
Do not use for: posting / deleting comments, downloading videos, barrage (弹幕), live stream data, or private messages.
Prerequisites
-
Python 3.9+ (stdlib only — zero pip install).
-
Bilibili cookie. The user must be logged in to bilibili.com. The recommended path:
- Install the Chrome/Edge extension Get cookies.txt LOCALLY (open-source, fully local, no upload).
- On a logged-in bilibili.com tab, click Export → save
www.bilibili.com_cookies.txt. - Pass via
--cookie-fileor set$BBC_COOKIE_FILE.
Alternatives:
$BBC_SESSDATAenv var with just the SESSDATA value.- Browser auto-detection (Firefox / Chrome / Edge on macOS) via
--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.
Quick start
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
Commands
| 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.
Agent contract
Stdout vs stderr
- stdout: stable JSON envelope
{"ok":true,"data":...}or{"ok":false,"error":...}. JSON is the default when stdout is not a TTY. Pass--format tablefor human-readable tables. - stderr: human log lines + NDJSON progress events for long tasks.
Exit codes
| 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) |
Error envelope
{
"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.
Dry-run
Every fetch command supports --dry-run to preview the planned request
without making network calls:
python3 -m bbc fetch BV1NjA7zjEAU --dry-run
Idempotency
Re-running the same fetch command on the same output directory resumes from
.bbc-state.json (skips already-fetched pages). Pass --force to refetch.
Analysis workflow (for the agent)
After fetch completes:
- Read
summary.jsonfirst (< 10 KB) to establish global context: video metadata, total counts, time distribution, top-N. - For thematic analysis,
Greporhead/tailoncomments.jsonl— each line is a flat JSON object, never load the whole file unless small. - Typical analyses:
- Sentiment distribution → scan
messageby batch - Top fans → group by
mid, count entries, aggregatelike - UP 主互动 → filter
is_up_reply=true - Audience geography →
ip_locationhistogram - Feedback timeline → bucket
ctime_isoby day/week
- Sentiment distribution → scan
The summary.json schema is documented in references/agent-contract.md.
Run the skill against any video to produce a real sample locally.
Safety tier
All commands are read-only (tier: open). No mutation, no deletion, no
message sending. Dry-run available for all fetch commands.
References
references/api-endpoints.md— Bilibili API fields usedreferences/cookie-extraction.md— per-browser cookie decryptionreferences/agent-contract.md— full envelope + schema contract
Limitations
all_countreturned by the API includes pinned comments. Completeness check:top_level + nested + pinned == declared_all_count.- Very old comments (>2 years) may return thin data if the user was deleted.
- Anti-bot: aggressive
--maxvalues or repeated runs may trigger HTTP 412. The client sleeps 1s between requests and backs off on 412.
FAQ
What does the bbc-skill skill do?
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.
How do I install bbc-skill?
Run npx skills add https://github.com/agents365-ai/365-skills --skill bbc-skill in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bbc-skill/ (personal) or .claude/skills/bbc-skill/ (project).
Which AI agents can use bbc-skill?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is bbc-skill safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains bbc-skill?
It is published by agents365-ai in agents365-ai/365-skills. It has 266 recorded installs.
More from agents365-ai/365-skills
drawio-skill
agents365-ai/365-skills
Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.
excalidraw
agents365-ai/365-skills
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.
creating-mermaid-diagrams
agents365-ai/365-skills
Generate Mermaid diagrams (.mmd) and export to PNG/SVG/PDF using mmdc CLI or Kroki API. USE THIS SKILL when user mentions diagram, flowchart, sequence diagram, class diagram, ER diagram, state machine, architecture, visualize, git graph, 画图, 架构图, 流程图, 时序图. PROACTIVELY USE when explaining ANY system with 3+ components, API flows, authentication sequences, class hierarchies, database schemas, or state machines. Supports 11+ diagram types with fully automatic layout.
plantuml-skill
agents365-ai/365-skills
Use when user requests diagrams, flowcharts, sequence diagrams, class diagrams, component diagrams, ER diagrams, architecture charts, or visualizations — including generating a diagram from existing source code, or rendering/extracting PlantUML embedded in a Markdown file to images (e.g. preparing docs for Confluence/Notion). Also use proactively when explaining systems with 3+ components, APIs, data flows, or class hierarchies. Generates .puml files and exports to PNG/SVG via Kroki API (no local install required).
tldraw-skill
agents365-ai/365-skills
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 .tldr JSON files and exports to PNG/SVG locally using @kitschpatrol/tldraw-cli.
paper-fetch
agents365-ai/365-skills
Use whenever the user wants to obtain, download, or fetch a paper's PDF — given a DOI, an arXiv id, a paper title, a citation, or a list of DOIs. Trigger on phrases like "download this paper", "find the PDF for [DOI]", "grab me the [Nature/bioRxiv/arXiv] paper on X", "get the open-access version", "I need this article", or any bulk/batch paper download request, even when the user doesn't explicitly say "PDF" or "DOI". Resolves via Unpaywall → Semantic Scholar → arXiv → PubMed Central → bioRxiv/medRxiv → publisher direct (institutional opt-in) → Sci-Hub mirrors as last-resort fallback.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image