Skip to content

hideki711014/youtube_streaming

 
 

Repository files navigation

Railway経由でストリーミング配信をする方法

フォーク

  1. GitHub 上でこのリポジトリを自分のアカウントへフォークします。
  2. (コードをローカル編集したい場合のみ)フォークしたリポジトリをクローンし、仮想環境の構築や依存パッケージのインストールを行ってください。

音声ファイルと画像を入れ替える

  1. audio/ ディレクトリに配信したい MP3 を配置します(複数可、再生順はランダム)。
  2. display/ ディレクトリに静止画 image.jpg を配置します。初回起動時に自動で 480p/30fps・80kbps の120秒ループ動画に変換し、以降はそれを利用します。

Railwayでデプロイ

  1. GitHub にプッシュしたリポジトリを Railway の「New Project > Deploy from GitHub」で連携します。
  2. ビルド方式はデフォルト(Nixpacks)で構いませんが、必要に応じて Dockerfile を利用することも可能です。
  3. デプロイ後、Procfile に定義された worker: python main.py が自動的に起動し、配信プロセスがスタートします。

Railwayで変数を入れる

Railway プロジェクトの Variables に以下の環境変数を設定します。

  • YOUTUBE_STREAM_URL : YouTube Live の RTMP エンドポイント URL
  • YOUTUBE_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 の自動再起動に対応しています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 98.6%
  • Dockerfile 1.3%
  • Procfile 0.1%