# Bilibili Source

Fetches real, citable Bilibili (B站) video data, stats, metadata, tags, and full...

- Repository: https://github.com/daymade/claude-code-skills (1509 stars)
- Category: Media
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add daymade/claude-code-skills --skill bilibili-source -g -a claude-code -y`
Codex: `npx skills add daymade/claude-code-skills --skill bilibili-source -g -a codex -y`
Cursor: `npx skills add daymade/claude-code-skills --skill bilibili-source -g -a cursor -y`
Gemini CLI: `npx skills add daymade/claude-code-skills --skill bilibili-source -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add daymade/claude-code-skills`

## Description

Fetches real, citable Bilibili (B站) video data, stats, metadata, tags, and full danmaku text, via login-free API calls, never hand-typed or estimated. Use when citing view/like/favorite counts, analyzing why a video performed, or archiving a Bilibili source into a knowledge base. Accepts BVID, av numbers, b23.tv links, or full URLs; subtitles and 收藏夹 (favorites) enumeration need the user's Bilibili login.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# bilibili-source

Fetch **real, verifiable** data for a Bilibili video so you can cite it instead of guessing. Engagement numbers are the backbone of any honest "why did this do well" analysis, and hand-typed or estimated numbers are the fastest way a knowledge base rots. This skill makes the numbers cheap to fetch, so there is no excuse to invent them.

## Quick start

```bash
scripts/bili-fetch.sh BV1xxxxxxxxx
```

Returns one JSON object with everything from a single `view/detail` API call:

```json
{
  "bvid": "BV1xxxxxxxxx",
  "aid": 1234567890,
  "fetched_at": "2026-06-07T13:54:17Z",
  "url": "https://www.bilibili.com/video/BV1xxxxxxxxx",
  "title": "<video title>",
  "up": { "name": "<UP name>", "mid": 12345678, "fans": 45600 },
  "pubdate": "2026-01-10T00:50:47Z",
  "tname": "<partition, may be empty>",
  "tags": ["<tag>", "<tag>"],
  "videos": 1,
  "duration_s": 372,
  "stat": { "view": 48000, "like": 1200, "coin": 180, "favorite": 950,
            "share": 64, "reply": 210, "danmaku": 130 },
  "pages": [ { "cid": 12345678, "page": 1, "part": "<part title>", "duration": 372 } ]
}
```

`bili-fetch.sh` accepts any form a user might paste, **BVID, `av` number, `b23.tv` short link, or full URL**, and normalizes it. For multi-part videos it returns every part's `cid` in `pages[]` (you need the per-part cid to fetch that part's danmaku or subtitles).

## Scripts

| Script | What it does | Login |
|--------|--------------|-------|
| `scripts/bili-fetch.sh <ref>` | Core: full metadata + live stats (run this first) | No |
| `scripts/bili-danmaku.sh <ref> [P]` | Danmaku (bullet-comment) full text for a part | No |
| `scripts/bili-subs.sh <ref> [browser]` | Subtitle/transcript track | **Yes** |
| `scripts/bili-selftest.sh` | Test anonymous metadata, danmaku and selected API shapes | No |
| `scripts/bili-access.py` | Diagnose identity, entitlement, subtitle shape and per-part media; replay/probe/verify-report | Explicit cookie file only |

The rest: https://github.com/daymade/claude-code-skills/blob/HEAD/bilibili-source/SKILL.md
