with one click
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
// 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
[HINT] Download the complete skill directory including SKILL.md and all related files
| 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","Video","Social","cli"] |
upstreamSha: dbe28551930df43b633baa52e9639832aeada967
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.
When you need machine-readable output:
--yaml first because it is usually more token-efficient than pretty JSON.--json only when downstream tooling strictly requires JSON.--max, --page, or --offset.bili user-videos 946974 --max 3 --yaml instead of fetching large timelines.--ai, comments, or audio extraction when subtitles are unavailable or clearly insufficient.# 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
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.
# 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
# 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 users (default)
bili search "关键词"
# Search videos
bili search "关键词" --type video
# Pagination and limit
bili search "关键词" --type video --max 5
bili search "关键词" --page 2
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)
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
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 directory
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
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
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 SCHEMA.md.
bili -v <command> # Enable verbose/debug logging for any command
# For video summarization, fetch subtitles first
bili video BV1ABcsztEcY --subtitle
# Only use AI summary as a fallback or secondary signal
bili video BV1ABcsztEcY --ai
# Get comments for sentiment analysis
bili video BV1ABcsztEcY --comments
# Extract audio for speech-to-text (ASR)
# Segments are saved to /tmp/bilibili-cli/{title}/seg_000.wav, seg_001.wav, ...
bili audio BV1ABcsztEcY --segment 25
# Find a user's latest video BV ID with minimal payload
bili user-videos 946974 --max 1 --yaml
# Check if logged in before performing actions
bili status && bili like BV1ABcsztEcY
# Search and inspect the first few results
bili search "topic" --type video --max 3 --yaml
# 1. Search for a topic
bili search "AI" --type video --max 5
# 2. Get subtitles first for summarization
bili video BV1xxx --subtitle
# 3. If subtitles are missing or incomplete, try AI summary
bili video BV1xxx --ai
# 4. If there is still not enough content, extract audio for ASR
bili audio BV1xxx --segment 25
# 5. Get comments for audience reaction
bili video BV1xxx --comments
# 1. Look up UP主 profile
bili user "影视飓风"
# 2. Get their recent videos
bili user-videos 946974 --max 10
# 3. Inspect a specific video
bili video BV1xxx --ai --comments
bili loginbili login.