Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Jitsi Meet × Google Sheets で作るシンプルなペットカメラ

License

pondashicom/petpon

Repository files navigation

PET-PON

Jitsi Meet × Googleスプレッドシートで作る、サーバー不要のペットカメラ

  • スプレッドシートのA2セルが空 のとき = 配信 OFF(待機)
  • A2セルに何か書く = 配信 ON(自動で Jitsi 起動)
  • 視聴用URLとシートURLは QR で自分の端末にだけ配布

「外出先からペットの様子をちょっとだけ見たいときがある」──そんなニーズに。

Watch the video


特長

  • サーバーやAPIは不要です:特に難しい設定もなし
  • シンプル運用:操作は スプレッドシートのA2セルに書く/消す だけ
  • 視聴URLはQRで:視聴URLとシートURLはQR 表示するので読み取ってブックマークしてからお出かけ

インストール

Windows用インストーラーは GitHub Actions が自動生成します。通常は 手元でのビルドは不要 です。

取得手順

  1. リポジトリの Actions タブを開く
    ワークフロー名: Build Windows Installer
  2. main 向けの最新の ?? successful 実行を開く
  3. ページ下部 Artifactspetpon-windows をダウンロード
  4. 展開すると以下が含まれます
    • PET-PON-Setup-<version>.exe(NSIS インストーラー)
    • petpon-<version>-win.zip(ポータブル版・任意)

タグ(v*)でのビルドがある場合は Releases に同梱されることがあります。

注意

  • 署名なしビルドのため、初回実行時に SmartScreen 警告が出る場合があります。発行元を確認のうえ実行してください。
  • 手元でビルドしたい場合は npm run dist -- --win を使用できます(詳細は「開発者向け」を参照)。

使い方

1) 新規のGoogleスプレッドシートを作成します

  • A2セルをスイッチに使用します(空=OFF / 文字あり=ON)
  • ほかは空欄でなにもしなくてだいじょうぶです。(逆になにか書いてあっても問題ありません)
  • 画面右上の共有ボタン を押して以下のようにします
    • オーナーは編集権限:自分のみ
    • 一般的なアクセス→リンクを知っている全員に閲覧権限をつけてください
    • ここで全員に編集権限を付けてしまうとだれでも編集できるので要注意です
  • リンクをコピーから共有リンクをコピーしておきましょう

2) PET-PON を起動

  • インストーラーをつかってインストールしたら、アイコンをダブルクリックします。

3) (初回起動時のみ)Googleアカウントでjitsi Meetにサインイン

-- スプレッドシートをつくったアカウントと同じGoogleアカウントの認証情報をメモしておきましょう -- 画面右上のmeet.jit.si今すぐ起動をクリックします -- ミーティングウインドウが開くので私はホストですをクリックします -- Googleアカウントでサインインします -- サインインが完了するとミーティングが始まります -- カメラの許可とマイクの許可が出る場合がありますので許可してください -- 一回ミーティングを終了させてウインドウをミーティングウインドウを閉じましょう -- ※別にgithubアカウントでサインインしても構いません -- これで次回起動時以降はサインインは求められない(はず)です。

4) 初期設定をします

-- 「ルーム名生成」 でランダムなルーム名を生成します -- スプレッドシートの共有URL を貼り付けて「保存」を押します -- QR コードが生成されるのでスマートフォンで読み取る

  • 画面右側に「Jitsi 視聴URL」と「Sheet 閲覧URL」の QR が出ます
  • スマホで読み取り → 視聴URLをブックマークしておいてください。スプレッドシードはスターをつけるなどしてあとから開けるようにしておきましょう -- 視聴側のスマートフォンでGoogleスプレッドシートの編集権限をもったアカウントでサインインしておいてください

5) 監視開始

  • 「監視開始」 を押すと A2 セルになにか書かれていないかという監視を開始します(既定 3 秒)

6) 外出前に一度視聴がただしく開始できるかテストしておきましょう。

