Dengan mudah menjadi tuan rumah acara karaoke
Syng adalah perangkat lunak karaoke all-in-one, yang terdiri dari server backend , frontend web dan klien pemutaran . Penampil karaoke dapat mencari perpustakaan menggunakan frontend web, dan menambahkan lagu ke antrian. Klien pemutaran mengambil lagu dari server backend dan memainkannya secara berurutan.
Anda dapat memutar lagu dari YouTube , penyimpanan S3 atau hanya berbagi file lokal.
Klien pemutaran menggunakan MPV untuk pemutaran dan karenanya dapat memainkan berbagai format file, seperti mp3+cdg , webm , mp4 , ...
Bergabunglah dengan Ruang Matriks kami atau ikuti kami di Mastodon untuk pemberitahuan dan dukungan pembaruan.
Untuk menjadi tuan rumah acara karaoke, Anda hanya perlu menggunakan klien pemutaran. Anda dapat menggunakan instance yang tersedia untuk umum di https://syng.rocks sebagai server Anda.
Cara yang disukai untuk menginstal klien adalah melalui Flathub.
Alternatifnya, Syng dapat diinstal melalui Indeks Paket Python (PYPI). Saat menginstal klien, wajib memasukkan bendera client :
pip install 'syng[client]'
Ini menginstal kedua klien pemutaran ( syng client ) dan konfigurasi GUI ( syng gui ).
Catatan: Saat menginstal melalui PYPI, Anda harus menginstal MPV pada klien pemutaran, dan biner mpv harus berada di PATH Anda.
Dukungan Windows bersifat eksperimental, tetapi Anda dapat mengunduh versi saat ini dari rilis. Tidak perlu instalasi, Anda bisa menjalankan exe .
Anda dapat menyelenggarakan acara karaoke menggunakan konfigurasi default. Tetapi jika Anda memerlukan konfigurasi yang lebih maju, Anda dapat mengkonfigurasi syng menggunakan GUI atau melalui editor teks dengan mengedit ~/.config/syng/config.yaml . Ada pengaturan berikut:
server : URL server untuk terhubung.room : Kode kamar untuk acara karaoke Anda. Dapat dipilih secara sewenang -wenang, tetapi harus unik. Kamar yang tidak digunakan akan dihapus setelah beberapa waktu. Catatan: Semua orang, yang memiliki akses ke kode kamar dapat bergabung dengan acara karaoke.secret : Kata sandi admin untuk acara karaoke Anda. Jika Anda ingin terhubung kembali dengan klien pemutaran ke ruangan, ini harus cocok. Selain itu, ini membuka kemampuan admin ke klien web, ketika diberikan di bawah "Lanjutan" di klien web.waiting_room_policy : salah satu dari none , optional , forced . Ketika seorang pemain ingin ditambahkan ke antrian pemutaran, tetapi sudah menjadi lagu yang antri, mereka dapat ditambahkan ke ruang tunggu . none yang menonaktifkan perilaku ini dan pemain dapat memiliki banyak lagu dalam antrian, optional memberi pemain pemberitahuan, dan mereka dapat memutuskan sendiri, dan forced menempatkan mereka di ruang tunggu setiap saat. Setelah lagu seorang pemain saat ini meninggalkan antrian, lagu dari ruang tunggu akan ditambahkan ke antrian.last_song : none atau waktu di ISO 8601. Ketika sebuah lagu ditambahkan ke antrian, dan waktu akhirnya melebihi nilai ini, itu ditolak.preview_duration : Sebelum setiap lagu, ada slide pendek untuk pemain berikutnya. Ini menetapkan berapa lama ditampilkan dalam hitungan detik.key : Jika server, Anda ingin terhubung ke dalam mode pribadi atau terbatas , ini akan mengizinkan klien. Server pribadi menolak klien pemutaran yang tidak sah, server terbatas membatasi pencarian menjadi klien saja .buffer_in_advance : Berapa banyak lagu yang harus disangga di Lanjutan.qr_box_size : Ukuran satu kotak (pikirkan piksel) dari kode QR di jendela pemutaran.qr_position : Posisi kode QR di jendela pemutaran. Salah satu dari bottom-left , bottom-right , top-left , top-right .show_advanced : Tampilkan opsi lanjutan di GUI konfigurasi. Selain konfigurasi umum, memiliki konfigurasi sendiri di bawah kunci sources konfigurasi.
Konfigurasi dilakukan di bawah sources → youtube dengan pengaturan berikut:
enabled : true atau false .channels : Daftar saluran YouTube. Jika ini adalah daftar yang tidak keras kepala, Syng hanya akan mencari saluran ini, jika tidak, YouTube akan dicari secara keseluruhan.tmp_dir : Video YouTube akan diunduh sebelum pemutaran. Ini menetapkan direktori, di mana video YouTube disimpan.max_res : Resolusi maksimum sebuah video.start_streaming : true atau false . Jika true , video akan disiarkan langsung menggunakan mpv , jika video tidak di -cache sebelumnya. Jika tidak, Syng menunggu video diunduh. Konfigurasi dilakukan di bawah sources → s3 dengan pengaturan berikut:
enabled : true atau false .extensions : Daftar ekstensi yang akan dicari. Untuk lagu -lagu karaoke, audio dan video terpisah itu (misalnya file CDG), Anda dapat menggunakan mp3+cdg untuk menandakan, bahwa bagian audio adalah file mp3 dan videonya adalah file cdg . Untuk lagu -lagu karaoke, itu tidak memisahkan ini (misalnya file MP4), Anda dapat menggunakan mp4 .endpoint : titik akhir S3.access_key Access Key untuk S3.secret_key : Kunci rahasia untuk S3.secure : Jika true menggunakan ssl , jika tidak.bucket : Bucket untuk file karaoke.index_file : File cache, yang berisi nama file dari file karaoke di S3.tmp_dir : Direktori unduhan sementara dari file karaoke. Konfigurasi dilakukan di bawah sources → files dengan pengaturan berikut:
enabled : true atau false .extensions : Daftar ekstensi yang akan dicari. Untuk lagu -lagu karaoke, audio dan video terpisah itu (misalnya file CDG), Anda dapat menggunakan mp3+cdg untuk menandakan, bahwa bagian audio adalah file mp3 dan videonya adalah file cdg . Untuk lagu -lagu karaoke, itu tidak memisahkan ini (misalnya file MP4), Anda dapat menggunakan mp4 .dir : Direktori, tempat file karaoke disimpan. 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
Jika Anda ingin meng -host server syng Anda sendiri, Anda dapat melakukannya, tetapi Anda juga dapat menggunakan instance syng yang tersedia untuk umum di https://syng.rocks.
Anda dapat menginstal server melalui PIP:
pip install 'syng[server]'
Dan kemudian jalankan melalui:
syng server
Atau Anda dapat menjalankan server menggunakan Docker. Ini mendengarkan port 8080 dan membaca file kunci di /app/keys.txt saat dikonfigurasi sebagai pribadi atau dibatasi.
docker run --rm -v /path/to/your/keys.txt:/app/keys.txt -p 8080:8080 ghcr.io/christofsteel/syng -H 0.0.0.0
Konfigurasi dilakukan melalui argumen baris perintah, lihat syng server --help untuk gambaran umum.
Syng dapat berjalan dalam tiga mode: publik, terbatas dan pribadi. Ini membatasi klien pemutaran mana yang dapat memulai suatu acara dan kemampuan apa yang dimiliki acara tersebut. Ini tidak ada kaitannya dengan klien web. Setiap klien web, yang memiliki akses ke kode kamar dapat bergabung dengan acara tersebut. Otorisasi dilakukan melalui entri di keys.txt
File keys.txt adalah file teks sederhana yang memegang satu kata sandi terenkripsi sha256 per baris. Kata sandi disimpan sebagai nilai hex mereka dan hanya 64 karakter pertama per baris yang dibaca oleh server. Anda dapat menggunakan sisanya untuk menambahkan komentar. Untuk menambahkan tombol ke file, Anda cukup menggunakan echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .