Führen Sie leicht Karaoke -Events aus
Syng ist eine All-in-One-Karaoke-Software, die aus einem Backend-Server , einem Web-Frontend und einem Playback-Client besteht. Karaoke -Darsteller können eine Bibliothek mit dem Web -Frontend durchsuchen und der Warteschlange Songs hinzufügen. Der Playback -Client ruft Songs vom Backend -Server ab und spielt sie in der Reihenfolge.
Sie können Songs von YouTube , einem S3 -Speicher, abspielen oder einfach lokale Dateien teilen.
Der Playback -Client verwendet MPV für die Wiedergabe und kann daher eine Vielzahl von Dateiformaten abspielen, z. B. mp3+cdg , webm , mp4 , ...
Schließen Sie sich unserem Matrix -Raum an oder folgen Sie uns auf Mastodon, um Benachrichtigungen und Unterstützung zu aktualisieren.
Um ein Karaoke -Event zu veranstalten, müssen Sie nur den Wiedergabedrient verwenden. Sie können die öffentlich verfügbare Instanz unter https://syng.rocks als Server verwenden.
Die bevorzugte Art, den Client zu installieren, ist über Flathub.
Alternativ können Syng über den Python Package Index (PYPI) installiert werden. Bei der Installation des Clients ist es obligatorisch, das client -Flag einzuschließen:
pip install 'syng[client]'
Dies installiert sowohl den Playback -Client ( syng client ) als auch eine Konfigurations -GUI ( syng gui ).
HINWEIS: Wenn Sie über PYPI installiert werden, müssen Sie MPV auf dem Playback -Client installieren, und die mpv -Binärin muss sich auf Ihrem PATH befinden.
Windows Support ist experimentell, aber Sie können die aktuelle Version von Releases herunterladen. Keine Installation erforderlich, Sie können einfach das exe ausführen.
Sie können Karaoke -Ereignisse mithilfe der Standardkonfiguration hosten. Wenn Sie jedoch eine erweiterte Konfiguration benötigen, können Sie entweder Syng mit der GUI oder über einen Texteditor konfigurieren, indem Sie ~/.config/syng/config.yaml bearbeiten. Es gibt die folgenden Einstellungen:
server : URL des Servers, mit dem sie eine Verbindung herstellen soll.room : Der Raumcode für Ihr Karaoke -Event. Kann willkürlich ausgewählt werden, muss aber einzigartig sein. Unbenutzte Zimmer werden nach einiger Zeit gelöscht. Hinweis: Jeder, der Zugriff auf den Raumcode hat, kann dem Karaoke -Event beitreten.secret : Das Administrator Passwort für Ihr Karaoke -Ereignis. Wenn Sie sich wieder mit einem Wiedergabedatenkunden in einen Raum verbinden möchten, müssen diese übereinstimmen. Darüber hinaus werden die Verwaltungsfunktionen für einen Web -Client unter "Fortgeschrittenen" im Web -Client zur Verfügung gestellt.waiting_room_policy : Eine von none , optional , forced . Wenn ein Darsteller in die Wiedergabewarteschlange hinzugefügt werden möchte, aber bereits eine Song -Warteschlange hat, können er dem Wartezimmer hinzugefügt werden. none deaktiviert dieses Verhalten und die Darsteller können mehrere Songs in der Warteschlange haben, optional gibt dem Darsteller eine Benachrichtigung und sie können sich selbst entscheiden, und forced wird jedes Mal in den Wartezimmer. Sobald das aktuelle Lied eines Performers die Warteschlange verlässt, wird das Lied aus dem Wartezimmer der Warteschlange hinzugefügt.last_song : none oder eine Zeit in ISO 8601. Wenn ein Lied zur Warteschlange hinzugefügt wird und seine Endzeit diesen Wert überschreitet, wird es abgelehnt.preview_duration : Vor jedem Song gibt es eine kurze Folie für den nächsten Darsteller. Dies setzt, wie lange es in Sekunden gezeigt wird.key : Wenn der Server eine Verbindung herstellt, befindet sich eine Verbindung im privaten oder eingeschränkten Modus, dadurch wird der Client genehmigt. Der private Server lehnt nicht autorisierte Wiedergabeclients ab, eingeschränkte Server beschränken die Suche nur auf Client .buffer_in_advance : Wie viele Songs sollten in Fortgeschrittene gepuffert werden.qr_box_size : Die Größe eines Box (denken Sie an Pixel) des QR -Code im Wiedergabefenster.qr_position : Position des QR -Code im Wiedergabebergenfenster. Eine der bottom-left , bottom-right , top-left , top-right .show_advanced : Zeigen Sie erweiterte Optionen in der Konfigurations -GUI. Zusätzlich zur allgemeinen Konfiguration hat eine eigene Konfiguration unter dem sources der Konfiguration.
Die Konfiguration erfolgt unter sources → youtube mit den folgenden Einstellungen:
enabled : true oder false .channels : Liste der YouTube -Kanäle. Wenn es sich um eine nicht leere Liste handelt, wird Syng nur diese Kanäle durchsucht, andernfalls wird YouTube als Ganzes durchsucht.tmp_dir : YouTube -Videos werden vor der Wiedergabe heruntergeladen. Dies setzt das Verzeichnis, in dem YouTube -Videos gespeichert werden.max_res : Maximale Auflösung eines Videos.start_streaming : true oder false . Wenn true , werden Videos direkt mit mpv gestreamt, wenn das Video vorher nicht zwischenstrahlt wird. Andernfalls wartet Syng darauf, dass das Video heruntergeladen wird. Die Konfiguration erfolgt unter sources → s3 mit den folgenden Einstellungen:
enabled : true oder false .extensions : Liste der zu durchsuchenden Erweiterungen. Für Karaoke -Songs, die separate Audio und Video (z. B. CDG -Dateien), können Sie mp3+cdg verwenden, um zu sagen, dass der Audio -Teil eine mp3 -Datei ist und das Video eine cdg -Datei ist. Für Karaoke -Songs, die dies nicht trennen (z. B. MP4 -Dateien), können Sie einfach mp4 verwenden.endpoint : Endpunkt des S3.access_key Access -Schlüssel für den S3.secret_key : Secret Key für den S3.secure : Wenn true ssl verwendet, sonst nicht.bucket : Eimer für die Karaoke -Dateien.index_file : Cache -Datei, die die Dateinamen der Karaoke -Dateien in der S3 enthält.tmp_dir : Temporäres Download -Verzeichnis der Karaoke -Dateien. Die Konfiguration erfolgt unter sources → files mit den folgenden Einstellungen:
enabled : true oder false .extensions : Liste der zu durchsuchenden Erweiterungen. Für Karaoke -Songs, die separate Audio und Video (z. B. CDG -Dateien), können Sie mp3+cdg verwenden, um zu sagen, dass der Audio -Teil eine mp3 -Datei ist und das Video eine cdg -Datei ist. Für Karaoke -Songs, die dies nicht trennen (z. B. MP4 -Dateien), können Sie einfach mp4 verwenden.dir : Verzeichnis, wo die Karaoke -Dateien gespeichert werden. 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
Wenn Sie Ihren eigenen Syng -Server hosten möchten, können Sie dies tun. Sie können jedoch auch die öffentlich verfügbare Syng -Instanz unter https://syng.rocks verwenden.
Sie können den Server über PIP installieren:
pip install 'syng[server]'
Und dann rennen Sie:
syng server
Alternativ können Sie den Server mit Docker ausführen. Es hört auf Port 8080 zu und liest eine Schlüsseldatei unter /app/keys.txt , wenn sie als privat oder eingeschränkt konfiguriert werden.
docker run --rm -v /path/to/your/keys.txt:/app/keys.txt -p 8080:8080 ghcr.io/christofsteel/syng -H 0.0.0.0
Die Konfiguration erfolgt über Befehlszeilenargumente, siehe syng server --help für einen Überblick.
Syng kann in drei Modi ausgeführt werden: öffentlich, eingeschränkt und privat. Dies schränkt, welche Wiedergabe Kunden eine Veranstaltung starten können und welche Funktionen die Veranstaltung hat. Dies hat keinen Einfluss auf die Web -Clients. Jeder Web -Client, der Zugriff auf den Raumcode hat, kann der Veranstaltung beitreten. Die Autorisierung erfolgt über einen Eintrag in der keys.txt
Die Datei keys.txt ist eine einfache Textdatei, die ein sha256 -verschlüsselter Passwort pro Zeile enthält. Passwörter werden als Hex -Wert gespeichert und nur die ersten 64 Zeichen pro Zeile werden vom Server gelesen. Sie können den Rest verwenden, um Kommentare hinzuzufügen. Um der Datei einen Schlüssel hinzuzufügen, können Sie einfach echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt verwenden echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .