doubao-2api — 豆包をOpenAI形式APIへ変換するブリッジ
概要
doubao-2apiは、Web側で実装された難読化・署名・指紋収集ロジックを再現して、豆包(中国系チャット系サービス)向けのリクエストをOpenAI互換のAPIとして扱えるようにするブリッジです。Playwrightをヘッドレスで動かし、a_bogus相当の署名生成、静的/動的なデバイス指紋、msTokenの周期的更新などを自動化。playwright-stealth等の検出回避を組み合わせ、複数Cookieによるアカウントローテーション、ネイティブなストリーミング応答(既存のOpenAIクライアント互換)や状態保持を提供します。Dockerで簡単に起動でき、FastAPI上でAPIを公開する設計です。
リポジトリの統計情報
- スター数: 9
- フォーク数: 1
- ウォッチャー数: 9
- コミット数: 6
- ファイル数: 11
- メインの言語: Python
主な特徴
- Playwrightヘッドレスでa_bogus相当の署名と端末指紋を生成・更新
- OpenAI互換APIインターフェース(ストリーミング対応)を提供
- 高度なステルス(playwright-stealth)と多アカウントCookieローテーションに対応
- Docker化で手軽にデプロイ、環境変数で設定可能
技術的なポイント
doubao-2apiは「ブラウザを自動化して正規のリクエストを再現する」アプローチを採ります。主にPlaywright(Python)を利用してヘッドレスブラウザを立ち上げ、JavaScriptで実装された署名生成ロジック(a_bogus相当)を実行して必要なパラメータを算出します。staticな「デバイス指紋」は初期的に固定値やブラウザAPIの挙動を整えることで再現し、msTokenなどの動的トークンはPlaywrightセッションを介して定期的にリフレッシュ・保存します。検出回避のためにplaywright-stealthなどのプラグインやカスタムヘッダ、振る舞いのチューニングを行い、サーバ側のbot検知を回避しやすくしています。
API側はFastAPIで実装され、OpenAIのAPIフォーマットに互換性を持たせることで既存のクライアントやライブラリからそのまま利用可能です。レスポンスのストリーミングはネイティブにサポートしており、チャット系の逐次応答をクライアントに転送する設計です。状態保持(会話セッション)を組み合わせることで、連続した文脈を維持した対話が可能です。
運用面ではCookieを外部で準備する必要があり、複数アカウントを用意してローテーションさせることで負荷分散やレート制限回避を図れます。Dockerfileや.env.exampleが用意されており、環境変数でPlaywrightの挙動やCookieパス、ログレベル等を設定してワンコマンドでデプロイ可能です。ライセンスはApache-2.0なので商用利用や改変が行いやすい一方、逆向対象のサービス利用規約や法的・倫理的な側面には注意が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .env: file
- .env.example: file
- Dockerfile: file
- LICENSE: file
- README.md: file
…他 6 ファイル
まとめ
Playwrightで署名と指紋を再現し、OpenAI互換APIで安全に使えるようにする実用的なブリッジ実装です。
リポジトリ情報:
- 名前: doubao-2api
- 説明: 无头浏览器 (Playwright) 逆向 a_bogus 风控签名、静态设备指纹、动态 msToken 刷新、高级反检测伪装 (playwright-stealth)、需自备 Cookie (支持多账号轮询)、兼容 OpenAI 格式 API、原生流式输出、有状态会话保持、Docker 一键部署
- スター数: 9
- 言語: Python
- URL: https://github.com/lzA6/doubao-2api
- オーナー: lzA6
- アバター: https://avatars.githubusercontent.com/u/128880206?v=4