Files
everything-claude-code/docs/ja-JP/skills/videodb/reference/capture.md
Claude d66b5fa480 docs: fix zh-CN parity — add 44 missing files to ja-JP
Add files present in zh-CN but missing from ja-JP:
- commands: claw, context-budget, devfleet, docs, projects, prompt-optimize, rules-distill (7 files)
- skills: regex-vs-llm-structured-text, remotion-video-creation, repo-scan, research-ops,
  returns-reverse-logistics, rules-distill, rust-patterns, rust-testing, skill-comply,
  skill-stocktake, social-graph-ranker, swift-actor-persistence, swift-concurrency-6-2,
  swift-protocol-di-testing, swiftui-patterns, team-builder, terminal-ops, token-budget-advisor,
  ui-demo, unified-notifications-ops, video-editing, videodb (+reference/*), visa-doc-translate,
  workspace-surface-audit, x-api (37 files)

Result: ja-JP now has 517 files vs zh-CN 412 files.
zh-CN parity: 0 missing files (complete parity achieved).
2026-05-17 02:31:40 -04:00

6.6 KiB
Raw Blame History

キャプチャガイド

概要

VideoDB CaptureはAI処理機能を備えたリアルタイムの画面とオーディオの録画をサポートする。デスクトップキャプチャは現在macOSのみサポートされている。

コードレベルの詳細SDKメソッド、イベント構造、AIパイプラインについては capture-reference.md を参照。

クイックスタート

  1. WebSocketリスナーを起動するpython scripts/ws_listener.py --clear &
  2. キャプチャコードを実行する(以下の完全なキャプチャワークフローを参照)
  3. イベントの書き込み先/tmp/videodb_events.jsonl

完全なキャプチャワークフロー

WebhookやポーリングLiveEventは不要。WebSocketがセッションライフサイクルイベントを含むすべてのイベントを配信する。

重要な注意事項: CaptureClient はキャプチャ全体を通じて実行し続ける必要がある。ローカルレコーダーバイナリを実行し、画面/オーディオデータをVideoDBにストリーミングする。CaptureClient を作成したPythonプロセスが終了すると、レコーダーバイナリが終了し、キャプチャが静かに停止する。常にキャプチャコードを長期実行バックグラウンドプロセスとして実行し(例:nohup python capture_script.py &)、明示的に停止するまで生き続けるようにシグナル処理(asyncio.Event + SIGINT/SIGTERM)を使用すること。

  1. バックグラウンドでWebSocketリスナーを起動する。古いイベントをクリアするために --clear フラグを使用する。WebSocket IDファイルが作成されるまで待つ。

  2. WebSocket IDを読み取る。このIDはキャプチャセッションとAIパイプラインに必要。

  3. キャプチャセッションを作成する。デスクトップクライアント用のクライアントトークンを生成する。

  4. トークンを使用してCaptureClientを初期化する。マイクと画面キャプチャの権限をリクエストする。

  5. チャネルをリストアップして選択する(マイク、ディスプレイ、システムオーディオ)。ビデオとして永続化したいチャネルに store = True を設定する。

  6. 選択したチャネルでセッションを開始する

  7. capture_session.active が見えるまでイベントを読み取ることでセッションがアクティブになるまで待つ。このイベントには rtstreams 配列が含まれる。セッション情報セッションID、RTStream IDをファイルに保存する/tmp/videodb_capture_info.json)。他のスクリプトがそれを読み取れるようにする。

  8. プロセスを生かし続ける。明示的に停止されるまでプロセスをブロックするために、SIGINT/SIGTERM のシグナルハンドラーで asyncio.Event を使用する。後で kill $(cat /tmp/videodb_capture_pid) でプロセスを停止できるようにPIDファイルを書く/tmp/videodb_capture_pid。PIDファイルは実行のたびに上書きして、再実行時に常に正しいPIDを持つようにする。

  9. 各RTStreamの音声インデックスとビジュアルインデックスを作成するAIパイプラインを起動する(別のコマンド/スクリプトで。保存されたセッション情報ファイルからRTStream IDを読み取る。

  10. ユースケースに応じてリアルタイムイベントを読み取るカスタムイベント処理ロジックを書く(別のコマンド/スクリプトで)。例:

    • visual_index が「Slack」を言及したときにSlackアクティビティをログに記録する
    • audio_index イベントが到着したときに議論をサマリーする
    • transcript に特定のキーワードが現れたときにアラートをトリガーする
    • 画面の説明からアプリの使用状況を追跡する
  11. キャプチャを停止する - 完了したら、キャプチャプロセスにSIGTERMを送信する。シグナルハンドラーで client.stop_capture()client.shutdown() を呼び出すべき。

  12. エクスポートを待つ - capture_session.exported が見えるまでイベントを読み取る。このイベントには exported_video_idstream_urlplayer_url が含まれる。キャプチャを停止した後、これには数秒かかる場合がある。

  13. WebSocketリスナーを停止する - エクスポートイベントを受信したら、kill $(cat /tmp/videodb_ws_pid) でクリーンに終了させる。


シャットダウンシーケンス

すべてのイベントがキャプチャされることを確認するために、適切なシャットダウンシーケンスが重要:

  1. キャプチャセッションを停止するclient.stop_capture() 次に client.shutdown()
  2. エクスポートイベントを待つcapture_session.exported/tmp/videodb_events.jsonl でポーリングする
  3. WebSocketリスナーを停止するkill $(cat /tmp/videodb_ws_pid)

エクスポートイベントを受信する前にWebSocketリスナーを停止しないこと。そうしないと最終的なビデオURLを受け取れなくなる。


スクリプト

スクリプト 説明
scripts/ws_listener.py WebSocketイベントリスナーJSONLにダンプ

ws_listener.pyの使用方法

# Start listener in background (append to existing events)
python scripts/ws_listener.py &

# Start listener with clear (new session, clears old events)
python scripts/ws_listener.py --clear &

# Custom output directory
python scripts/ws_listener.py --clear /path/to/events &

# Stop the listener
kill $(cat /tmp/videodb_ws_pid)

オプション:

  • --clear:起動前にイベントファイルをクリアする。新しいキャプチャセッションを開始するときに使用する。

出力ファイル:

  • videodb_events.jsonl - すべてのWebSocketイベント
  • videodb_ws_id - WebSocket接続IDws_connection_id パラメータに使用)
  • videodb_ws_pid - プロセスIDリスナーの停止に使用

機能:

  • 接続が切れた場合の指数バックオフによる自動再接続
  • SIGINT/SIGTERMでのグレースフルシャットダウン
  • プロセス管理のためのPIDファイル
  • 接続状態のログ記録