จัดกิจกรรมคาราโอเกะได้อย่างง่ายดาย
Syng เป็นซอฟต์แวร์คาราโอเกะแบบ all-in-one ซึ่งประกอบด้วย เซิร์ฟเวอร์แบ็กเอนด์ ส่วนหน้าเว็บ และ ไคลเอนต์การเล่น นักแสดงคาราโอเกะสามารถค้นหาห้องสมุดโดยใช้ส่วนหน้าเว็บและเพิ่มเพลงลงในคิว ไคลเอนต์การเล่นจะดึงเพลงจากเซิร์ฟเวอร์แบ็กเอนด์และเล่นตามลำดับ
คุณสามารถเล่นเพลงจาก YouTube ที่เก็บ S3 หรือเพียงแค่แชร์ ไฟล์ ในเครื่อง
ไคลเอนต์การเล่นใช้ MPV สำหรับการเล่นและสามารถเล่นรูปแบบไฟล์ที่หลากหลายเช่น mp3+cdg , webm , mp4 , ...
เข้าร่วมห้องเมทริกซ์ของเราหรือติดตามเราที่ Mastodon เพื่อรับการแจ้งเตือนและสนับสนุนการอัปเดต
ในการจัดกิจกรรมคาราโอเกะคุณจะต้องใช้ไคลเอนต์การเล่นเท่านั้น คุณสามารถใช้อินสแตนซ์ที่เปิดเผยต่อสาธารณะได้ที่ https://syng.rocks เป็นเซิร์ฟเวอร์ของคุณ
วิธีที่ต้องการในการติดตั้งไคลเอนต์คือผ่าน Flathub
SYNG สามารถติดตั้งได้ผ่าน ดัชนีแพ็คเกจ Python (PYPI) เมื่อติดตั้งไคลเอนต์จะต้องรวมธง client :
pip install 'syng[client]'
สิ่งนี้ติดตั้งทั้งไคลเอนต์การเล่น ( syng client ) และการกำหนดค่า GUI ( syng gui )
หมายเหตุ: เมื่อติดตั้งผ่าน PYPI คุณจะต้องติดตั้ง MPV บนไคลเอนต์การเล่นและ mpv ไบนารีจะต้องอยู่ใน PATH ของคุณ
การสนับสนุน Windows เป็นการทดลอง แต่คุณสามารถดาวน์โหลดเวอร์ชันปัจจุบันจากรุ่น ไม่จำเป็นต้องติดตั้งคุณสามารถเรียกใช้ exe ได้
คุณสามารถโฮสต์กิจกรรมคาราโอเกะโดยใช้การกำหนดค่าเริ่มต้น แต่ถ้าคุณต้องการการกำหนดค่าขั้นสูงมากขึ้นคุณสามารถกำหนดค่า SYNG โดยใช้ GUI หรือผ่านตัวแก้ไขข้อความโดยแก้ไข ~/.config/syng/config.yaml มีการตั้งค่าต่อไปนี้:
server : URL ของเซิร์ฟเวอร์เพื่อเชื่อมต่อroom : รหัสห้องสำหรับกิจกรรมคาราโอเกะของคุณ สามารถเลือกได้โดยพลการ แต่ต้องไม่ซ้ำกัน ห้องที่ไม่ได้ใช้จะถูกลบหลังจากผ่านไประยะหนึ่ง หมายเหตุ: ทุกคนที่สามารถเข้าถึงรหัสห้องสามารถเข้าร่วมกิจกรรมคาราโอเกะได้secret : รหัสผ่านผู้ดูแลระบบสำหรับกิจกรรมคาราโอเกะของคุณ หากคุณต้องการเชื่อมต่อกับไคลเอนต์การเล่นกับห้องสิ่งเหล่านี้จะต้องตรงกัน นอกจากนี้สิ่งนี้จะปลดล็อคความสามารถของผู้ดูแลระบบไปยังเว็บไคลเอนต์เมื่อได้รับภายใต้ "ขั้นสูง" ในเว็บไคลเอนต์waiting_room_policy : หนึ่งในนั้น none optional forced เมื่อนักแสดงต้องการเพิ่มเข้ากับคิวการเล่น แต่มีเพลงที่เข้าคิวแล้วพวกเขาสามารถเพิ่มเข้าไปใน ห้องรอ ได้ none ปิดการใช้งานพฤติกรรมนี้และนักแสดงสามารถมีหลายเพลงในคิว optional ให้การแจ้งเตือนนักแสดงและพวกเขาสามารถตัดสินใจด้วยตนเองและ forced พวกเขาอยู่ในห้องรอทุกครั้ง เมื่อเพลงปัจจุบันของนักแสดงออกจากคิวเพลงจากห้องรอจะถูกเพิ่มเข้าไปในคิวlast_song : none หรือเวลาใน ISO 8601 เมื่อมีการเพิ่มเพลงลงในคิวและเวลาสิ้นสุดเกินค่านี้มันจะถูกปฏิเสธpreview_duration : ก่อนทุกเพลงมีสไลด์สั้น ๆ สำหรับนักแสดงคนต่อไป สิ่งนี้ตั้งค่าระยะเวลาที่แสดงในไม่กี่วินาทีkey : หากเซิร์ฟเวอร์คุณต้องการเชื่อมต่ออยู่ในโหมด ส่วนตัว หรือ จำกัด สิ่งนี้จะอนุญาตให้ไคลเอนต์ เซิร์ฟเวอร์ส่วนตัวปฏิเสธไคลเอนต์การเล่นที่ไม่ได้รับอนุญาตเซิร์ฟเวอร์ที่ จำกัด จำกัด การค้นหาเป็น ไคลเอนต์เท่านั้นbuffer_in_advance : ควรมีเพลงกี่เพลงในขั้นสูงqr_box_size : ขนาดของหนึ่งกล่อง (คิดว่าพิกเซล) ของรหัส QR ในหน้าต่างการเล่นqr_position : ตำแหน่งของรหัส QR ในหน้าต่างการเล่น หนึ่งใน bottom-left , bottom-right , top-left top-rightshow_advanced : แสดงตัวเลือกขั้นสูงใน GUI การกำหนดค่า นอกเหนือจากการกำหนดค่าทั่วไปแล้วยังมีการกำหนดค่าของตัวเองภายใต้คีย์ sources ของการกำหนดค่า
การกำหนดค่าทำได้ภายใต้ sources → youtube พร้อมการตั้งค่าต่อไปนี้:
enabled : true หรือ falsechannels : รายการช่อง YouTube หากนี่เป็นรายการที่ไม่ได้รับการยกเว้น SYNG จะค้นหาช่องทางเหล่านี้เท่านั้นมิฉะนั้น YouTube จะถูกค้นหาโดยรวมtmp_dir : วิดีโอ YouTube จะถูกดาวน์โหลดก่อนการเล่น สิ่งนี้ตั้งค่าไดเร็กทอรีที่เก็บวิดีโอ YouTube ไว้max_res : ความละเอียดสูงสุดของวิดีโอstart_streaming : true หรือ false หาก true วิดีโอจะถูกสตรีมโดยตรงโดยใช้ mpv หากวิดีโอไม่ได้ถูกแคชไว้ล่วงหน้า มิฉะนั้น Syng จะรอให้ดาวน์โหลดวิดีโอ การกำหนดค่าทำได้ภายใต้ sources → s3 พร้อมการตั้งค่าต่อไปนี้:
enabled : true หรือ falseextensions : รายการส่วนขยายที่จะค้นหา สำหรับเพลงคาราโอเกะเสียงและวิดีโอแยกต่างหาก (เช่นไฟล์ CDG) คุณสามารถใช้ mp3+cdg เพื่อบ่งบอกว่าส่วนเสียงเป็นไฟล์ mp3 และวิดีโอเป็นไฟล์ cdg สำหรับเพลงคาราโอเกะที่ไม่ได้แยกสิ่งนี้ (เช่นไฟล์ MP4) คุณสามารถใช้ mp4 ได้endpoint : จุดสิ้นสุดของ S3access_key Access Key สำหรับ S3secret_key : รหัสลับสำหรับ S3secure : ถ้าใช้ ssl true ไม่เช่นนั้นbucket : Bucket สำหรับไฟล์คาราโอเกะindex_file : ไฟล์แคชที่มีชื่อไฟล์ของไฟล์คาราโอเกะใน S3tmp_dir : ไดเรกทอรีดาวน์โหลดชั่วคราวของไฟล์คาราโอเกะ การกำหนดค่าทำได้ภายใต้ sources → files พร้อมการตั้งค่าต่อไปนี้:
enabled : true หรือ falseextensions : รายการส่วนขยายที่จะค้นหา สำหรับเพลงคาราโอเกะเสียงและวิดีโอแยกต่างหาก (เช่นไฟล์ 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 หนึ่งรหัสต่อบรรทัด รหัสผ่านจะถูกเก็บไว้เป็นค่า hex ของพวกเขาและมีเพียง 64 อักขระแรกต่อบรรทัดเท่านั้นที่อ่านโดยเซิร์ฟเวอร์ คุณสามารถใช้ส่วนที่เหลือเพื่อเพิ่มความคิดเห็น ในการเพิ่มคีย์ลงในไฟล์คุณสามารถใช้ echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt