輕鬆舉辦卡拉OK活動
Syng是一個多合一的卡拉OK軟件,由後端服務器, Web前端和播放客戶端組成。卡拉OK表演者可以使用Web Frontend搜索庫,並在隊列中添加歌曲。播放客戶端從後端服務器檢索歌曲並按順序播放。
您可以從YouTube , S3存儲中播放歌曲,也可以簡單地共享本地文件。
播放客戶端使用MPV進行播放,因此可以播放各種文件格式,例如mp3+cdg , webm , mp4 ,...
加入我們的矩陣室,或在Mastodon上關注我們以獲取更新通知和支持。
要舉辦卡拉OK事件,您只需要使用播放客戶端即可。您可以在https://syng.rocks上使用公開可用的實例作為服務器。
安裝客戶端的首選方法是通過Flathub。
另外,可以通過Python軟件包索引(PYPI)安裝SYNG。安裝客戶端時,必須包括client標誌:
pip install 'syng[client]'
這同時安裝了播放客戶端( syng client )和配置GUI( syng gui )。
注意:通過PYPI安裝時,您需要在播放客戶端安裝MPV,並且mpv二進制必須在您的PATH中。
Windows支持是實驗性的,但是您可以從版本中下載當前版本。無需安裝,您只需運行exe即可。
您可以使用默認配置託管卡拉OK事件。但是,如果您需要更高級的配置,則可以通過編輯~/.config/syng/config.yaml使用GUI或通過文本編輯器配置SYNG。有以下設置:
server :服務器的URL要連接到。room :卡拉OK活動的房間代碼。可以任意選擇,但必須是唯一的。一段時間後,未使用的房間將被刪除。注意:每個人都可以訪問房間代碼可以加入卡拉OK事件。secret :卡拉OK事件的管理員密碼。如果您想將播放客戶端重新連接到房間,則必須匹配。此外,當在Web客戶端中給出“高級”時,這將把管理功能解鎖到Web客戶端。waiting_room_policy :一個none , optional , forced 。當表演者想添加到播放隊列中,但已經排隊時,可以將它們添加到候診室。 none會禁止這種行為,並且表演者可以在隊列中有多首歌曲, optional表演者提供了通知,他們可以自己決定,並每次都forced他們放在候診室中。一旦表演者的當前歌曲離開隊列,候車室的歌曲將被添加到隊列中。last_song :ISO 8601中的none或時間。preview_duration :在每首歌曲之前,下一個表演者都有一個簡短的幻燈片。這將在幾秒鐘內顯示多長時間。key :如果服務器,您要連接到私有或限制模式,這將授權客戶端。專用服務器拒絕未經授權的播放客戶端,限制服務器將搜索僅限為客戶端。buffer_in_advance :高級應緩衝多少首歌。qr_box_size :播放窗口中QR碼的一個盒子(思考像素)的大小。qr_position :QR碼在播放窗口中的位置。 bottom-left之一, bottom-right , top-left , top-right 。show_advanced :在配置GUI中顯示高級選項。除了常規配置外,在配置的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文件)的卡拉OK歌曲,您可以使用mp3+cdg表示音頻部分是mp3文件,並且視頻是cdg文件。對於不會分開此的卡拉OK歌曲(例如MP4文件),您只需使用mp4即可。endpoint :S3的端點。access_key訪問密鑰。secret_key :S3的秘密鑰匙。secure :如果true使用ssl ,則不使用。bucket :卡拉OK文件的存儲桶。index_file :緩存文件,其中包含S3中卡拉OK文件的文件名。tmp_dir :卡拉OK文件的臨時下載目錄。配置在sources → files下進行以下設置:
enabled : true或false 。extensions :要搜索的擴展名單。對於單獨的音頻和視頻(例如CDG文件)的卡拉OK歌曲,您可以使用mp3+cdg表示音頻部分是mp3文件,並且視頻是cdg文件。對於不會分開此的卡拉OK歌曲(例如MP4文件),您只需使用mp4即可。dir :目錄,存儲卡拉OK文件的地方。 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 Server,則可以執行此操作,但也可以在https://syng.rocks上使用公開可用的Syng實例。
您可以通過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可以以三種模式運行:公共,限制和私人。這限制了哪些播放客戶端可以啟動活動以及該事件的功能。這與網絡客戶無關。每個可以訪問房間代碼的Web客戶端都可以加入活動。授權是通過keys.txt中的條目完成的
keys.txt文件是一個簡單的文本文件,每行持有一個sha256加密密碼。密碼存儲為其十六進制值,服務器讀取每行的前64個字符。您可以使用其餘的添加評論。要在文件中添加鍵,您可以只需使用echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt 。