7) 外出中にスマートフォンからミーティングを起動して視聴する

  • 見たいとき -- スプレッドシートを開いて A2セル に なんらかの 文字 入れます -- それを検知した監視側がミーティングを開きはじめるので、数秒待ちます -- 視聴URLをブラウザで開くと、ミーティングが始まります
  • 止めたいとき -- スプレッドシートを開いて A2セル を空 にします -- それを検知した監視側がミーティングから退出します -- 視聴URLにもどってミーティングを終了させておきましょう

詳細

インジケーター

  • =監視中 / =停止
  • =配信中(Jitsi 起動) / =待機

メニュー(表示)

  • Reload / Force Reload / Toggle DevTools
  • キャッシュ削除(挙動が怪しいとき)
  • Jitsi セッション初期化(Cookie/認証の再初期化)
  • アプリ終了

セキュリティ運用のコツ

  • このミーティングはURL そのものがになっています。QRコードで読み取ったURLは自分の端末だけで運用しましょう。SNSやメールに載せないようにしてください。
  • 「このソフトいいね!」といっていただけるのはうれしいですが画面のスクリーンショットなどをSNSに掲載すると流出の危険性があるので注意してください

インストール / ビルド

開発起動

npm install
npm start

Windows 用インストーラ作成

npm run dist
  • Electron Builder 設定は package.json"build" に記載
  • アイコン:assets/icons/pet-pon.ico(Windows)/ assets/icons/pet-pon_512.png(他OS)

仕組み

  • メイン処理は Electron(main.js)
  • A2セルの監視は CSV エクスポートをポーリング
    • 共有URL → CSV の エクスポートURLへ自動変換
    • もしくは 「ウェブに公開(CSV)」 のURLをそのまま使用
  • A2 が 空→OFF / 文字あり→ON で、Jitsi(meet.jit.si/<room>#...)を自動起動/終了
  • 監視中は prevent-app-suspension、配信中は prevent-display-sleep でスリープ抑止

既知の仕様・注意

  • 初回サインイン/許可は人手が必要(Jitsi 側の仕様)
  • ネットワークや meet.jit.si の状態によっては、入室に時間がかかる/再試行が必要
    • 簡易ウォッチドッグで 自動再接続 を数回試みます
  • macOS / Linux でも動く設計ですが、配布・検証は Windowsで行っています。

トラブルシュート

Q. Jitsi が真っ黒/ログインから進まない
A. メニュー → Jitsi セッション初期化 → 再度サインイン。
 ポップアップがブロックされると止まります。子ウィンドウの認証を完了してください。

Q. 参加依頼中のまま
A. 画面の 「私はホストです」 を押すか、サインインを完了してください。
 止まる場合は上の セッション初期化 → 再試行

Q. カメラ/マイクが毎回 OFF になる
A. 初回の権限許可を済ませると安定します。
 ブラウザ側でデバイス許可が拒否されていると ON になりません。

Q. 監視が止まる/PC がスリープする
A. 監視中/配信中は抑止しますが、**強制スリープ(蓋閉じ・長時間放置・バッテリー切れ)**は防げません。


開発メモ

Node / Electron

  • electron ^30.0.0
  • electron-store 8.1.0(CommonJS 互換のため v8 固定)
  • iconv-lite ^0.6.3

主要ファイル

/assets/icons/           アイコン(.ico / .png)
/renderer/index.html     UI
/renderer/styles.css     スタイル(ダーク、2カラム)
/renderer/renderer.js    ブリッジ / UI ロジック
main.js                  監視・Jitsi 起動・ウォッチドッグ
preload.js               IPC ブリッジ(contextIsolation=true)

ライセンス / 商標

  • MIT LicenseLICENSE 参照)
  • “Jitsi” は 8x8, Inc. の商標です。
    本プロジェクトは公式とは無関係の、個人の実験的ユーティリティです。

コントリビュート

Issue / PR 歓迎。UI・安定化・macOS/Linux 動作確認など、いただけると助かります。


About

Jitsi Meet × Google Sheets で作るシンプルなペットカメラ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published