Communitygithub.com

entrence/video-site-ops

B站运营全家桶:Cookie二维码登录、视频下载(yt-dlp/API)、评论发布与自动评论机器人、私信发送(浏览器)、热门数据日报PPT、弹幕爬取、视频/用户WBI搜索。执行任何B站相关任务前请先加载本技能。

video-site-ops とは?

本技能是一个为AI代理(如Claude Code、Cursor、Codex等)设计的综合性B站运营工具集,集成了Cookie管理、视频下载、评论管理、私信发送、日报生成、弹幕爬取和WBI搜索等核心功能。它通过统一的Skill-First铁律,确保所有B站操作都从调用`skill_view(name='bilibili')`开始,并自动处理Cookie验证、请求头(UA、Referer、CSRF)以及常见错误码(-101、-509、-799、412等)的容错。技能覆盖yt-dlp和API两种视频下载方式,支持二维码扫码登录,并提供自动评论机器人(带随机延迟和频率限制)、浏览器注入Cookie发送私信、以及基于protobuf的弹幕爬取。所有功能都经过实际服务器IP测试,每个接口的状态和局限性(如私信必须走浏览器、搜索必须用WBI路径)都明确文档化,可有效减少开发者的试错成本。

対応~Claude Code~Codex CLI~Cursor
npx skills add entrence/video-site-ops

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

B站运营 Skill(全家桶)

6つの元スキル(bilibili-cookie / bilibili-comment / bilibili-auto-comment / bilibili-message / bilibili-daily-report / bilibili-video-download)を統合したものです。

Skill-First 鉄則

B站に関するタスク(ダウンロード、コメント、DM、API呼び出し、日報、弾幕)の最初のステップは常に skill_view(name='bilibili') です。yt-dlp を裸で実行したり、自分でスクリプトを書いてAPIを直接叩いたり、直接 browser に突撃したりしないでください。GK は複数のセッションで「skillを使わない」問題を繰り返し修正してきました。

すべてのB站リクエスト(ダウンロード、API呼び出し、コメント)には必ず Cookie を含めてください。 通常画質であっても、Cookie がないと 412 エラーになります。

機能ルーティング

タスク詳細ドキュメントスクリプト / クイックコマンド
Cookie の取得 / 更新(QRコードログイン)references/cookie-login.mdプロセス内蔵ドキュメント(完全なPythonコードを含む)
動画 / ユーザー検索(WBI)references/cookie-login.md`scripts/bili_wbi_search.py "<キーワード>" [video
動画ダウンロードreferences/video-download.md + references/cookie-login.md の yt-dlp 節scripts/cookie_to_netscape.py → yt-dlp
コメントの投稿 / 返信 / 削除references/comment-api.mdscripts/post_reply.sh <BVID> <message> [root_rpid] [parent_rpid]
自動コメントロボットreferences/auto-comment.mdscripts/bili_auto_comment.py --count 30 --interval 600
DMの送信references/message-browser.mdブラウザ操作の手順(ドキュメント参照。api.vc は風制御により純粋なAPIでは不可)
トレンド日報PPTreferences/daily-report.mdbash ~/.hermes/skills/bilibili/scripts/run_daily.sh
全機能動作確認("skillが正常か試す")references/verification.mdドキュメントに従い10項目を順に実行、副作用最小化
弾幕クローリングreferences/danmaku-protobuf.mdドキュメント参照(protobuf解析)
人気 / ランキングAPIreferences/APIv2.popular.md, references/APIv2.ranking.md公開API、ログイン不要
コメントAPIのフィールド / エラーコードreferences/comment-api.md(付録に元のreply APIリファレンスあり)—

共通基盤(全機能で必読)

Cookie

  • ファイル:~/.bilibili-cookie、単一行形式 SESSDATA=xxx; bili_jct=xxx; DedeUserID=xxx
  • SESSDATA=ログイン認証(ログインが必要なすべてのAPIで必須);bili_jct=csrfトークン(POST時は csrf=xxx 必須);DedeUserID=ユーザーmid
  • 有効期限は約30日。APIが -101 を返した、または nav で未ログインと表示された場合 → Cookie期限切れ。references/cookie-login.md に従い再スキャン。GKに「Cookieの期限が切れたので再スキャンが必要です」と積極的に伝え、自分で発見するのを待たないでください。
  • Cookieが必要な操作の前に、まず nav インターフェースで簡易検証を行ってください。
  • yt-dlp の --cookies は Netscape 形式のみ認識します。事前に python3 ~/.hermes/skills/bilibili/scripts/cookie_to_netscape.py を実行してください(出力先 /tmp/bili_netscape_cookie.txt)。
  • 現在のログインアカウントは nav インターフェース(x/web-interface/nav)の実測結果に基づきます。特定のUIDをハードコードしないでください。

リクエスト規約

  • UA は完全なChrome文字列を統一使用:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36(短いUAは風制御の対象になります)
  • POST 時は必ず Referer: https://www.bilibili.com/video/{BVID} + Origin: https://www.bilibili.com + csrf を含めてください。
  • 検索インターフェースは必ず /x/web-interface/wbi/search/type パスを使用してください(wbiパスでないとHTMLエラーページが返ります)。

API信頼性一覧表(サーバーIP実測)

インターフェース状態
view(BVID→AID/CID)安定
wbi/search/type(video/bili_user、wbi署名不要)利用可能
reply/main / reply/add / reply/del利用可能
popular / ranking/v2利用可能、公開、ログイン不要
space/arc/search-799 レート制限、使用禁止
search/type(wbiパスなし)風制御、HTMLエラーページを返す
api.vc.bilibili.com(DM)全面風制御、ブラウザUIのみ

主要エラーコード

コード意味対応
-101未ログイン / Cookie無効QRコードで再ログイン
-509リクエストが頻繁すぎる5-10秒待ってリトライ
-799サーバーIPがレート制限されたインターフェースパスを変更、リトライは無効
-635動画がコメントを許可していないスキップ
-637不適切な言葉スキップ / 文面を修正
12014その日のコメント送信上限に達したスクリプトを停止して24時間待つ(数時間ではない)、短い間隔で再起動して試さない
412ダウンロード時にCookieがない / 風制御Netscape Cookieを付けるか、API方式を使用
12061UP主がコメント欄を閉じているスキップ

各機能のエッセンス

動画ダウンロード

yt-dlp + Netscape Cookie を優先(1080Pが解除可能)。yt-dlp で412エラーが出た場合はAPI方式に切り替え:playurl に fnval=0&platform=html5 を付けて durl の直接リンクmp4を取得(dash分離ストリームはログインなしでは403)。CDNダウンロード時は必ず Referer: https://www.bilibili.com を含める。qn: 16=360p 32=480p 64=720p 80=1080p。

コメント

oid は avid であり bvid ではありません。事前に view インターフェースで変換してください。一次コメントは root=0 parent=0。返信時は root+parent を指定。ユーザーの最新動画を探す:wbi検索で search_type=video&order=pubdate とし、最初の結果を取得。-509 の場合は5-10秒待機。

自動コメントロボット

--count 30 --interval 600(100/300 にすると12014が発生します)。起動前に ps aux | grep bili_auto_comment で残存プロセスを確認。各コメントに1-3秒のランダム遅延を入れます。永続的なバックグラウンド実行には terminal(background=true) または crontab を使用し、nohup/disown は使いません。12014が大量に発生したらすぐに停止。

DM

api.vc はサーバーIPからの curl とページXHRの両方で使用不可。唯一の方法:ブラウザにCookieを注入 → スペースページで「メッセージを送る」をクリック → .brt-editor に入力(inputイベントをdispatchする必要あり)→ [class*="_MessageSendBox__SendBtn_"] で曖昧一致させて送信。未フォローユーザーには1通しか送れません(エラーではありません)。

日報

bash /home/ubuntu/bilibili-daily/run_daily.sh でワンクリック全自動、Cookie不要、所要時間約15秒。スクリプトのマスターは本skillのscripts/にあり、データとPPT出力は /home/ubuntu/bilibili-daily/ にあります。pptxgenjsの注意点:colorに#を付けない、optionオブジェクトは毎回新規作成。

全般的な注意点

  1. B站のリクエストには常にCookieを含める。さもないと412。
  2. QRコードはPNGファイルとして保存し、GKにスキャンさせる(/home/ubuntu/Downloads/bilibili_qrcode.png)。ASCII QRコードを絶対にプリントしない。
  3. 検索/タイトルフィールドに <em class="keyword"> ハイライトタグが含まれる場合がある。re.sub(r'<[^>]+>', '', title) で除去する。
  4. 412/403 が発生した場合、buvid3/buvid4 などのCookieフィールドを追加して風制御に対応する。
  5. popular/ranking のページングでは、-799を防ぐために各ページの間隔を1秒以上にする。
  6. 各機能の詳細な注意点は、それぞれの references ドキュメントを参照。

関連スキル