mcpField
B
bilibili-cli

bilibili-cli

github.com/public-clisその他1.1k753 回インストール33 週間前に更新
リポジトリ

bilibili-cli について

bilibili-cliは、Bilibiliの動画検索やユーザープロフィールの閲覧、動画への操作を行うコマンドラインツールです。YAMLとJSONの構造化出力に対応し、動画分析では字幕を優先する使い方を示しています。

主な機能

  1. 01動画情報と字幕の取得
  2. 02動画とユーザーの検索
  3. 03人気動画、ランキング、フィードの閲覧
  4. 04プロフィールと投稿動画の確認
  5. 05動画へのいいね、コイン、登録
  6. 06YAMLまたはJSONでの出力

活用シーン

  1. 01特定のテーマの動画を検索
  2. 02字幕を読んで動画内容を要約
  3. 03投稿者と最近の動画を調査
  4. 04お気に入り、後で見る、視聴履歴を管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/public-clis/bilibili-cli --skill bilibili-cli

インストール後、Claude Code で/bilibili-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
CHANGELOG.md
.gitignore
SCHEMA.md
pyproject.toml
.github/ISSUE_TEMPLATE/
feature_request.yml
bug_report.yml
.github/workflows/
publish.yml
ci.yml
bili_cli/
__init__.py
auth.py
cli.py
client.py
payloads.py
formatter.py
exceptions.py
bili_cli/commands/
__init__.py
collections.py
common.py
audio.py
account.py
interactions.py
discovery.py
user_search.py
video.py
tests/
conftest.py
test_audio.py
test_cli.py
test_auth.py

詳細

bilibili-cli スキル

Bilibili(哔哩哔哩)を操作するための CLI ツールです。動画情報の取得、コンテンツの検索、ユーザープロフィールの閲覧、いいねや三連打などの操作に使用します。

エージェントのデフォルト設定

機械可読な出力が必要な場合:

  1. まず --yaml を使用してください。通常、整形済み JSON よりもトークン効率が高いためです。
  2. 下流のツールで JSON が厳密に必要な場合にのみ、--json を使用してください。
  3. --max、--page、または --offset を使って、結果セットを小さくしてください。
  4. 範囲の広いコマンドより、具体的なコマンドを優先してください。例:大規模なタイムラインを取得する代わりに、bili user-videos 946974 --max 3 --yaml を使用します。
  5. 動画を要約する場合は、まず字幕を取得してください。字幕には通常、動画の核となる内容が含まれており、要約の主な情報源として最適です。
  6. 字幕が利用できない場合や、明らかに不十分な場合に限り、--ai、コメント、または音声抽出を使用してください。

前提条件

# 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

認証

ほとんどの読み取りコマンドは、ログインせずに使用できます。字幕、お気に入り/フォロー中/後で見る/履歴、フィード、および操作にはログインが必要です。

bili status                    # Check if logged in (exit 0 = yes, 1 = no)
bili login                     # QR code login (if not authenticated)

認証時には、ローカルブラウザーの Cookie(Chrome/Firefox/Edge/Brave)が自動検出されます。Cookie が見つかり、有効であれば手動ログインは不要です。認証情報は ~/.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
音声抽出

bilibili-cli[audio] エクストラ(PyAV)が必要です。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

構造化出力

主要なクエリコマンドは、機械可読な出力として --yaml と --json の両方をサポートしています。エージェントで使用する場合は YAML を優先してください。

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

標準出力が TTY でない場合、bilibili-cli はデフォルトで自動的に YAML を出力します。 OUTPUT=yaml|json|rich|auto を使うと、デフォルトの出力モードを上書きできます。 すべての機械可読な出力では、SCHEMA.md に記載されているエンベロープを使用します。

デバッグ

bili -v <command>              # Enable verbose/debug logging for any command

AI エージェント向けの一般的なパターン

# 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
ワークフロー:UP主の調査
# 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

エラー処理

  • コマンドは成功時に終了コード 0、失敗時に 0 以外を返します
  • エラーメッセージには ❌ が付加されます
  • ログインが必要なコマンドでは ⚠️ とともに、bili login を実行するよう案内が表示されます
  • 無効な BV ID には、明確なエラーメッセージが表示されます

安全に関する注意事項

  • チャットログで認証情報や Cookie の値そのものを共有するようユーザーに求めないでください。
  • 手動で秘密情報をコピー&ペーストするより、ローカルブラウザーの Cookie 抽出を優先してください。
  • 認証に失敗した場合は、bili login から再ログインするようユーザーに案内してください。

コメント