轻松举办卡拉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 。