Youtubeで24時間365日ライブ配信し続ける、オンライン自習室! 視聴者はライブチャットからコマンドを打つことで自由に入退室できます。
- 本番環境:
youtube-study-space
- テスト環境:
test-youtube-study-space
- 本番環境:Tokyo (ap-northeast-1) リージョン
- テスト環境:N. Virginia (us-east-1) リージョン
- テスト環境:
TEST_README.md
- 本番環境:
PRODUCTION_README.md
- ルームの入室状況
- ライブ配信用youtubeチャンネルのAPIアクセス情報
- Bot用youtubeチャンネルのAPIアクセス情報
- ラインBotのアクセス情報
- youtubeライブ配信の情報
- オンライン作業部屋のユーザー情報
- 入退室ログ
- システムconfig
- デフォルト入室時間
- 設定可能な最大入室時間
- 設定可能な最小入室時間
- 席数
- その他
- configコレクション
- constants
- credentials
- roomsコレクション
- default
- seats(席情報の配列)
- 席番号
- 作業名
- 表示ユーザー名
- ユーザーID
- 入室日時
- 自動退室予定時刻
- 席の背景色のカラーコード
- seats(席情報の配列)
- default
- usersコレクション
- ユーザーのyoutubeチャンネルIDがドキュメントID
- historyコレクション(そのユーザーの行動ログ)
- 行動の種類(入室・退室など)
- 日時
- 行動の詳細
- 当日の累計作業時間
- 累計作業時間
- ランク表示設定(bool)
- 登録日
- 最終入室日時
- 最終退室日時
- historyコレクション(そのユーザーの行動ログ)
- ユーザーのyoutubeチャンネルIDがドキュメントID
cloud schedulerにより毎分実行される。 入室中のユーザーから,自動退室予定時刻を過ぎているユーザーを発見して,退室処理をする。
monitorからAPIで呼ばれる。 ルームの状況および最大席数などの情報を返す。
cloud schedulerにより毎日0時0分に実行される。 全ユーザーのデイリー作業時間を0にリセットする。
cloud schedulerにより毎分実行される。 ライブ配信の状態がactiveであるかどうかチェックする。 activeでない場合はLINEで通知する。
monitorにより必要な時にAPIで呼ばれる。 monitor側で席数を変更すべきと判断したときの、希望の席数をfirestoreに保存する。
Lambda関数と同じregionのDyanamoDBテーブルであること!
- Firestoreのアクセス情報(サービスアカウント)のjson文字列
注意:json内で出てくるprivate keyの値の文字列内のエスケープは調整する必要があった気がする。
- /organize_database
- /reset_daily_total_study_time
- /rooms_state
- /check_live_stream_status
- call_lambda_function_organize_database:
* * * * *
- call_lambda_function_reset_daily_total_study_time:
0 0 * * *
- scheduledFirestoreExport:
every 24 hours (Asia/Tokyo)
- call_lambda_function_check_live_stream_status:
* * * * *
cloud scheduler + Pub/Subにより毎日実行される。 Firestoreのデータをエクスポートする。
- ローカルでNext.jsのサーバーを立てる。
- public/audio/lofigirl/に音声ファイルを入れておくこと。
- OBS内蔵のブラウザを使用する
- 「OBSを介して音声を制御する」を有効にする(じゃないとBGMが配信に流れない)
- リンクに、ローカルで起動しているyoutube-monitorのサーバーのアドレスを入力する
- マイクは必ずOFFにする
- カメラをソースとして登録したシーンは絶対に登録しない。 OBSは配信専用として使う。 当たり前だけど、本番配信中にシーンいじるとそれが映像に反映される(一回やらかした)
すぐに配信を始めると、少し映像ストリームが途切れただけで勝手にライブ配信が終了してしまい無限に配信できないので、「SCHEDULE STREAM」から配信予定を立てて、配信を開始する。 こうすることで途中何かのトラブルである程度の時間OBSからの映像送信が途切れてもライブ配信が勝手に終了することはない。