Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
agents365-ai avatar

Bbc Skill

  • 1 installs
  • 15 repo stars
  • Updated May 5, 2026
  • agents365-ai/bbc-skill

bbc-skill is a Claude Code skill that downloads all comments on a Bilibili video and outputs JSONL plus a summary for audience and sentiment analysis.

About

A Claude Code skill that collects comments from a Bilibili video and outputs JSONL plus a summary file for further analysis. It is aimed at UP-hosts analyzing their own audience feedback, sentiment, keywords, and IP distribution. A creator uses it to export and study reactions on their Bilibili videos. It is read-only and requires a logged-in Bilibili cookie.

  • Downloads all comments (top-level, nested, and pinned) for a Bilibili video
  • Produces JSONL plus summary.json for downstream sentiment and keyword analysis
  • Read-only, stdlib-only Python; never posts, edits, or deletes

Bbc Skill by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,803 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

bbc-skill capabilities & compatibility

Free; requires a logged-in Bilibili account cookie, no API key.

Capabilities
comment scraping · data export · audience analysis
Use cases
web scraping · data analysis
Pricing
Free
From the docs

What bbc-skill says it does

Download all comments (top-level + nested + pinned) for a Bilibili video and
SKILL.md
Python 3.9+** (stdlib only — zero pip install).
SKILL.md
npx skills add https://github.com/agents365-ai/bbc-skill --skill bbc-skill

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars15
Last updatedMay 5, 2026
Repositoryagents365-ai/bbc-skill

What it does

Collect a Bilibili video's comments into JSONL for downstream sentiment and audience analysis.

Who is it for?

UP-hosts collecting and analyzing comments on their own Bilibili videos.

Skip if: Posting, deleting, or editing comments, downloading videos, danmaku, or private messages.

When should I use this skill?

The user asks to collect, download, export, or analyze comments on a Bilibili video (BV number, URL, or UID).

What you get

A JSONL comment dump and summary.json ready for sentiment, keyword, and audience-trend analysis.

  • JSONL comment export
  • summary.json

By the numbers

  • Collects 3 comment types (top-level, nested, pinned)
  • Python stdlib only, zero pip install

Files

SKILL.mdMarkdownGitHub ↗

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.

1. If <this-skill-dir>/.last_update exists and is less than 24 hours old, skip this step entirely.

2. 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

3. 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.

4. If upstream is the same or older, refresh .last_update silently and continue.

5. 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

1. Python 3.9+ (stdlib only — zero pip install). 2. 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-file or set $BBC_COOKIE_FILE.

Alternatives:

  • $BBC_SESSDATA env 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, flattened
  • summary.json — video metadata + statistics + top-N
  • raw/ — archived API responses
  • .bbc-state.json — resume state

Commands

CommandPurpose
`bbc fetch <BV\URL>`
bbc fetch-user <UID>Batch fetch all videos of a UP主
bbc summarize <dir>Rebuild summary.json from existing comments.jsonl
bbc cookie-checkValidate 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 table for human-readable tables.

  • stderr: human log lines + NDJSON progress events for long tasks.

Exit codes

CodeMeaning
0Success
1Runtime / API error
2Auth error (cookie invalid / missing)
3Validation error (bad BV number, bad flag)
4Network 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:

1. Read `summary.json` first (< 10 KB) to establish global context: video metadata, total counts, time distribution, top-N. 2. For thematic analysis, Grep or head/tail on comments.jsonl — each line is a flat JSON object, never load the whole file unless small. 3. Typical analyses:

  • Sentiment distribution → scan message by batch
  • Top fans → group by mid, count entries, aggregate like
  • UP 主互动 → filter is_up_reply=true
  • Audience geography → ip_location histogram
  • Feedback timeline → bucket ctime_iso by day/week

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 used
  • references/cookie-extraction.md — per-browser cookie decryption
  • references/agent-contract.md — full envelope + schema contract

Limitations

  • all_count returned 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 --max values or repeated runs may trigger HTTP 412.

The client sleeps 1s between requests and backs off on 412.

Related skills

FAQ

What auth does it need?

A logged-in Bilibili cookie, provided via cookies.txt, the BBC_SESSDATA env var, or browser auto-detection.

Can it modify comments?

No; it is read-only and does not post, edit, or delete.

Data Science & MLanalyticspipelines

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.