← Back to Skills Marketplace
gkd2323c

Bilibili Video Summary

by gkd2323c · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
35
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install bilibili-video-summary
Description
Extract and summarize Bilibili videos. Fetches subtitles or GPU-transcribed audio, danmaku (scrolling comments), video comments, and description — outputs st...
README (SKILL.md)

Bilibili Video Summary Tool

Extract full content from a Bilibili video — transcript/subtitles, danmaku, comments, and description — then use your own LLM capabilities to produce a deep summary. No external AI API required (no OpenAI / Gemini key needed).

Capabilities

Data Source Method Priority
CC Subtitles Bilibili API Fastest, used if available
Audio Transcription whisper.cpp + Vulkan GPU Automatic fallback when no subtitles
Video Description yt-dlp Always captured
Danmaku (scrolling comments) yt-dlp Parsed, analyzed for frequent content
Comments Bilibili Comment API Hot-sorted, deduplicated, top liked extracted

Workflow

When you receive a Bilibili video link and are asked to summarize it, follow these steps:

Step 1: Extract all data

python bili-transcript.py "\x3Cvideo_url>"

The script automatically:

  1. Gets video title, uploader, duration, description
  2. Attempts Bilibili CC subtitles (fastest, used if available)
  3. Falls back to GPU transcription: download audio → convert to wav → whisper.cpp with Vulkan
  4. Downloads and analyzes danmaku (scrolling comments)
  5. Fetches video comments, sorted by likes

Output files are saved to ./bili-output/:

  • transcript.txt — full transcript/subtitle text
  • danmaku.json — danmaku data with statistics
  • comments.json — comment data with top-liked

The JSON output includes preview text, danmaku summary, and top comments.

Step 2: Read full transcript

The JSON preview truncates at 2000 characters. Read the full file:

cat ./bili-output/transcript.txt

Step 3: Read danmaku and comments

Review community response data:

cat ./bili-output/danmaku.json
cat ./bili-output/comments.json

Step 4: Compose your summary

Use your own LLM capabilities to produce a comprehensive summary. Suggested structure:

Video Overview — Title, uploader, duration, transcription source (subtitle / GPU). Key info from the description (project links, update notes, etc.).

Core Content — What the video is about. Fluent paragraph summary of the main narrative.

Key Points — Notable arguments, data points, or information worth highlighting.

Community Response (optional) — Reactions from danmaku and comments. Skip if content is insubstantial (spam, trolling, no valuable discussion).

  • Danmaku analysis: look for frequently repeated phrases (community memes/reactions), informative questions, technical discussions, controversy points
  • Comment analysis: look for top-liked opinions, creator interactions, user-reported issues, technical insights

Assessment (optional) — Content quality, information density, notable strengths or weaknesses.

Available Actions

# Video metadata only
python bili-transcript.py "\x3CURL>" --action info

# CC subtitles only (if available)
python bili-transcript.py "\x3CURL>" --action subtitle

# Force GPU transcription (skip subtitle check)
python bili-transcript.py "\x3CURL>" --action transcribe

# Danmaku only
python bili-transcript.py "\x3CURL>" --action danmaku

# Comments only
python bili-transcript.py "\x3CURL>" --action comments

# Custom output directory
python bili-transcript.py "\x3CURL>" --output ./my-output

Environment Variables

Variable Purpose
WHISPER_CPP_DIR Path to whisper.cpp directory (containing whisper-cli)
WHISPER_MODEL Path to whisper model file (e.g., ggml-large-v3-turbo.bin)
BILI_OUTPUT_DIR Default output directory (default: ./bili-output)

Performance Reference

Video Length Total Time Notes
5 minutes ~15s GPU transcription is fast
12 minutes ~22s Download + convert + transcribe
1 hour ~2-3 min Depends on audio density
Danmaku/Comments ~5-10s Depends on comment volume

Dependencies

  • Python packages: yt-dlp, av (PyAV)
  • Transcription engine: whisper.cpp with Vulkan support (optional, only needed if no CC subtitles)
  • Model: ggml-large-v3-turbo.bin (~1.6GB, download separately)
  • GPU: Any Vulkan-compatible GPU (NVIDIA, AMD, Intel) — auto-detected
  • No external AI API keys required

Limitations

  • Requires internet access to Bilibili
  • Some content requires login (paid courses, restricted videos) — may fail
  • Danmaku and comment APIs may be rate-limited
  • whisper.cpp does not support m4a; script auto-converts via PyAV
  • Very long videos (>2 hours) take significant transcription time; try --action subtitle first
  • Comments are fetched from the first 3 pages (~60 comments); may not cover very hot videos fully
Usage Guidance
This skill looks coherent and not malicious based on the provided artifacts. Before installing, make sure you trust the Python script, yt-dlp, whisper.cpp, and model files; be careful about using logged-in Bilibili cookies or profiles; and delete the generated output directory if you do not want transcripts or comments retained locally.
Capability Analysis
Type: OpenClaw Skill Name: bilibili-video-summary Version: 1.0.0 The skill bundle is a legitimate tool for extracting and summarizing Bilibili video content. The core logic in `bili-transcript.py` uses well-known utilities like `yt-dlp` and `whisper.cpp` to fetch metadata, subtitles, and transcribe audio. The script handles subprocess calls safely using lists rather than shell strings, and there is no evidence of data exfiltration, credential theft, or malicious prompt injection in `SKILL.md`. All network activity is directed toward Bilibili APIs as expected for the stated functionality.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The declared purpose matches the artifacts: it fetches Bilibili subtitles, audio transcripts, danmaku, comments, and descriptions for summarization.
Instruction Scope
The instructions are scoped to user-requested Bilibili video summarization and do not contain evidence of goal overriding or hidden agent behavior.
Install Mechanism
There is no install spec; setup relies on user-installed Python packages plus external tools such as yt-dlp and whisper.cpp/whisper-cli.
Credentials
Network access, media download/transcription, and local file writes are expected for this purpose, but users should be aware these operations can consume time, bandwidth, disk, and GPU resources.
Persistence & Privilege
The skill persists transcripts, danmaku, and comments under an output directory. This is disclosed and purpose-aligned, with no evidence of background persistence or self-propagation.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bilibili-video-summary
  3. After installation, invoke the skill by name or use /bilibili-video-summary
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: subtitle extraction, GPU transcription (whisper.cpp+Vulkan), danmaku, comments, structured JSON output
Metadata
Slug bilibili-video-summary
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Bilibili Video Summary?

Extract and summarize Bilibili videos. Fetches subtitles or GPU-transcribed audio, danmaku (scrolling comments), video comments, and description — outputs st... It is an AI Agent Skill for Claude Code / OpenClaw, with 35 downloads so far.

How do I install Bilibili Video Summary?

Run "/install bilibili-video-summary" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Bilibili Video Summary free?

Yes, Bilibili Video Summary is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Bilibili Video Summary support?

Bilibili Video Summary is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Bilibili Video Summary?

It is built and maintained by gkd2323c (@gkd2323c); the current version is v1.0.0.

💬 Comments