Organisez facilement des événements de karaoké
Syng est un logiciel de karaoké tout-en-un, composé d'un serveur backend , d'un frontend Web et d'un client de lecture . Les interprètes de karaoké peuvent rechercher une bibliothèque à l'aide du Frontend Web et ajouter des chansons à la file d'attente. Le client de lecture récupère les chansons du serveur backend et les joue dans l'ordre.
Vous pouvez jouer des chansons de YouTube , un stockage S3 ou simplement partager des fichiers locaux.
Le client de lecture utilise MPV pour la lecture et peut donc lire une variété de formats de fichiers, tels que mp3+cdg , webm , mp4 , ...
Rejoignez notre salle Matrix ou suivez-nous sur Mastodon pour les notifications et le support de mise à jour.
Pour organiser un événement de karaoké, il vous suffit d'utiliser le client de lecture. Vous pouvez utiliser l'instance accessible au public sur https://syng.rocks en tant que serveur.
La façon préférée d'installer le client est via Flathub.
Alternativement, Syng peut être installé via l' index Python Package (PYPI). Lors de l'installation du client, il est obligatoire d'inclure le drapeau client :
pip install 'syng[client]'
Cela installe à la fois le client de lecture ( syng client ) et une interface graphique de configuration ( syng gui ).
Remarque: Lors de l'installation via PYPI, vous devez faire installer le MPV sur le client de lecture et le binaire mpv doit être sur votre PATH .
La prise en charge de Windows est expérimentale, mais vous pouvez télécharger la version actuelle à partir des versions. Aucune installation nécessaire, vous pouvez simplement exécuter l' exe .
Vous pouvez héberger des événements de karaoké en utilisant la configuration par défaut. Mais si vous avez besoin d'une configuration plus avancée, vous pouvez soit configurer Syng à l'aide de l'interface graphique ou via un éditeur de texte en modifiant ~/.config/syng/config.yaml . Il y a les paramètres suivants:
server : URL du serveur auquel se connecter.room : Le code de la salle pour votre événement de karaoké. Peut être choisi arbitrairement, mais doit être unique. Les chambres inutilisées seront supprimées après un certain temps. Remarque: Tout le monde, qui a accès au code de la salle, peut rejoindre l'événement de karaoké.secret : le mot de passe administrateur de votre événement de karaoké. Si vous souhaitez vous reconnecter avec un client de lecture à une pièce, ceux-ci doivent correspondre. De plus, cela déverrouille les capacités d'administration à un client Web, lorsqu'il est donné sous «Avancé» dans le client Web.waiting_room_policy : l'un des none , optional , forced . Lorsqu'un artiste veut être ajouté à la file d'attente de lecture, mais a déjà une chanson en file d'attente, il peut être ajouté à la salle d'attente . none ne désactive ce comportement et les interprètes peuvent avoir plusieurs chansons dans la file d'attente, optional donne à l'interprète une notification, et ils peuvent décider par eux-mêmes, et forced les met dans la salle d'attente à chaque fois. Une fois que la chanson actuelle d'un interprète quitte la file d'attente, la chanson de la salle d'attente sera ajoutée à la file d'attente.last_song : none ou un temps dans ISO 8601. Lorsqu'une chanson est ajoutée à la file d'attente et que son temps de fin dépasse cette valeur, elle est rejetée.preview_duration : Avant chaque chanson, il y a une courte diapositive pour le prochain interprète. Cela définit combien de temps il est montré en quelques secondes.key : Si le serveur, vous souhaitez vous connecter, est en mode privé ou restreint , cela autorisera le client. Le serveur privé rejette les clients de lecture non autorisés, les serveurs restreints limitent la recherche pour être client uniquement .buffer_in_advance : combien de chansons doivent être tamponnées dans Advanced.qr_box_size : La taille d'une boîte (pensez à pixel) du code QR dans la fenêtre de lecture.qr_position : position du code QR dans la fenêtre de lecture. L'un des bottom-left , bottom-right , top-left , top-right .show_advanced : afficher des options avancées dans l'interface graphique de configuration. En plus de la configuration générale, a sa propre configuration sous la clé sources de la configuration.
La configuration se fait sous sources → youtube avec les paramètres suivants:
enabled : true ou false .channels : liste des canaux YouTube. S'il s'agit d'une liste non vide, Syng ne recherchera que ces canaux, sinon YouTube sera recherché dans son ensemble.tmp_dir : Les vidéos YouTube seront téléchargées avant la lecture. Cela définit le répertoire, où les vidéos YouTube sont stockées.max_res : Résolution maximale d'une vidéo.start_streaming : true ou false . Si true , les vidéos seront diffusées directement à l'aide de mpv , si la vidéo n'est pas mise en cache au préalable. Sinon, Syng attend que la vidéo soit téléchargée. La configuration se fait sous sources → s3 avec les paramètres suivants:
enabled : true ou false .extensions : liste des extensions à rechercher. Pour les chansons de karaoké, cette audio et vidéo séparées (par exemple les fichiers CDG), vous pouvez utiliser mp3+cdg pour signifier que la partie audio est un fichier mp3 et que la vidéo est un fichier cdg . Pour les chansons de karaoké, qui ne séparent pas cela (par exemple les fichiers MP4), vous pouvez simplement utiliser mp4 .endpoint : point final du S3.access_key Access Key pour le S3.secret_key : clé secrète pour le S3.secure : Si true utilise ssl , sinon non.bucket : seau pour les fichiers de karaoké.index_file : fichier de cache, qui contient les noms de fichiers des fichiers de karaoké dans le S3.tmp_dir : Répertoire de téléchargement temporaire des fichiers de karaoké. La configuration se fait sous sources → files avec les paramètres suivants:
enabled : true ou false .extensions : liste des extensions à rechercher. Pour les chansons de karaoké, cette audio et vidéo séparées (par exemple les fichiers CDG), vous pouvez utiliser mp3+cdg pour signifier que la partie audio est un fichier mp3 et que la vidéo est un fichier cdg . Pour les chansons de karaoké, qui ne séparent pas cela (par exemple les fichiers MP4), vous pouvez simplement utiliser mp4 .dir : Répertoire, où les fichiers de karaoké sont stockés. 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
Si vous souhaitez héberger votre propre serveur Syng, vous pouvez le faire, mais vous pouvez également utiliser l'instance Syng accessible au public sur https://syng.rocks.
Vous pouvez installer le serveur via PIP:
pip install 'syng[server]'
puis courir via:
syng server
Vous pouvez également exécuter le serveur à l'aide de Docker. Il écoute le port 8080 et lit un fichier clé sur /app/keys.txt lorsqu'il est configuré comme privé ou restreint.
docker run --rm -v /path/to/your/keys.txt:/app/keys.txt -p 8080:8080 ghcr.io/christofsteel/syng -H 0.0.0.0
La configuration se fait via des arguments de ligne de commande, voir syng server --help pour un aperçu.
Syng peut fonctionner en trois modes: public, restreint et privé. Cela restreint les clients de lecture peuvent démarrer un événement et les capacités de l'événement. Cela n'a aucune incidence sur les clients Web. Chaque client Web, qui a accès au code de la salle, peut rejoindre l'événement. L'autorisation se fait via une entrée dans les keys.txt
Le fichier keys.txt est un fichier texte simple contenant un mot de passe crypté sha256 par ligne. Les mots de passe sont stockés comme leur valeur hexadécimale et seuls les 64 premiers caractères par ligne sont lus par le serveur. Vous pouvez utiliser le reste pour ajouter des commentaires. Pour ajouter une clé au fichier, vous pouvez simplement utiliser echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .