13 KiB
ひとつのコマンドで、10 のプラットフォームへ。
小紅書(RED) · 抖音 · TikTok · ビリビリ · 快手 · 微博 · 閑魚 · タオバオ · 京東 · X
まもなく対応:Instagram · YouTube · Facebook · 知乎 · WeChat 公式アカウント · 今日頭条 · 得物 · 拼多多 · 美団 · 大衆点評
プラットフォームごとに、API も署名方式も、ログイン方法もデータ形式もバラバラ。catbus はそれらをまとめて 1 台のバスに乗せます。同じコマンド、同じ JSON、同じログイン情報ディレクトリ。プラットフォームを乗り換えるときは、単語をひとつ変えるだけです。
✨ catbus とは
catbus(猫巴士)は、中国内外の主要 10 プラットフォームの web エンドポイントを統一された構文で操作できるコマンドラインツールです。検索、詳細、コメント、ユーザー、おすすめフィード、ダウンロード、投稿、DM、ライブ配信の弾幕コメント……。
catbus xhs item search 露营 --sort latest
catbus douyin item search 露营 --sort latest
catbus bilibili item search 露营 --sort latest
catbus x item search camping --sort latest
4 つのプラットフォームに、ほぼ同じ 4 つのコマンド。出力される JSON はすべて同じ構造です。ノートも作品も動画もポストも、すべて item。検索は必ず search、いいねは必ず like。一度覚えれば、10 のプラットフォームすべてで使えます。
🚀 catbus を選ぶ理由
🧭 同じ意味には、同じ名前意味が同じ機能は、どのプラットフォームでも同じコマンド、同じパラメータ、同じ出力。プラットフォーム固有の呼び名( |
📦 必要なのは Node だけPython もコンパイラも、システム依存のパッケージも不要です。ネイティブ依存はすべてビルド済みバイナリ付きで、Windows・macOS・Linux の x64 / arm64(musl を含む)をカバー。8 つのターゲット環境すべてで、CI がひとつずつスモークテストしています。 |
🤖 AI エージェントのために生まれたstdout には JSON だけ。終了コードは安定していて、エラーには次に実行すべきコマンドが添えられます。 |
🔐 ログイン情報はあなたの PC の中だけにQR コード、SMS、cookie のインポートに対応。認証情報は プラットフォーム × エンドポイント × アカウント ごとに |
🧪 上流とバイト単位で一致すべてのリクエストの URL、ヘッダー順、cookie、body、署名を、乱数と時刻を固定したうえで上流の実装と1 バイトずつ突き合わせています。560+ 件のゴールデンデータと 940+ 件のオフラインテストが、あらゆる変更を見守ります。 |
🛡️ ブラウザ級のネットワークスタック本物の Chrome と一致する TLS / HTTP2 フィンガープリント。上流の署名 JS は手を加えずにサンドボックスで実行し、スライダー型・クリック選択型の CAPTCHA はローカルの ONNX と OpenCV で自動認識します。 |
📊 数字で見る catbus
| 🚌 プラットフォーム | ⌨️ 実装済みコマンド | 🧪 ゴールデンデータ | ✅ オフラインテスト | 💻 ターゲット環境 |
|---|---|---|---|---|
| 10 | 300+ | 560+ | 940+ | 8 |
🏗️ アーキテクチャ
- ひとつのレジストリがすべてを動かす:コマンド解析、4 階層の
--help、catbus platforms、機能マトリクス はすべて同じレジストリから生成されるため、互いに食い違うことはありません。 - 1 プラットフォームに、1 セットのファイル:
clientはセッションと署名を担当し、apiは上流のメソッドと 1 対 1 で対応、normalizeは生データを統一された型に変換し、resolveは ID・リンク・共有用短縮 URL・meのどれでも引数として使えるようにします。 - 拡張可能:仕様には app / pc エンドポイントの枠があらかじめ用意されており、JS 以外の上流は provider プロトコルで接続する予定です。
🤖 AI エージェントのために生まれた
catbus は最初の日から「プログラムに呼び出される」ことを前提に設計されています。
catbus platforms douyin | jq '.data.commands[] | select(.status=="implemented") | .resource + " " + .action'
- 自己記述的:各プラットフォーム・各コマンドのログイン要否、実装状況、上流での対応度合いが、コマンドひとつで分かります。
- 予測可能:成功も失敗も同じエンベロープ
{ ok, data, page, error }。error.hintが次に実行すべきコマンドをそのまま示します。 - つなげられる:出力されるオブジェクトはすべて
idとurlを持つので、前のコマンドの結果をそのまま次のコマンドに渡せます。 - 節度がある:危険な操作には明示的な
-yが必須。投稿は自分だけに公開することもでき、リスク制御に引っかかったときはRISK_CONTROLとはっきり報告して、黙ってリトライすることはありません。
コマンドひとつで、catbus スキルを Claude Code・Cursor・Codex などのエージェントに入れられます:
npx skills add cv-cat/catbus
スキルは必要な分だけ読み込まれます。概要は 1 ページだけで、扱うプラットフォームや作業の種類(収集、投稿、ライブと DM、トラブル対応)に応じてサブファイルを読みます。安全のルールも組み込み済みです:ログインはあなたに任せる、書き込みは必ず確認、投稿は既定で非公開、リスク制御に当たったら止まる。
⚡ 30 秒で乗車
npm i -g catbus-cli
catbus doctor # 環境をチェック
catbus bilibili auth login # QR コードでログイン
catbus bilibili item search 猫 --limit 20
Docker やソースからのインストールも可能です。詳しい手順は クイックスタート をご覧ください。
📚 ドキュメント
以下のドキュメントは中国語(簡体字)で書かれています。
| 🚀 クイックスタート | インストールから最初のデータのエクスポートまで |
| 🔑 ログイン · ⚙️ 設定 · 🐳 Docker | QR コード / cookie、複数アカウント、プロキシ、コンテナ |
| 📤 出力とエラー処理 | エンベロープ、正規化された型、ページング、終了コード |
| 🧭 プラットフォーム別ガイド · 🗂️ 機能マトリクス | 各プラットフォームの対応状況と引数の渡し方 |
| 🧪 サンプルスクリプト | 横断検索、コメントのエクスポート、投稿のバックアップ、ライブ弾幕の記録 |
| 📐 AGENTS.md | catbus の仕様そのもの |
| ❓ よくある質問 | なぜログインが必要?リスク制御に引っかかったら?…… |
🤝 コントリビュート
issue も PR も歓迎します。新しいプラットフォーム、新しいコマンド、プラットフォーム側の API 変更への対応、ドキュメントの改善、なんでもどうぞ。始める前に CONTRIBUTING.md と AGENTS.md に目を通してください(仕様が先、リクエストには必ずゴールデンテストを)。セキュリティ上の問題は SECURITY.md に従って非公開で報告してください。
📈 Star の推移
🍔 コミュニティ
スクレイピングや AI エージェントに興味があれば、グループチャット(中国語)にぜひご参加ください。
グループが満員のときや QR コードの期限が切れているときは、issue を立てるか WeChat / QQ でお知らせください。
| group-1 | group-2 | group-3 | group-4 (2000 人の QQ グループ) |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
⚠️ 免責事項
- 本プロジェクトは学習および研究のみを目的としています。商用目的、その他いかなる違法な目的にも使用しないでください。
- 使用にあたっては、各プラットフォームのユーザー規約およびサービス利用規約、ならびにお住まいの地域の法令を遵守してください。他人のプライバシーに関わるデータを収集・拡散したり、プラットフォームに過大なリクエスト負荷をかけたりしないでください。
- 自動化された操作はプラットフォームのリスク制御を作動させ、CAPTCHA、レート制限、さらにはアカウントの凍結につながるおそれがあります。本プロジェクトの使用によって生じる一切の結果については、使用者が自らの責任で負うものとします。
- 本プロジェクトは上記のいずれのプラットフォームとも関係がなく、その許可や承認も受けていません。各プラットフォームの名称および商標は、それぞれの所有者に帰属します。



