استضافة أحداث الكاريوكي بسهولة
Syng هو برنامج Karaoke الكل في واحد ، ويتألف من خادم خلفي ، وواجهة ويب وعميل تشغيل . يمكن لمؤدين الكاريوكي البحث في مكتبة باستخدام الواجهة الأمامية على الويب ، وإضافة أغاني إلى قائمة الانتظار. يسترجع عميل التشغيل الأغاني من خادم الواجهة الخلفية ويلعبها بالترتيب.
يمكنك تشغيل الأغاني من YouTube ، أو تخزين S3 أو ببساطة مشاركة الملفات المحلية.
يستخدم عميل التشغيل MPV للتشغيل ، وبالتالي يمكنه تشغيل مجموعة متنوعة من تنسيقات الملفات ، مثل mp3+cdg و webm و mp4 و ...
انضم إلى غرفة Matrix الخاصة بنا أو تابعنا على Mastodon للحصول على إشعارات التحديث والدعم.
لاستضافة حدث الكاريوكي ، تحتاج فقط إلى استخدام عميل التشغيل. يمكنك استخدام المثيل المتاح للجمهور على https://syng.rocks كخادم الخاص بك.
الطريقة المفضلة لتثبيت العميل عبر Flathub.
بدلاً من ذلك ، يمكن تثبيت Syng عبر فهرس Python Package (PYPI). عند تثبيت العميل ، من الضروري تضمين علامة client :
pip install 'syng[client]'
يقوم هذا بتثبيت كل من عميل التشغيل ( syng client ) و GUI التكوين ( syng gui ).
ملاحظة: عند التثبيت عبر PYPI ، تحتاج إلى تثبيت MPV على عميل التشغيل ، ويجب أن يكون mpv Binary في PATH .
دعم Windows هو تجريبي ، ولكن يمكنك تنزيل الإصدار الحالي من الإصدارات. لا يوجد تثبيت ضروري ، يمكنك فقط تشغيل exe .
يمكنك استضافة أحداث الكاريوكي باستخدام التكوين الافتراضي. ولكن إذا كنت بحاجة إلى تكوين أكثر تقدمًا ، فيمكنك إما تكوين Syng باستخدام واجهة المستخدم الرسومية أو عبر محرر نصية عن طريق تحرير ~/.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_position : موضع رمز الاستجابة السريعة في نافذة التشغيل. واحد من bottom-left ، bottom-right ، top-left ، top-right .show_advanced : إظهار الخيارات المتقدمة في واجهة المستخدم الرسومية للتكوين. بالإضافة إلى التكوين العام ، له تكوين خاص به ضمن مفتاح 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 : قائمة الامتدادات التي سيتم البحث فيها. بالنسبة لأغاني الكاريوكي ، التي تفصل الصوت والفيديو (EG CDG Files) ، يمكنك استخدام mp3+cdg للإشارة إلى أن جزء الصوت هو ملف mp3 والفيديو هو ملف cdg . بالنسبة لأغاني الكاريوكي ، التي لا تفصل هذا (على سبيل المثال ملفات MP4) ، يمكنك ببساطة استخدام mp4 .endpoint : نقطة نهاية S3.access_key Access لـ S3.secret_key : المفتاح السري لـ S3.secure : إذا كان true يستخدم ssl ، وإلا لا.bucket : دلو لملفات الكاريوكي.index_file : ملف ذاكرة التخزين المؤقت ، يحتوي على أسماء الملفات لملفات الكاريوكي في S3.tmp_dir : دليل تنزيل مؤقت لملفات الكاريوكي. يتم التكوين ضمن sources → files مع الإعدادات التالية:
enabled : true أو false .extensions : قائمة الامتدادات التي سيتم البحث فيها. بالنسبة لأغاني الكاريوكي ، التي تفصل الصوت والفيديو (EG CDG Files) ، يمكنك استخدام 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 لكل سطر. يتم تخزين كلمات المرور كقيمة سداسية عشرية ، ولا يتم قراءة سوى 64 حرفًا لكل سطر بواسطة الخادم. يمكنك استخدام الباقي لإضافة تعليقات. لإضافة مفتاح إلى الملف ، يمكنك ببساطة استخدام echo -n "PASSWORD" | sha256sum | cut -d ' ' -f 1 >> keys.txt .