Organiza fácilmente eventos de karaoke
Syng es un software de karaoke todo en uno, que consiste en un servidor de backend , un interfaz web y un cliente de reproducción . Los artistas de karaoke pueden buscar en una biblioteca usando el interfaz web y agregar canciones a la cola. El cliente de reproducción recupera canciones del servidor de backend y las reproduce en orden.
Puede reproducir canciones de YouTube , un almacenamiento S3 o simplemente compartir archivos locales.
El cliente de reproducción usa MPV para la reproducción y, por lo tanto, puede reproducir una variedad de formatos de archivo, como mp3+cdg , webm , mp4 , ...
Únase a nuestra sala de matriz o síganos en Mastodon para obtener notificaciones y soporte de actualizaciones.
Para organizar un evento de karaoke, solo necesita usar el cliente de reproducción. Puede usar la instancia pública disponible en https://syng.rocks como su servidor.
La forma preferida de instalar el cliente es a través de Flathub.
Alternativamente, SYNG se puede instalar a través del Índice de paquetes de Python (PYPI). Al instalar el cliente, es obligatorio incluir la bandera client :
pip install 'syng[client]'
Esto instala tanto el cliente de reproducción ( syng client ) como una GUI de configuración ( syng gui ).
Nota: Al instalar a través de PYPI, debe instalarse MPV en el cliente de reproducción, y el binario mpv debe estar en su PATH .
El soporte de Windows es experimental, pero puede descargar la versión actual de los lanzamientos. No es necesaria la instalación, solo puede ejecutar el exe .
Puede alojar eventos de karaoke utilizando la configuración predeterminada. Pero si necesita una configuración más avanzada, puede configurar SYNG usando la GUI o mediante un editor de texto editando ~/.config/syng/config.yaml . Hay la siguiente configuración:
server : URL del servidor para conectarse.room : el código de habitación para su evento de karaoke. Se puede elegir arbitrariamente, pero debe ser único. Las habitaciones no utilizadas serán eliminadas después de un tiempo. Nota: Todos, que tienen acceso al código de la habitación, pueden unirse al evento de karaoke.secret : la contraseña de administración para su evento de karaoke. Si desea reconectarse con un cliente de reproducción en una habitación, estos deben coincidir. Además, esto desbloquea las capacidades de administración para un cliente web, cuando se da en "avanzado" en el cliente web.waiting_room_policy : uno de none , optional , forced . Cuando un intérprete quiere ser agregado a la cola de reproducción, pero ya tiene una canción en cola, se puede agregar a la sala de espera . none deshabilita este comportamiento y los artistas pueden tener múltiples canciones en la cola, optional le da al intérprete una notificación y pueden decidir por sí mismos, y forced las pone en la sala de espera cada vez. Una vez que la canción actual de un intérprete deja la cola, la canción de la sala de espera se agregará a la cola.last_song : none o una vez en ISO 8601. Cuando se agrega una canción a la cola, y su tiempo final excede este valor, se rechaza.preview_duration : antes de cada canción, hay una diapositiva corta para el próximo intérprete. Esto establece cuánto tiempo se muestra en segundos.key : si el servidor, desea conectarse está en modo privado o restringido , esto autorizará al cliente. El servidor privado rechazó a los clientes de reproducción no autorizados, los servidores restringidos limitan la búsqueda solo para ser cliente .buffer_in_advance : cuántas canciones deben ser amortiguadas en Avanzado.qr_box_size : el tamaño de una caja (piense en píxel) del código QR en la ventana de reproducción.qr_position : posición del código QR en la ventana de reproducción. Uno de bottom-left , bottom-right , top-left , top-right .show_advanced : Mostrar opciones avanzadas en la GUI de configuración. Además de la configuración general, tiene su propia configuración bajo la clave sources de la configuración.
La configuración se realiza en sources → youtube con la siguiente configuración:
enabled : true o false .channels : Lista de canales de YouTube. Si esta es una lista no vacía, SYNG solo buscará estos canales, de lo contrario, YouTube se buscará en su conjunto.tmp_dir : los videos de YouTube se descargarán antes de la reproducción. Esto establece el directorio, donde se almacenan los videos de YouTube.max_res : resolución máxima de un video.start_streaming : true o false . Si es true , los videos se transmitirán directamente usando mpv , si el video no se almacena de antemano. De lo contrario, Syng espera a que se descargue el video. La configuración se realiza en sources → s3 con la siguiente configuración:
enabled : true o false .extensions : lista de extensiones a buscar. Para las canciones de karaoke, ese audio y video separados (por ejemplo, archivos CDG), puede usar mp3+cdg para significar, que la parte de audio es un archivo mp3 y el video es un archivo cdg . Para las canciones de karaoke, que no separan esto (por ejemplo, archivos MP4), simplemente puede usar mp4 .endpoint : punto final del S3.access_key para el S3.secret_key : clave secreta para el S3.secure : si true usa ssl , de lo contrario no.bucket : cubo para los archivos de karaoke.index_file : archivo de caché, que contiene los nombres de archivo de los archivos de karaoke en el S3.tmp_dir : directorio de descarga temporal de los archivos de karaoke. La configuración se realiza en sources → files con la siguiente configuración:
enabled : true o false .extensions : lista de extensiones a buscar. Para las canciones de karaoke, ese audio y video separados (por ejemplo, archivos CDG), puede usar mp3+cdg para significar, que la parte de audio es un archivo mp3 y el video es un archivo cdg . Para las canciones de karaoke, que no separan esto (por ejemplo, archivos MP4), simplemente puede usar mp4 .dir : Directorio, donde se almacenan los archivos de karaoke. 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 desea alojar su propio servidor Syng, puede hacerlo, pero también puede usar la instancia SYNG disponible en https://syng.rocks.
Puede instalar el servidor a través de PIP:
pip install 'syng[server]'
y luego ejecutar a través de:
syng server
Alternativamente, puede ejecutar el servidor usando Docker. Se escucha en el puerto 8080 y lee un archivo de clave en /app/keys.txt cuando está configurado como privado o restringido.
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 configuración se realiza a través de argumentos de línea de comando, consulte syng server --help para una descripción general.
SYNG puede ejecutarse en tres modos: público, restringido y privado. Esto restringe qué clientes de reproducción pueden comenzar un evento y qué capacidades tiene el evento. Esto no tiene relación con los clientes web. Cada cliente web, que tiene acceso al código de habitación, puede unirse al evento. La autorización se realiza a través de una entrada en las keys.txt
El archivo keys.txt es un archivo de texto simple que contiene una contraseña cifrada sha256 por línea. Las contraseñas se almacenan como su valor hexadecimal y solo los primeros 64 caracteres por línea son leídos por el servidor. Puede usar el resto para agregar comentarios. Para agregar una clave al archivo, simplemente puede usar echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .