Hospedar eventos facilmente de karaokê
A Syng é um software de karaokê tudo-em-um, composto por um servidor de back-end , um front-end da Web e um cliente de reprodução . Os artistas de karaokê podem pesquisar uma biblioteca usando o front -end da web e adicionar músicas à fila. O cliente de reprodução recupera músicas do servidor de back -end e as toca em ordem.
Você pode tocar músicas do YouTube , um armazenamento S3 ou simplesmente compartilhar arquivos locais.
O cliente de reprodução usa o MPV para reprodução e, portanto, pode reproduzir uma variedade de formatos de arquivo, como mp3+cdg , webm , mp4 , ...
Junte -se à nossa sala Matrix ou siga -nos no Mastodon para atualizar notificações e suporte.
Para hospedar um evento de karaokê, você só precisa usar o cliente de reprodução. Você pode usar a instância disponível ao público em https://syng.rocks como seu servidor.
A maneira preferida de instalar o cliente é via Flathub.
Alternativamente, o Syng pode ser instalado através do Python Package Index (PYPI). Ao instalar o cliente, é obrigatório incluir o sinalizador client :
pip install 'syng[client]'
Isso instala o cliente de reprodução ( syng client ) e uma GUI de configuração ( syng gui ).
Nota: Ao instalar via Pypi, você precisa instalar o MPV no cliente de reprodução e o binário mpv deve estar no seu PATH .
O suporte ao Windows é experimental, mas você pode baixar a versão atual de lançamentos. Não é necessária instalação, basta executar o exe .
Você pode hospedar eventos de karaokê usando a configuração padrão. Mas se você precisar de uma configuração mais avançada, poderá configurar o Syng usando a GUI ou através de um editor de texto editando ~/.config/syng/config.yaml . Existem as seguintes configurações:
server : URL do servidor para se conectar.room : o código da sala para o seu evento de karaokê. Pode ser escolhido arbitrariamente, mas deve ser único. Os quartos não utilizados serão excluídos depois de algum tempo. NOTA: Todos, que têm acesso ao código da sala, podem participar do evento de karaokê.secret : a senha do administrador para o seu evento de karaokê. Se você deseja se reconectar com um cliente de reprodução em uma sala, eles devem corresponder. Além disso, isso desbloqueia os recursos de administrador a um cliente da Web, quando dados em "Avançado" no cliente da Web.waiting_room_policy : um de none , optional , forced . Quando um artista quer ser adicionado à fila de reprodução, mas já tem uma canção na fila, ele pode ser adicionado à sala de espera . none desativa esse comportamento e os artistas podem ter várias músicas na fila, optional dá ao artista uma notificação e eles podem decidir por si mesmos, e forced as coloca na sala de espera todas as vezes. Uma vez que a música atual de um artista saia da fila, a música da sala de espera será adicionada à fila.last_song : none ou um tempo na ISO 8601. Quando uma música é adicionada à fila, e seu tempo de final excede esse valor, ela é rejeitada.preview_duration : Antes de cada música, há um slide curto para o próximo artista. Isso define quanto tempo é mostrado em segundos.key : se o servidor, você deseja se conectar está no modo privado ou restrito , isso autorizará o cliente. O servidor privado rejeita clientes de reprodução não autorizados, os servidores restritos limitam a pesquisa apenas para ser cliente .buffer_in_advance : quantas músicas devem ser tampeadas no avançado.qr_box_size : O tamanho de uma caixa (pense em pixel) do código QR na janela de reprodução.qr_position : Posição do código QR na janela de reprodução. Um dos bottom-left , bottom-right top-left , top-right .show_advanced : mostre opções avançadas na GUI de configuração. Além da configuração geral, possui sua própria configuração na chave de sources da configuração.
A configuração é feita sob sources → youtube com as seguintes configurações:
enabled : true ou false .channels : Lista de canais do YouTube. Se essa for uma lista não vazia, o SYNG pesquisará apenas esses canais, caso contrário, o YouTube será pesquisado como um todo.tmp_dir : Os vídeos do YouTube serão baixados antes da reprodução. Isso define o diretório, onde os vídeos do YouTube são armazenados.max_res : resolução máxima de um vídeo.start_streaming : true ou false . Se true , os vídeos serão transmitidos diretamente usando mpv , se o vídeo não for armazenado em cache com antecedência. Caso contrário, a Syng aguarda o download do vídeo. A configuração é feita sob sources → s3 com as seguintes configurações:
enabled : true ou false .extensions : Lista de extensões a serem pesquisadas. Para músicas de karaokê, que separam o áudio e o vídeo (por exemplo, arquivos CDG), você pode usar mp3+cdg para significar, que a peça de áudio é um arquivo mp3 e o vídeo é um arquivo cdg . Para músicas de karaokê, que não separam isso (por exemplo, arquivos MP4), você pode simplesmente usar mp4 .endpoint : endpoint do S3.access_key para o S3.secret_key : chave secreta para o S3.secure : se true usa ssl , caso contrário, não.bucket : Bucket para os arquivos de karaokê.index_file : Arquivo de cache, que contém os nomes de arquivos dos arquivos de karaokê no S3.tmp_dir : Diretório de download temporário dos arquivos de karaokê. A configuração é feita em sources → files com as seguintes configurações:
enabled : true ou false .extensions : Lista de extensões a serem pesquisadas. Para músicas de karaokê, que separam o áudio e o vídeo (por exemplo, arquivos CDG), você pode usar mp3+cdg para significar, que a peça de áudio é um arquivo mp3 e o vídeo é um arquivo cdg . Para músicas de karaokê, que não separam isso (por exemplo, arquivos MP4), você pode simplesmente usar mp4 .dir : Diretório, onde os arquivos de karaokê são armazenados. 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
Se você deseja hospedar seu próprio servidor Syng, pode fazer isso, mas também pode usar a instância SYNG disponível ao público em https://syng.rocks.
Você pode instalar o servidor via PIP:
pip install 'syng[server]'
e depois corra via:
syng server
Como alternativa, você pode executar o servidor usando o Docker. Ele ouve na porta 8080 e lê um arquivo chave em /app/keys.txt quando configurado como privado ou restrito.
docker run --rm -v /path/to/your/keys.txt:/app/keys.txt -p 8080:8080 ghcr.io/christofsteel/syng -H 0.0.0.0
A configuração é feita por meio de argumentos da linha de comando, consulte syng server --help para uma visão geral.
O Syng pode ser executado em três modos: público, restrito e privado. Isso restringe quais clientes de reprodução podem iniciar um evento e quais recursos o evento possui. Isso não tem influência nos clientes da web. Todo cliente da web, que tem acesso ao código da sala, pode participar do evento. A autorização é feita através de uma entrada no keys.txt
O arquivo keys.txt é um arquivo de texto simples que mantém uma senha criptografada sha256 por linha. As senhas são armazenadas como valor hexadecimal e apenas os primeiros 64 caracteres por linha são lidos pelo servidor. Você pode usar o resto para adicionar comentários. Para adicionar uma chave ao arquivo, você pode simplesmente usar echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .