/bilibili-cli
CLI skill for Bilibili (哔哩哔哩, B站) with token-efficient YAML output for AI agents to browse videos, users, search, trending, dynamics, favorites, and interactions from the terminal
$ npx -y skills add jackwener/bilibili-cli --skill bilibili-cli --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/bilibili-cli
Context preview
The summary Claude sees to decide when to auto-load this skill.
CLI skill for Bilibili (哔哩哔哩, B站) with token-efficient YAML output for AI agents to browse videos, users, search, trending, dynamics, favorites, and interactions from the terminal
SKILL.md
bilibili-cli.SKILL.mdname: bilibili-cli
description: CLI skill for Bilibili (哔哩哔哩, B站) with token-efficient YAML output for AI agents to browse videos, users, search, trending, dynamics, favorites, and interactions from the terminal
author: jackwener
version: "0.6.2"
tags:
- bilibili
- 哔哩哔哩
- b站
- video
- social-media
- cli
bilibili-cli Skill
A CLI tool for interacting with Bilibili (哔哩哔哩). Use it to fetch video info, search content, browse user profiles, and perform interactions like liking or triple-clicking.
Agent Defaults
When you need machine-readable output:
1. Prefer `--yaml` first because it is usually more token-efficient than pretty JSON. 2. Use `--json` only when downstream tooling strictly requires JSON. 3. Keep result sets small with `--max`, `--page`, or `--offset`. 4. Prefer specific commands over broad ones. Example: use `bili user-videos 946974 --max 3 --yaml` instead of fetching large timelines. 5. When summarizing a video, fetch subtitles first. Subtitles usually contain the video's core content and are the best primary source for summaries. 6. Only fall back to `--ai`, comments, or audio extraction when subtitles are unavailable or clearly insufficient.
Prerequisites
# Install (requires Python 3.10+)
uv tool install bilibili-cli
# Or: pipx install bilibili-cli
# If you need audio extraction support (requires PyAV)
uv tool install "bilibili-cli[audio]"
# Or: pipx install "bilibili-cli[audio]"
# Upgrade to latest (recommended to avoid API errors)
uv tool upgrade bilibili-cli
# Or: pipx upgrade bilibili-cli
Authentication
Most read commands work without login. Subtitles, favorites/following/watch-later/history, feed, and interactions require login.
bili status # Check if logged in (exit 0 = yes, 1 = no)
bili login # QR code login (if not authenticated)
Authentication auto-detects local browser cookies (Chrome/Firefox/Edge/Brave). If cookies are found and valid, no manual login needed. Credentials are saved to `~/.bilibili-cli/credential.json`.
Command Reference
Video
# Get video details (accepts BV ID or full URL)
bili video BV1ABcsztEcY
bili video https://www.bilibili.com/video/BV1ABcsztEcY
# Options
bili video BV1ABcsztEcY --subtitle # Show subtitles (plain text)
bili video BV1ABcsztEcY --subtitle-timeline # Show subtitles with timestamps
bili video BV1ABcsztEcY -st --subtitle-format srt # Export as SRT format
bili video BV1ABcsztEcY --ai # Show B站 AI summary
bili video BV1ABcsztEcY --comments # Show top comments
bili video BV1ABcsztEcY --related # Show related videos
bili video BV1ABcsztEcY --yaml # Token-efficient YAML output
bili video BV1ABcsztEcY --json # Structured JSON envelope
User
# Look up user profile (by UID or username)
bili user 946974
bili user "影视飓风"
# List user's videos
bili user-videos 946974 --max 20
bili user-videos "影视飓风" --yaml
Search
# Search users (default)
bili search "关键词"
# Search videos
bili search "关键词" --type video
# Pagination and limit
bili search "关键词" --type video --max 5
bili search "关键词" --page 2
Discovery
bili hot # Trending/popular videos
bili hot --page 2 --max 10 # Page 2, limit 10
bili rank # Site-wide ranking (3-day)
bili rank --day 7 --max 30 # 7-day ranking, top 30
bili feed # Dynamic timeline (requires login)
bili feed --offset 1234567890 # Next page via returned cursor
bili my-dynamics # My posted dynamics (requires login)
bili dynamic-post "hello" # Publish text dynamic (requires write credential)
bili dynamic-delete 123456789 # Delete one dynamic (requires write credential)
Collections (require login)
bili favorites # List favorite folders
bili favorites <ID> --page 2 # Videos in a folder
bili following # Following list
bili watch-later # Watch later list
bili history # Watch history
Audio Extraction
Requires `bilibili-cli[audio]` extra (PyAV). Install with `uv tool install "bilibili-cli[audio]"`.
# Download audio and split into ASR-ready WAV segments (25s each, 16kHz mono)
bili audio BV1ABcsztEcY # Split to /tmp/bilibili-cli/{title}/
bili audio BV1ABcsztEcY --segment 60 # 60s per segment
bili audio BV1ABcsztEcY --no-split # Full m4a file, no splitting
bili audio BV1ABcsztEcY -o ~/data/ # Custom output directoryInteractions (require login)
bili like BV1ABcsztEcY # Like a video
bili like BV1ABcsztEcY --undo # Unlike
bili coin BV1ABcsztEcY # Give 1 coin
bili coin BV1ABcsztEcY -n 2 # Give 2 coins
bili triple BV1ABcsztEcY # 一键三连 (like + coin + favorite)
bili unfollow 946974 # Unfollow by UID
Account
bili status # Quick login check
bili status --yaml # Structured auth status
bili whoami # Detailed profile info
bili whoami --yaml # Profile as YAML
bili whoami --json # Profile as JSON
bili login # QR code login
bili logout # Clear credentials
Structured Output
Major query commands support both `--yaml` and `--json` for machine-readable output. Prefer YAML for agent use:
bili status --yaml # Quick structured auth check
bili video BV1ABcsztEcY --yaml # Preferred for AI agents
bili hot --max 5 --yaml # Smaller, token-efficient payload
bili user 946974 --json | jq -r '.data.user.name' # JSON when jq is needed
When stdout is not a TTY, `bilibili-cli` defaults to YAML automatically. Use `OUTPUT=yaml|json|rich|auto` to override the default output mode. All machine-readable output uses the envelope documented in [SC
Read more
name: bilibili-cli description: CLI skill for Bilibili (哔哩哔哩, B站) with token-efficient YAML output for AI agents to browse videos, users, search, trending, dynamics, favorites, and interactions from the terminal author: jackwener version: "0.6.2" tags: - bilibili - 哔哩哔哩 - b站 - video - social-media - cli
bilibili-cli Skill
A CLI tool for interacting with Bilibili (哔哩哔哩). Use it to fetch video info, search content, browse user profiles, and perform interactions like liking or triple-clicking.
Agent Defaults
When you need machine-readable output:
1. Prefer `--yaml` first because it is usually more token-efficient than pretty JSON. 2. Use `--json` only when downstream tooling strictly requires JSON. 3. Keep result sets small with `--max`, `--page`, or `--offset`. 4. Prefer specific commands over broad ones. Example: use `bili user-videos 946974 --max 3 --yaml` instead of fetching large timelines. 5. When summarizing a video, fetch subtitles first. Subtitles usually contain the video's core content and are the best primary source for summaries. 6. Only fall back to `--ai`, comments, or audio extraction when subtitles are unavailable or clearly insufficient.
Prerequisites
# Install (requires Python 3.10+) uv tool install bilibili-cli # Or: pipx install bilibili-cli # If you need audio extraction support (requires PyAV) uv tool install "bilibili-cli[audio]" # Or: pipx install "bilibili-cli[audio]" # Upgrade to latest (recommended to avoid API errors) uv tool upgrade bilibili-cli # Or: pipx upgrade bilibili-cli
Authentication
Most read commands work without login. Subtitles, favorites/following/watch-later/history, feed, and interactions require login.
bili status # Check if logged in (exit 0 = yes, 1 = no) bili login # QR code login (if not authenticated)
Authentication auto-detects local browser cookies (Chrome/Firefox/Edge/Brave). If cookies are found and valid, no manual login needed. Credentials are saved to `~/.bilibili-cli/credential.json`.
Command Reference
Video
# Get video details (accepts BV ID or full URL) bili video BV1ABcsztEcY bili video https://www.bilibili.com/video/BV1ABcsztEcY # Options bili video BV1ABcsztEcY --subtitle # Show subtitles (plain text) bili video BV1ABcsztEcY --subtitle-timeline # Show subtitles with timestamps bili video BV1ABcsztEcY -st --subtitle-format srt # Export as SRT format bili video BV1ABcsztEcY --ai # Show B站 AI summary bili video BV1ABcsztEcY --comments # Show top comments bili video BV1ABcsztEcY --related # Show related videos bili video BV1ABcsztEcY --yaml # Token-efficient YAML output bili video BV1ABcsztEcY --json # Structured JSON envelope
User
# Look up user profile (by UID or username) bili user 946974 bili user "影视飓风" # List user's videos bili user-videos 946974 --max 20 bili user-videos "影视飓风" --yaml
Search
# Search users (default) bili search "关键词" # Search videos bili search "关键词" --type video # Pagination and limit bili search "关键词" --type video --max 5 bili search "关键词" --page 2
Discovery
bili hot # Trending/popular videos bili hot --page 2 --max 10 # Page 2, limit 10 bili rank # Site-wide ranking (3-day) bili rank --day 7 --max 30 # 7-day ranking, top 30 bili feed # Dynamic timeline (requires login) bili feed --offset 1234567890 # Next page via returned cursor bili my-dynamics # My posted dynamics (requires login) bili dynamic-post "hello" # Publish text dynamic (requires write credential) bili dynamic-delete 123456789 # Delete one dynamic (requires write credential)
Collections (require login)
bili favorites # List favorite folders bili favorites <ID> --page 2 # Videos in a folder bili following # Following list bili watch-later # Watch later list bili history # Watch history
Audio Extraction
Requires `bilibili-cli[audio]` extra (PyAV). Install with `uv tool install "bilibili-cli[audio]"`.
# Download audio and split into ASR-ready WAV segments (25s each, 16kHz mono)
bili audio BV1ABcsztEcY # Split to /tmp/bilibili-cli/{title}/
bili audio BV1ABcsztEcY --segment 60 # 60s per segment
bili audio BV1ABcsztEcY --no-split # Full m4a file, no splitting
bili audio BV1ABcsztEcY -o ~/data/ # Custom output directoryInteractions (require login)
bili like BV1ABcsztEcY # Like a video bili like BV1ABcsztEcY --undo # Unlike bili coin BV1ABcsztEcY # Give 1 coin bili coin BV1ABcsztEcY -n 2 # Give 2 coins bili triple BV1ABcsztEcY # 一键三连 (like + coin + favorite) bili unfollow 946974 # Unfollow by UID
Account
bili status # Quick login check bili status --yaml # Structured auth status bili whoami # Detailed profile info bili whoami --yaml # Profile as YAML bili whoami --json # Profile as JSON bili login # QR code login bili logout # Clear credentials
Structured Output
Major query commands support both `--yaml` and `--json` for machine-readable output. Prefer YAML for agent use:
bili status --yaml # Quick structured auth check bili video BV1ABcsztEcY --yaml # Preferred for AI agents bili hot --max 5 --yaml # Smaller, token-efficient payload bili user 946974 --json | jq -r '.data.user.name' # JSON when jq is needed
When stdout is not a TTY, `bilibili-cli` defaults to YAML automatically. Use `OUTPUT=yaml|json|rich|auto` to override the default output mode. All machine-readable output uses the envelope documented in [SC
A CLI for Bilibili — browse videos, users, favorites from the terminal 📺

