Легко провести караоке
SYNG -это программное обеспечение для караоке, состоящее из бэкэнд-сервера , веб-фронта и клиента воспроизведения . Исполнители караоке могут искать библиотеку, используя веб -фронт и добавить песни в очередь. Клиент воспроизведения извлекает песни с сервера Backend и воспроизводит их по порядку.
Вы можете воспроизводить песни с YouTube , хранилище S3 или просто делиться локальными файлами .
Клиент воспроизведения использует MPV для воспроизведения и поэтому может воспроизводить различные форматы файлов, такие как mp3+cdg , webm , mp4 , ...
Присоединяйтесь к нашей комнате Matrix или следуйте за нами на Mastodon для обновления уведомлений и поддержки.
Чтобы провести караоке -мероприятие, вам нужно только использовать клиента воспроизведения. Вы можете использовать общедоступный экземпляр по адресу https://syng.rocks в качестве вашего сервера.
Предпочтительным способом установки клиента является Flathub.
Альтернативно SYNG может быть установлен с помощью индекса пакета Python (PYPI). При установке клиента обязательно включить флаг client :
pip install 'syng[client]'
Это устанавливает как клиент воспроизведения ( syng client ), так и графический интерфейс конфигурации ( syng gui ).
Примечание. При установке через PYPI вам необходимо установить MPV на клиенте воспроизведения, а двоичный файл mpv должен находиться на вашем PATH .
Поддержка Windows экспериментальная, но вы можете скачать текущую версию из релизов. Установка не требуется, вы можете просто запустить exe .
Вы можете размещать события караоке с помощью конфигурации по умолчанию. Но если вам нужна более расширенная конфигурация, вы можете настраивать SYNG с использованием графического интерфейса или через текстовый редактор, редактируя ~/.config/syng/config.yaml . Есть следующие настройки:
server : URL -адрес сервера для подключения.room : Код комнаты для вашего караоке -мероприятия. Может быть выбрано произвольно, но должно быть уникальным. Неиспользуемые комнаты будут удалены через некоторое время. Примечание: все, у которых есть доступ к коду комнаты, может присоединиться к караоке.secret : пароль администратора для вашего караоке -мероприятия. Если вы хотите воссоединиться с клиентом воспроизведения в комнате, они должны соответствовать. Кроме того, это разблокирует возможности администратора для веб -клиента, когда он приведен в «Advanced» в веб -клиенте.waiting_room_policy : один из none , optional , forced . Когда исполнитель хочет быть добавленным в очередь воспроизведения, но уже находится в очереди в песне, его можно добавить в комнату ожидания . none не отключает это поведение, и у исполнителей может быть несколько песен в очереди, optional дает исполнителю уведомление, и они могут решать для себя, и forced помещает их в комнату ожидания каждый раз. Как только нынешняя песня исполнителя покинет очередь, песня из комнаты ожидания будет добавлена в очередь.last_song : none или время в ISO 8601. Когда в очередь добавлена песня, и ее время окончания превышает это значение, она отвергается.preview_duration : до каждой песни есть короткий слайд для следующего исполнителя. Это устанавливает, как долго это показано в секундах.key : если сервер, вы хотите подключиться к частному или ограниченному режиму, это позволит клиенту. Частный сервер отклоняет несанкционированных клиентов воспроизведения, ограниченные серверы ограничивают поиск только клиентом .buffer_in_advance : сколько песен должно быть забуфеном в Advanced.qr_box_size : размер одной коробки (Think Pixel) QR -кода в окне воспроизведения.qr_position : положение QR -кода в окне воспроизведения. Один из bottom-left , bottom-right , top-left , top-right .show_advanced : Показать расширенные параметры в графическом интерфейсе конфигурации. В дополнение к общей конфигурации имеет свою собственную конфигурацию в соответствии с ключом 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 . Для песен караоке, которые не разделяют это (например, файлы MP4), вы можете просто использовать mp4 .endpoint : конечная точка S3.access_key Access Key для S3.secret_key : секретный ключ для S3.secure : если true использует ssl , в противном случае нет.bucket : ведро для файлов караоке.index_file : файл кэша, который содержит имена файлов файлов караоке в S3.tmp_dir : временный каталог загрузки файлов караоке. Конфигурация выполняется в sources → files со следующими настройками:
enabled : true или false .extensions : Список расширений, которые нужно искать. Для песен караоке, этого отдельного аудио и видео (например, файлов CDG) вы можете использовать mp3+cdg , чтобы показать, что аудиопапность - это файл mp3 , а видео - файл cdg . Для песен караоке, которые не разделяют это (например, файлы 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, вы можете сделать это, но вы также можете использовать общедоступный экземпляр SYNG на https://syng.rocks.
Вы можете установить сервер через 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
Конфигурация выполняется с помощью аргументов командной строки, см. syng server --help для обзора.
SYNG может работать в трех режимах: публичный, ограниченный и частный. Это ограничивает, какие клиенты воспроизведения могут начать событие и какие возможности есть. Это не имеет никакого отношения к веб -клиентам. Каждый веб -клиент, который имеет доступ к коду комнаты, может присоединиться к событию. Авторизация выполняется через запись в keys.txt
Файл keys.txt - это простой текстовый файл, содержащий один зашифрованный пароль sha256 на строку. Пароли хранятся как их шестигранное значение, и только первые 64 символа на строку читают сервером. Вы можете использовать остальные, чтобы добавить комментарии. Чтобы добавить ключ к файлу, вы можете просто использовать echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .