- GitHub 上でこのリポジトリを自分のアカウントへフォークします。
- (コードをローカル編集したい場合のみ)フォークしたリポジトリをクローンし、仮想環境の構築や依存パッケージのインストールを行ってください。
audio/ディレクトリに配信したい MP3 を配置します(複数可、再生順はランダム)。display/ディレクトリに静止画image.jpgを配置します。初回起動時に自動で 480p/30fps・80kbps の120秒ループ動画に変換し、以降はそれを利用します。
- GitHub にプッシュしたリポジトリを Railway の「New Project > Deploy from GitHub」で連携します。
- ビルド方式はデフォルト(Nixpacks)で構いませんが、必要に応じて Dockerfile を利用することも可能です。
- デプロイ後、
Procfileに定義されたworker: python main.pyが自動的に起動し、配信プロセスがスタートします。
Railway プロジェクトの Variables に以下の環境変数を設定します。
YOUTUBE_STREAM_URL: YouTube Live の RTMP エンドポイント URLYOUTUBE_STREAM_KEY: 対応するストリームキーDISCORD_WEBHOOK_URL: 任意。設定すると起動・停止通知および日次ステータスを Discord に送信します。
これらを設定してデプロイが完了すると、audio/ と display/ の内容を組み合わせた配信が自動的に開始されます。静止画は 480p/30fps の80kbps、音声は 64kbps AAC でエンコードされ、曲間には 2 秒の無音が挿入されます。
- 静止画を自動で 480p/30fps・80kbps のループ動画に変換し、CPU負荷を抑えたまま配信できます。
- 音声は MP3 を再生しながら 64kbps AAC に変換、曲間には必ず 2 秒の無音を挿入します。
- Discord Webhook を設定すると起動・停止通知と日次ステータスを送信します。
- 24時間稼働を想定したリトライ制御、FFmpeg の自動再起動に対応しています。