カラオケイベントを簡単にホストします
Syngは、バックエンドサーバー、 Webフロントエンド、再生クライアントで構成されるオールインワンカラオケソフトウェアです。 Karaokeのパフォーマーは、Web Frontendを使用してライブラリを検索し、キューに曲を追加できます。再生クライアントは、バックエンドサーバーから曲を取得し、順番に再生します。
YouTube 、 S3ストレージから曲を再生するか、ローカルファイルを共有することもできます。
再生クライアントは再生にMPVを使用しているため、 mp3+cdg 、 webm 、 mp4など、さまざまなファイル形式をプレイできます。
マトリックスルームに参加するか、更新通知とサポートについては、Mastodonでフォローしてください。
カラオケイベントをホストするには、再生クライアントを使用するだけです。 https://syng.rocksで公開されているインスタンスをサーバーとして使用できます。
クライアントをインストールするための好ましい方法は、Flathub経由です。
または、SyngはPythonパッケージインデックス(PYPI)を介してインストールできます。クライアントをインストールするときは、 clientフラグを含めることが必須です。
pip install 'syng[client]'
これにより、再生クライアント( syng client )と構成GUI( syng gui )の両方がインストールされます。
注: PYPI経由でインストールするときは、再生クライアントにMPVをインストールする必要があり、 mpvバイナリはPATHにある必要があります。
Windowsサポートは実験的ですが、リリースから現在のバージョンをダウンロードできます。インストールは必要ありませんexeを実行するだけです。
デフォルトの構成を使用して、カラオケイベントをホストできます。ただし、より高度な構成が必要な場合は、GUIを使用してSyngを構成するか、 ~/.config/syng/config.yamlを編集してテキストエディターを介して構成できます。次の設定があります。
server :接続するサーバーのURL。room :カラオケイベントの部屋コード。任意に選択することはできますが、一意でなければなりません。未使用の部屋はしばらくして削除されます。注:誰もが、部屋のコードにアクセスできるようになったすべての人がカラオケイベントに参加できます。secret :カラオケイベントの管理者パスワード。再生クライアントを部屋に再接続する場合は、これらが一致する必要があります。さらに、これにより、Webクライアントの「Advanced」の下で与えられた場合、Webクライアントに管理機能が解除されます。waiting_room_policy :1つはnone 、 optional 、 forced 。パフォーマーが再生キューに追加されたいが、すでに曲がキューになっている場合、待合室に追加することができます。この動作をnoneにし、パフォーマーはキューに複数の曲を持つことができ、 optionalパフォーマーに通知を提供し、自分で決定することができ、 forced毎回待合室に置くことができます。パフォーマーの現在の歌がキューを離れると、待合室からの曲がキューに追加されます。last_song :ISO 8601でnoneまたは時刻。キューに曲が追加され、その終了時間がこの値を超えると、拒否されます。preview_duration :すべての曲の前に、次のパフォーマーのための短いスライドがあります。これにより、数秒で表示される時間が設定されます。key :サーバーが接続する場合、プライベートモードまたは制限モードである場合、これによりクライアントが承認されます。プライベートサーバーは、不正な再生クライアントを拒否し、制限されたサーバーは、検索をクライアントのみに制限します。buffer_in_advance :高度でバッファリングする曲の数。qr_box_size :再生ウィンドウのQRコードの1つのボックス(ピクセルを考えてください)のサイズ。qr_position :再生ウィンドウのQRコードの位置。 bottom-left 、 bottom-right 、 top-left 、 top-rightの1つ。show_advanced :構成GUIで高度なオプションを表示します。一般的な構成に加えて、構成のsourcesキーの下に独自の構成があります。
構成は、次の設定でsources → youtubeの下で行われます。
enabled : trueまたはfalse 。channels :YouTubeチャネルのリスト。これが空でないリストの場合、Syngはこれらのチャネルのみを検索します。そうしないと、YouTube全体が全体として検索されます。tmp_dir :YouTubeビデオは再生前にダウンロードされます。これにより、YouTubeビデオが保存されているディレクトリが設定されます。max_res :ビデオの最大解像度。start_streaming : trueまたはfalse 。 true場合、ビデオが事前にキャッシュされていない場合、 mpvを使用してビデオを直接ストリーミングします。それ以外の場合、Syngはビデオがダウンロードされるのを待ちます。構成は、次の設定でsources → s3の下で行われます。
enabled : trueまたはfalse 。extensions :検索する拡張機能のリスト。カラオケソングの場合、そのオーディオとビデオ(CDGファイルなど)を別々に、 mp3+cdgを使用して、オーディオパーツがmp3ファイルであり、ビデオがcdgファイルであることを意味します。これを分離しないKaraokeの曲(MP4ファイルなど)の場合、 mp4を使用するだけです。endpoint :S3のエンドポイント。access_keyアクセスキー。secret_key :S3のシークレットキー。secure : true sslを使用している場合、そうでない場合はそうではありません。bucket :カラオケファイル用のバケット。index_file :s3のカラオケファイルのファイル名が含まれるキャッシュファイル。tmp_dir :カラオケファイルの一時的なダウンロードディレクトリ。構成は、次の設定を伴うsources → filesの下で行われます。
enabled : trueまたはfalse 。extensions :検索する拡張機能のリスト。カラオケソングの場合、そのオーディオとビデオ(CDGファイルなど)を別々に、 mp3+cdgを使用して、オーディオパーツがmp3ファイルであり、ビデオがcdgファイルであることを意味します。これを分離しないKaraokeの曲(MP4ファイルなど)の場合、 mp4を使用するだけです。dir :カラオケファイルが保存されるディレクトリ。 config:
key: ''
last_song: null
preview_duration: 3
room: <Random room code>
secret: <Random secret>
server: https://syng.rocks
waiting_room_policy: none
show_advanced: false
buffer_in_advance: 2
qr_box_size: 5
qr_position: bottom-right
sources:
files:
dir: .
enabled: false
extensions:
- mp3+cdg
s3:
access_key: ''
bucket: ''
enabled: false
endpoint: ''
extensions:
- mp3+cdg
index_file: ${XDG_CACHE_DIR}/syng/s3-index
secret_key: ''
secure: true
tmp_dir: ${XDG_CACHE_DIR}/syng
youtube:
channels: []
enabled: true
start_streaming: false
max_res: 720
tmp_dir: ${XDG_CACHE_DIR}/syng
独自のSyngサーバーをホストする場合は、それを行うことができますが、https://syng.rocksで公開されているSyngインスタンスを使用することもできます。
PIP経由でサーバーをインストールできます。
pip install 'syng[server]'
そして、経由で実行します:
syng server
または、Dockerを使用してサーバーを実行できます。ポート8080に耳を傾け、プライベートまたは制限として構成されている場合は/app/keys.txtでキーファイルを読み取ります。
docker run --rm -v /path/to/your/keys.txt:/app/keys.txt -p 8080:8080 ghcr.io/christofsteel/syng -H 0.0.0.0
構成は、コマンドライン引数を介して行われます。SyngServer syng server --helpを参照してください。
Syngは、パブリック、制限、プライベートの3つのモードで実行できます。これにより、どの再生クライアントがイベントを開始できるか、およびイベントにどのような機能があるかが制限されます。これには、Webクライアントには関係ありません。部屋コードにアクセスできるすべてのWebクライアントは、イベントに参加できます。承認は、 keys.txtのエントリを介して行われます
keys.txtファイルは、1行あたり1つのsha256暗号化されたパスワードを保持している単純なテキストファイルです。パスワードは16進価値として保存され、1行あたりの最初の64文字のみがサーバーによって読み取られます。残りを使用してコメントを追加できます。ファイルにキーを追加するには、 echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt 。