第6章 補足:Google Nest Cam × go2rtc 連携の詳細手順(再現用)
Google Nest Cam の映像を go2rtc 経由で自宅サーバに取り込む手順。GCP OAuth 設定から Device Access Console、トークン取得、go2rtc での映像再生確認まで。
はじめに
本記事は、第6章 本編で触れた 「Google Nest Cam × go2rtc 連携」 の詳細手順をまとめた補足記事です。
実際の画面スクリーンショットを差し込みながら書くと想定以上に長くなったため、本編から切り出しています。
なお、Cloudflare公開・ブログ埋め込み・配信ON/OFF運用・事故防止などは本編に記載済みのため、本記事では省略します。
この記事でできるようになること
Google Nest Cam の映像を go2rtc 経由でブラウザから直接視聴できるようになります。
通常、Nest Cam の映像は Google Home アプリからしか見られません。 しかし、Google の Smart Device Management (SDM) API と go2rtc を組み合わせることで、自前のサーバ経由で映像をリアルタイム配信できるようになります。
なぜ go2rtc を使うのか
- WebRTC / MSE / HLS など複数プロトコルに対応 – ブラウザ埋め込みが簡単
- Nest Cam の WebRTC セッション確立を内部で自動処理 – SDM API の複雑な部分を吸収してくれる
- 軽量な Docker コンテナ1つで完結 – LXC や小型VMでも余裕で動く
- 音声あり/なしの切り替えや複数ストリーム定義が設定ファイル1つで管理できる
前提条件とコスト
| 項目 | 内容 |
|---|---|
| Googleアカウント | Nest Cam がセットアップ済みの Google Home に紐づいているもの |
| Google Home アプリ | カメラが登録済みで映像が見えている状態 |
| GCP アカウント | Google Cloud Platform にアクセスできること |
| Device Access Console | Google の Nest 開発者コンソール(後述) |
| go2rtc | Docker で動作(本編で構築済みの前提) |
| 登録費用 | 5ドル(1回のみ) – Device Access Console の利用料 |
全体の流れ(5ステップ)
全体像を先に把握しておくと迷いにくくなります。
Step 1: Google Cloud Platform (GCP) の設定
GCP上でプロジェクトを作成し、Smart Device Management API を有効化します。 OAuth 同意画面の構成と、認証情報(クライアントID / シークレット)の発行を行います。
📦 GCP OAuth 設定のスクリーンショット付き詳細手順は 有料コンテンツ: 自宅サーバ構築シリーズ に含まれています。
Step 2: Device Access Console の設定
Nest デバイスへの API アクセス権を管理するコンソールを設定します。 5ドルの登録料を支払い、プロジェクトを作成して Project ID(UUID形式) を取得します。
📦 Device Access Console の詳細な設定手順は 有料コンテンツ: 自宅サーバ構築シリーズ に含まれています。
Step 3: アクセストークンの取得(OAuth 2.0 フロー)
ブラウザで認可コード(Authorization Code)を取得し、curl でアクセストークン / リフレッシュトークンに交換します。
ここが最も技術的なパートで、URL構築やリダイレクト後の code 取得など、細かい手順があります。
📦 認可コードURL構築方法・curl コマンド全量は 有料コンテンツ: 自宅サーバ構築シリーズ に含まれています。
Step 4: API の動作確認(デバイス情報が取れるか)
取得したアクセストークンを使って devices.list API を叩き、Nest Cam のデバイス情報が取得できるか確認します。
ここで取得できる Device ID が、go2rtc の設定ファイルに必要になります。
📦 devices.list の curl コマンドとレスポンスの読み方は 有料コンテンツ: 自宅サーバ構築シリーズ に含まれています。
Step 5: go2rtc で映像が見えるか最終確認
go2rtc コンテナの起動状態を確認し、WebUI から Nest Cam の映像がリアルタイム再生できるか検証します。
📦 go2rtc の設定・起動・確認手順は 有料コンテンツ: 自宅サーバ構築シリーズ に含まれています。
補足: WebRTC セッションについて
Home アプリ移行世代の Nest Cam は WebRTC が基本プロトコル です。
SDM API で WebRTC を使う場合は GenerateWebRtcStream を利用しますが、SDP Offer の送信が必要で手作業での再現はかなり手間がかかります。
go2rtc を使えば、この WebRTC セッション確立を go2rtc が内部で自動処理 してくれるため、ユーザーは設定ファイルに認証情報を書くだけで映像を取得できます。
成功の判定基準
最終的に、以下の2つが揃っていれば「Nest Cam × go2rtc 連携」は完了です。
devices.listが成功する – Google 側の認証 / 権限 / Project ID が正しい- go2rtc の WebUI で映像が再生できる – go2rtc が WebRTC を確立できている
運用方針として、音声なし(nest_silent)を常用し、必要時のみ音声あり(nest_sound)に切り替えるのが扱いやすいです。
音声ありは AAC 変換が入るため、環境によっては負荷が上がることがあります。
ここまでのまとめ
- Google Nest Cam の映像を go2rtc 経由で取り込むには、GCP + Device Access Console + OAuth 2.0 の3層の設定が必要
- 5ドルの登録料以外はランニングコストなし
- go2rtc が WebRTC セッション確立を自動処理してくれるので、設定ファイルに認証情報を書くだけで映像取得が可能
- 「devices.list の成功」と「WebUI での映像再生」の2つで完了を判定できる
本編に戻って、Cloudflare経由の公開やブログ埋め込みの設定に進んでください。
自宅サーバ運用の全体像は 自宅サーバ運用の完全ガイド — Proxmox + Cloudflare Tunnel + Docker で個人ブログを公開し続ける にまとめています。Proxmox クラスタ・公開経路・Docker 本番化・障害対応までを 1 ページで通読できる Pillar ガイドです。
コメント