노래방 행사를 쉽게 호스팅합니다
Syng 은 백엔드 서버 , 웹 프론트 엔드 및 재생 클라이언트 로 구성된 올인원 가라오케 소프트웨어입니다. 가라오케 공연자는 웹 프론트 엔드를 사용하여 라이브러리를 검색하고 큐에 노래를 추가 할 수 있습니다. 재생 클라이언트는 백엔드 서버에서 노래를 검색하여 순서대로 재생합니다.
S3 스토리지 인 YouTube 에서 노래를 재생하거나 단순히 로컬 파일을 공유 할 수 있습니다.
재생 클라이언트는 재생에 MPV를 사용하므로 mp3+cdg , webm , mp4 , ...와 같은 다양한 파일 형식을 재생할 수 있습니다.
업데이트 알림 및 지원을 위해 Matrix Room에 가입하거나 Mastodon에서 당사를 팔로우하십시오.
가라오케 이벤트를 주최하려면 재생 클라이언트 만 사용하면됩니다. 공개적으로 사용 가능한 인스턴스를 https://syng.rocks에서 서버로 사용할 수 있습니다.
클라이언트를 설치하는 선호하는 방법은 Plathub을 통해입니다.
또는 SYNG는 Python 패키지 인덱스 (PYPI)를 통해 설치할 수 있습니다. 클라이언트를 설치할 때 client 플래그를 포함해야합니다.
pip install 'syng[client]'
이로 인해 재생 클라이언트 ( syng client )와 구성 GUI ( syng gui )가 모두 설치됩니다.
참고 : PYPI를 통해 설치할 때 재생 클라이언트에 MPV를 설치해야하며 mpv 바이너리 PATH 에 있어야합니다.
Windows 지원은 실험적이지만 릴리스에서 현재 버전을 다운로드 할 수 있습니다. 설치가 필요하지 않으면 exe 실행할 수 있습니다.
기본 구성을 사용하여 노래방 이벤트를 호스팅 할 수 있습니다. 그러나 더 고급 구성이 필요한 경우 ~/.config/syng/config.yaml 편집하여 GUI를 사용하거나 텍스트 편집기를 통해 SYNG를 구성 할 수 있습니다. 다음 설정이 있습니다.
server : 연결할 서버의 URL.room : 가라오케 이벤트를위한 룸 코드. 임의로 선택할 수 있지만 독특해야합니다. 사용하지 않은 객실은 얼마 후 삭제됩니다. 참고 : 룸 코드에 액세스 할 수있는 모든 사람은 가라오케 이벤트에 가입 할 수 있습니다.secret : 노래방 이벤트의 관리자 비밀번호. 재생 클라이언트와 회의실로 다시 연결하려면 일치해야합니다. 또한 웹 클라이언트의 "고급"하에 주어진 경우 관리 기능을 웹 클라이언트에게 잠금 해제합니다.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 파일)의 노래방 노래의 경우 mp3+cdg 사용하여 오디오 부분이 mp3 파일이고 비디오는 cdg 파일임을 의미 할 수 있습니다. 이것 (예 : mp4 파일)을 분리하지 않는 가라오케 노래의 경우 단순히 mp4 사용할 수 있습니다.endpoint : S3의 종말점.access_key 액세스 키.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 서버를 호스팅하려면 그렇게 할 수 있지만 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은 공개, 제한 및 개인의 세 가지 모드로 실행할 수 있습니다. 이는 어떤 재생 클라이언트가 이벤트를 시작할 수 있는지와 이벤트가 어떤 기능을하는지 제한합니다. 이것은 웹 클라이언트와 관련이 없습니다. 룸 코드에 액세스 할 수있는 모든 웹 클라이언트가 이벤트에 참여할 수 있습니다. 승인은 keys.txt 의 항목을 통해 수행됩니다
keys.txt 파일은 한 줄에 하나 sha256 암호화 된 암호를 보유하는 간단한 텍스트 파일입니다. 암호는 16 진수로 저장되며 한 줄 당 처음 64 자만 서버에서 읽습니다. 나머지를 사용하여 주석을 추가 할 수 있습니다. 파일에 키를 추가하려면 echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .