1. توصيل Flow Actions بـ OBS
OBS WebSocket v5 مدمج في OBS 28 والإصدارات الأحدث. يستخدمه Social Stream Ninja للتحكم الكامل في OBS وأحداث الوسائط.
- في OBS، افتح الأدوات (Tools) → إعدادات خادم WebSocket (WebSocket Server Settings).
- فعّل خادم WebSocket. أبقِ المنفذ الافتراضي
4455؛ واضبط كلمة مرور إن رغبت. - في Social Stream Ninja، افتح Flow Actions واضبط رابط OBS WebSocket وكلمة المرور الاختيارية.
- انسخ رابط Flow Actions وأبقِه مفتوحًا. يُنصح باستخدام مصدر متصفح OBS لإجراءات التراكب والصوت.
- استخدم أداة اختبار OBS WebSocket لتأكيد الاتصال قبل إنشاء تدفق.
https://socialstream.ninja/actions.html?session=YOUR_SESSION&obsws=ws://127.0.0.1:4455أضف
&obspw=YOUR_PASSWORD فقط عندما يتطلب OBS المصادقة. أضف &obsdebug=1 لإظهار شارة صغيرة لحالة الاتصال أثناء تشخيص المشكلات.
وضعا الاتصال بـ OBS
| الوضع | ما الذي يدعمه | المتطلب |
|---|---|---|
| OBS WebSocket v5 | كل مشغّل وإجراء في هذا الدليل. | OBS 28 أو أحدث، وخادم WebSocket مفعّل، وصفحة Flow Actions مفتوحة. |
| OBS Browser Source API | بديل احتياطي لتغيير المشاهد وبدء البث وإيقافه وبدء التسجيل وإيقافه وحفظ مخزن الإعادة. | Flow Actions محمّل داخل OBS بمستوى وصول Advanced. تظل ميزات المصدر والمرشح والنص ومستوى الصوت والوسائط والتحديث وانتهاء الوسائط تتطلب WebSocket. |
2. إضافة عقد OBS إلى تدفق
- افتح محرر Event Flow وأنشئ تدفقًا أو عدّله.
- اسحب مشغّلًا إلى مساحة العمل.
- وسّع OBS Studio في قائمة الإجراءات واسحب إجراء OBS الذي تحتاجه.
- اربط المشغّل بالإجراء، واضبط أسماء مشاهد ومصادر OBS بدقة، ثم احفظ التدفق وفعّله.
3. مشغّلات OBS
تبدأ هذه المشغّلات تدفقًا عندما يبلغ OBS عن حدث مطابق. وتصل بوصفها type: "obs"؛ وتوجد تفاصيل OBS ضمن meta.
| المشغّل | متى يعمل | بيانات مفيدة |
|---|---|---|
| بدء بث OBS (OBS Stream Started) | يصل البث إلى حالة البدء. | meta.outputState, meta.outputActive |
| إيقاف بث OBS (OBS Stream Stopped) | يصل البث إلى حالة التوقف. | meta.outputState, meta.outputActive |
| بدء تسجيل OBS (OBS Recording Started) | يبدأ التسجيل. | meta.outputState |
| إيقاف تسجيل OBS (OBS Recording Stopped) | يتوقف التسجيل. | meta.outputState |
| تغيير مشهد OBS (OBS Scene Changed) | يتغير مشهد البرنامج النشط. | meta.sceneName |
| انتهاء وسائط OBS (OBS Media Ended) WebSocket | ينتهي تشغيل مُدخل وسائط. يمكنك اختياريًا الترشيح حسب اسم مصدر الوسائط الدقيق (Media Source Name). | meta.inputName, meta.inputUuid |
| حفظ مخزن إعادة OBS (OBS Replay Buffer Saved) | ينتهي OBS من حفظ إعادة. | meta.savedReplayPath |
4. إجراءات OBS
| الإجراء | الضبط والسلوك | الاتصال |
|---|---|---|
| تغيير المشهد (Change Scene) | يبدّل مشهد البرنامج النشط باستخدام اسم المشهد الدقيق. | WebSocket أو OBS Browser Source API كبديل احتياطي |
| تبديل المصدر (Toggle Source) | إظهار عنصر مشهد أو إخفاؤه أو تبديل ظهوره. المشهد والمجموعة حقلا استهداف اختياريان. | WebSocket |
| ضبط مصدر النص (Set Text Source) | يحدّث Text (GDI+) أو Text (FreeType 2) مع عناصر نائبة للقالب. | WebSocket |
| التحكم بمصدر الوسائط (Control Media Source) | تشغيل أو استئناف أو إيقاف مؤقت أو إعادة تشغيل أو إيقاف أو التالي أو السابق. | WebSocket |
| ضبط مستوى صوت المصدر (Set Source Volume) | يضبط مُدخلًا ضمن النطاق من -100 إلى +26 ديسيبل. | WebSocket |
| تحديث مصدر المتصفح (Refresh Browser Source) | يعيد تحميل مصدر متصفح دون ذاكرة مؤقتة. | WebSocket |
| تبديل المرشح (Toggle Filter) | تفعيل مرشح مصدر مسمى أو تعطيله أو تبديله. | WebSocket |
| كتم الصوت أو إلغاء كتمه (Mute/Unmute Audio) | كتم مُدخل أو إلغاء كتمه أو تبديل حالته. | WebSocket |
| بدء التسجيل (Start Recording) | يبدأ تسجيل OBS. | WebSocket أو OBS Browser Source API كبديل احتياطي |
| إيقاف التسجيل (Stop Recording) | يوقف تسجيل OBS. | WebSocket أو OBS Browser Source API كبديل احتياطي |
| بدء البث (Start Streaming) | يبدأ إخراج البث المضبوط في OBS. | WebSocket أو OBS Browser Source API كبديل احتياطي |
| إيقاف البث (Stop Streaming) | يوقف إخراج البث في OBS. | WebSocket أو OBS Browser Source API كبديل احتياطي |
| التحكم بمخزن الإعادة (Control Replay Buffer) | بدء مخزن الإعادة أو إيقافه أو تبديل حالته. | WebSocket |
| حفظ مخزن الإعادة (Save Replay Buffer) | يحفظ مخزن الإعادة الجاري تشغيله. | WebSocket أو OBS Browser Source API كبديل احتياطي |
ضبط مصدر النص ومتغيرات التدفق
يدعم حقل النص العناصر النائبة المعتادة للرسائل مثل {username}, {message}, {source}، و {donation}، بالإضافة إلى القيم التي أضافتها عقد التدفق السابقة مثل {counterValue}, {counterTarget}، و {counterRemaining}.
{username}: now {counterValue}, need {counterTarget}
عناصر تحكم مصدر الوسائط
تشغيل / إيقاف مؤقت
تشغيل (Play) يستأنف الوسائط الموقوفة مؤقتًا. إيقاف مؤقت (Pause) يحتفظ بموضعه الحالي.
إعادة التشغيل / الإيقاف
إعادة التشغيل (Restart) يبدأ من البداية. إيقاف (Stop) ينهي التشغيل ويعيد ضبط المُدخل.
التالي / السابق
ينتقل بين عناصر المُدخلات التي تدعم قوائم التشغيل، مثل VLC Video Source. قد يتجاهل مصدر الوسائط ذو الملف الواحد هذه الإجراءات.
مستوى الصوت والكتم والمرشحات
ضبط مستوى صوت المصدر (Set Source Volume) يستخدم الديسيبل، بما يتوافق مع مقياس مازج OBS: 0 dB يعني عدم تغيير الكسب، والقيم السالبة تخفض الصوت، و -100 dB صامت فعليًا. الكتم حالة منفصلة. لا يغيّر Toggle Filter إلا حالة تفعيل مرشح موجود؛ ولا يعدّل إعدادات المرشح.
مخزن الإعادة (Replay Buffer)
فعّل مخزن الإعادة أولًا في إعدادات OBS (Settings) → الإخراج (Output). استخدم التحكم بمخزن الإعادة (Control Replay Buffer) لبدئه أو إيقافه، ثم حفظ مخزن الإعادة (Save Replay Buffer) لكتابة المقطع الأخير المخزن مؤقتًا على القرص.
5. وصفات مفيدة
رسالة كل ساعة أثناء بث OBS المباشر
في محرر Event Flow، اختر البدء بقالب (Start with a template) → متوسط (Intermediate) → رسالة كل ساعة أثناء بث OBS المباشر (Hourly message while OBS is live). يبدأ معطلًا ويحتوي على ثلاثة فروع ضمن تدفق واحد:
- بدء بث OBS → ضبط حالة البوابة: ON
- فاصل زمني (3600 ثانية) → مفتاح ON/OFF → إرسال رسالة
- إيقاف بث OBS → ضبط حالة البوابة: OFF
يستهدف إجراءا Set Gate State بالفعل المفتاح نفسه، الذي يبدأ افتراضيًا على OFF. عدّل إرسال رسالة (Send Message) لاختيار منصة الدردشة (يستخدم المثال Twitch) والرسالة. اختر منصة أو All Platforms؛ فلا يستطيع Reply to Source الرد على حدث OBS أو نبضة مؤقت.
توصيل Flow Actions بـ OBS، وأبقِ Social Stream والدردشة المستهدفة متصلين، ثم احفظ التدفق وفعّله قبل بدء البث. ينتظر المفتاح حدث بدء من OBS؛ وتحميله أثناء بث قائم لا يحوله إلى ON. كما تعيد إعادة تشغيل Social Stream ضبط المفتاح على OFF.
التوقيت: يعمل الفاصل الزمني وفق جدوله الخاص، لذا قد يصل التذكير الأول قبل مرور ساعة على بدء البث. وتتكرر التذكيرات اللاحقة كل ساعة ما دام المفتاح ON. غيّر قيمة Time Interval لتغيير التواتر؛ وتقاس بالثواني.
نص العداد في OBS
ضع ضبط مصدر النص (Set Text Source) بعد مسار العداد أو الفحص واستخدم:
{username}: now {counterValue}, need {counterTarget}
تشغيل شيء بعد فيديو
انتهاء وسائط OBS (OBS Media Ended) (رشّح إلى Intro Video) → تغيير المشهد (Change Scene) إلى Main.
إعادة تشغيل الوسائط بتحكم الدردشة
الرسالة تساوي (Message Equals) !replayintro → شرط الصلاحية → التحكم بمصدر الوسائط: إعادة التشغيل (Control Media Source: Restart).
تحديث صفحة تنبيه
الرسالة تساوي (Message Equals) !refreshalerts → شرط المشرف → تحديث مصدر المتصفح (Refresh Browser Source).
خفض الموسيقى مؤقتًا لتنبيه
ضبط مستوى صوت المصدر (Set Source Volume) إلى -24 dB → إجراء تنبيه → تأخير → استعادة القيمة إلى 0 dB.
مسار عمل الإعادة
بدء بث OBS (OBS Stream Started) → التحكم بمخزن الإعادة: بدء (Control Replay Buffer: Start)؛ وينفّذ أمر منفصل موثوق حفظ مخزن الإعادة (Save Replay Buffer).
6. عناصر تحكم OBS المدمجة الأخرى
يتضمن Social Stream Ninja أيضًا عناصر تحكم أقدم لـ OBS Browser Source في لوحة إرساء Streaming Chat. لا تستخدم هذه جسر WebSocket الخاص بـ Flow Actions.
| الخيار | ما الذي يفعله | المتطلب |
|---|---|---|
| مؤشر مشهد OBS الحالي | يعرض المشهد النشط في لوحة إرساء Streaming Chat. | لوحة إرساء محمّلة داخل OBS بإذن القراءة. |
| يمكن للضيوف استخدام !cycle | ينتقل إلى مشهد OBS التالي، مع حد مرة واحدة كل 10 ثوانٍ. | فعّل خيار النافذة المنبثقة؛ مع تحميل لوحة الإرساء داخل OBS بصلاحية Advanced. |
| يمكن للمستخدمين ذوي الصلاحيات استخدام !start / !stop | يبدأ البث أو يوقفه بناءً على أوامر مستخدمي دردشة موثوقين. | فعّل خيار النافذة المنبثقة؛ مع تحميل لوحة الإرساء داخل OBS بصلاحية تحكم Full أو Advanced. |
| لوحة تحكم OBS عن بُعد | يعرض المشاهد ويمكنه تبديل المشاهد أو تشغيل البث والتسجيل وإيقافهما عندما تمنح لوحة إرساء OBS المستهدفة مستوى التحكم المطلوب. | لوحة إرساء Streaming Chat مقترنة بلوحة إرساء تعمل داخل OBS. |
| أداة اختبار OBS WebSocket | يفحص الإصدار والاتصال والمشاهد والطلبات الفردية قبل استخدام Event Flow. | فتح أداة الاختبار |
7. استكشاف الأخطاء
| المشكلة | تحقق من |
|---|---|
| لا يحدث شيء | التدفق محفوظ ومفعّل؛ وFlow Actions مفتوح؛ ويستخدمان معرّف الجلسة نفسه. |
| OBS لا يتصل | خادم WebSocket مفعّل، والرابط هو ws://127.0.0.1:4455، وأن كلمة المرور مطابقة. المنفذ 4444 هو المنفذ الافتراضي القديم للإصدار v4. |
| لم يُعثر على المشهد أو المصدر أو المرشح | انسخ اسم OBS الدقيق. للتحكم في الظهور، حدد المشهد أو المجموعة عندما يكون العنصر متداخلًا أو خارج المشهد الحالي. |
| النص لا يتغير | استخدم Text (GDI+) أو Text (FreeType 2)، وتأكد من اسم المُدخل، وعطّل القراءة من ملف (Read from file). |
| حدث Media Ended لا يعمل أبدًا | استخدم OBS WebSocket v5 ومُدخل وسائط حقيقيًا. لا تصل الوسائط المتكررة إلى حالة انتهاء. |
| التالي والسابق لا يفعلان شيئًا | استخدم مصدرًا يدعم قوائم التشغيل، مثل VLC Video Source. |
| فشل حفظ الإعادة | فعّل مخزن الإعادة في إعدادات إخراج OBS وابدأه قبل الحفظ. |
| تتوقف الإجراءات عند تغيير المشهد | تعطيل (Disable) إيقاف المصدر عندما لا يكون ظاهرًا (Shutdown source when not visible) في مصدر متصفح Flow Actions، أو أبقِ الصفحة مفتوحة في مكان آخر. |
GetVersion → تأكد من المشاهد والمُدخلات → اختبر الطلب الفردي → اختبر Event Flow كاملًا.