Skip to content

キャプチャブリッジ API

キャプチャルーターは、N.E.K.O. Electron レンダラーのキャプチャブリッジに対する HTTP 入口です。Linux の pure Wayland など、ネイティブキャプチャバックエンドが別アプリのウィンドウを読み取れない場合に GalGame プラグインが使用します。

WARNING

これはファーストパーティー用のローカルブリッジ契約であり、汎用スクリーンショット API ではありません。両エンドポイントはループバッククライアントだけを受け入れ、接続済みの N.E.K.O. Electron レンダラーがメイン WebSocket 経由で処理する必要があります。非ループバックの呼び出し元には HTTP 403 が返ります。

ルート一覧

メソッドパス用途
GET/api/capture/healthキャプチャ可能なレンダラーが接続中か確認する
POST/api/capture/screenshot指定したデスクトップソースのキャプチャをレンダラーへ要求する

ヘルス

レンダラーが登録済みの場合:

http
GET /api/capture/health
json
{"success": true, "available": true}

レンダラーがない場合は HTTP 503

json
{"success": false, "available": false, "error": "no_renderer"}

ソースをキャプチャ

http
POST /api/capture/screenshot
Content-Type: application/json

{
  "target_id": "window:123456:0",
  "pid": 4242,
  "title": "Example Game"
}
フィールド要件
target_idinteger または string必須。文字列へ正規化され、長さ 1 以上かつブリッジ上限以内
pidinteger必須、0 より大きい値
titlestring省略可能、最大 512 文字、既定値 ""

未知のフィールドは拒否されます。target_id はプラグインバックエンドが取得したネイティブウィンドウハンドル、または Electron desktopCapturer の source ID です。ソース解決はレンダラーが担当し、HTTP ルーター自体はデスクトップをキャプチャしません。

成功時は画像 data URL と任意のレンダラーメタデータを返します:

json
{
  "success": true,
  "image": "data:image/jpeg;base64,...",
  "width": 1920,
  "height": 1080,
  "source_id": "window:123456:0"
}

widthheightsource_id は、レンダラーが有効な値を返した場合だけ含まれます。

エラーレスポンス

ステータスerror意味
400invalid_jsonリクエスト本文が有効な JSON ではない
403loopback_only呼び出し元がループバッククライアントではない
422validation_error本文フィールドまたは target_id の長さが不正
502source_not_foundレンダラーが指定デスクトップソースを見つけられない
502bridge_errorキャプチャブリッジのその他の上流エラー
502empty_imageレンダラーが使用可能な画像を返さなかった
503no_rendererキャプチャ可能なレンダラーが接続されていない
504renderer_timeoutブリッジのタイムアウトまでにレンダラーが応答しなかった
500internal_error予期しないサーバー側エラー

ブリッジはメッセージタイプに記載された WebSocket の capture_bridge_statuscapture_bridge_response、サーバー側キャプチャ要求メッセージを使います。返される画像はユーザーの機密画面内容として扱い、ログに記録しないでください。