صمم تراكبات البث الاجتماعي الخاصة بك

قم بتنزيل تصميمات التراكب المحلية وتخصيصها وتوصيلها واختبارها في OBS، مع أدلة لكل عائلة تراكب.

إنشاء تراكبك في 5 خطوات

تنزيل الملفاتتغيير التصميممفتوح في OBS
  1. اختر التراكب الذي تريد تغييره.
  2. قم بتنزيل المصدر المضغوط، وفك الضغط وانسخ ملف HTML الخاص بالتراكب.
  3. تعديل النسخة بنفسك أو اطلب من أداة ذكاء اصطناعي ذلك.
  4. افتح نسختك في OBS مع إضافة إعدادات جلسة SSN إلى عنوانه.
  5. اختبره باستخدام المشغّل الحقيقي للتراكب.
تريد ألواناً أو خطوطاً جديدة فقط؟ تجاوز التنزيل. احتفظ بالرابط المستضاف العادي والصق CSS في حقل مصدر المتصفح في OBS CSS مخصص .

اختر التراكب المطلوب تغييره

يمكنك تغيير ألوان التراكب وخطوطه وتخطيطه ورسومه وحركته. يتيح ملف HTML هو الصفحة. أما رابط OBS يشير إليها ويضيف الجلسة وإعدادات العرض.

اختر تراكب العمل قبل تغيير مظهره.
ابدأ بتراكب يعمل بالفعل.

يستقبل كل نوع تراكب أحداثاً مختلفة. صفحة الدردشة وصفحة الرسالة المميزة والاستطلاع لا تستخدم المدخلات نفسها. افتح دليل تصميم النوع الذي تستخدمه:

دليل التصميمبدء الملفاتما يدفعه
الدردشة والإرساءsampleoverlay.html, dock.html, themes/*كل رسالة محادثة تم التقاطها
رسائل مميزةfeatured.html, samplefeatured.html, themes/featured-styles/*الرسائل المختارة والأوامر الواضحة
التنبيهات وموجزات الأحداثmulti-alerts.html, events.html, themes/events/index.htmlمطابقة الأحداث / صفوف الدردشة المدفوعة
استطلاعات الرأي الرسوميةpoll.htmlالأصوات بالإضافة إلى إعدادات استطلاع المضيف
نصيحة الجرار والأهدافtipjar.htmlتم تكوين مقياس الدعم/العدد/النشاط
العدادات والتصنيفاتhype.html, meta.html, leaderboard.html, scoreboard.htmlالأعداد أو البيانات الوصفية أو النشاط أو اللقطات النقطية
قوائم الانتظار وقائمة الانتظارwaitlist.htmlقائمة انتظار المضيف وحالة الفائز
يعرض الهبةgiveaway.html, giveaway-obs-entries.htmlحالة الهبة المُدارة أو خلاصة الإدخال القديم
الموقتاتtimer.htmlحالة المؤقت وضوابطه
المؤشراتticker.htmlمحتوى المؤشر الذي تم تكوينه
سحب الكلمات والخرائطwordcloud.html, map.htmlمطابقة الكلمات أو إدخالات الموقع
ردود الفعل وتأثيرات الوسائطreactions.html, emotes.html, content.html, gif.html, confetti.html, stickers.html, actions.htmlمشغل الوسائط/الحدث/الإجراء المحدد للصفحة
أسماء المساهمينcredits.htmlضوابط المشاركين المجمعين والاعتمادات
يعرض الموسيقى والذكاء الاصطناعيspotify-overlay.html, cohost-overlay.html, bot.html, chatbot.htmlتحديثات التشغيل الآن أو تحديثات الروبوت/المضيف المشترك
المنتجات واللوحاتmonetization.html, commerce-board.html, shop_the_stream.htmlحالة التجارة المشتركة
الألعاب والمكافآتgames/*, games/templates/*, games.html, battle.htmlالدردشة والهدايا والأوامر الخاصة باللعبة
تراكبات الذكاء الاصطناعي التي تم إنشاؤهاaioverlay.html, aievent-overlay.htmlالتصاميم المحفوظة ومسار الأحداث الذي تم تكوينه

تريد تصميماً جاهزاً؟ جرّب معرض التراكبات أو معرض القوالب. تريد استخدام مظهر دردشة من StreamElements أو Streamlabs؟ اتبع دليل الاستيراد. يأتي هذا التصدير بخطوات إعداده الخاصة.

تنزيل الملفات

  1. تنزيل ملف ZIP لمصدر beta. أو افتح مستودع بيتا واختر الكود → تنزيل ZIP.
  2. فك الضغط في مجلد ستحتفظ به، مثل C:\SSN\social_stream-beta\. لا تعدّل داخل ZIP. لا تحتاج إلى إعادة تثبيت SSN.
  3. ابحث عن ملف التراكب (انظر الجدول أعلاه). أنشئ نسخة بجوار الأصل، مثل poll.html → my-poll.html. لقالب مثل themes/featured-styles/featured-modern.html، أبقِ النسخة في المجلد نفسه.
  4. افتح النسخة في محرر نصوص أو كود واحفظها باسم .html، لا .html.txt.
احتفظ بالمجلد المفكوك كاملاً. قد يحمّل ملف HTML واحد سكربتات وأنماطاً وخطوطاً وصوراً وصوتاً وبيانات من مجلدات مجاورة. نقل الصفحة يكسر هذه الروابط. عرض الصفحة في GitHub أو «حفظ الصفحة» في المتصفح لا يجلب كل شيء.
شكل المجلد وكيف تعمل المسارات
social_stream-beta/
    poll.html
    my-poll.html
    currency.js
    js/
    libs/
    shared/
    thirdparty/
    media/
    sources/images/
    themes/
        featured-styles/
            featured-modern.html
            my-featured.html
    docs/
        event-reference.html

مسار مثل ../../shared/utils/chatHtml.js نسبي إلى الصفحة التي تحمّله. نقل الصفحة إلى المجلد الجذر يكسر المسار. انسخ صورك وخطوطك إلى المجلد أيضاً واستخدم مسارات نسبية. لن تحصل نسختك المعدلة على إصلاحات SSN المستقبلية تلقائياً.

الاحتفاظ برابط الجلسة

شغّل SSN ووصل مصدراً وتأكد من عمل التراكب الأصلي، ثم انسخ الرابط الكامل من أداة SSN الخاصة بذلك التراكب.

https://socialstream.ninja/poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

القيمة بعد session= هي جلسة SSN لديك، وليست قناة YouTube أو اسم Twitch أو اسم الملف أو عنوان الاستطلاع. يجب أن يستخدم SSN وصفحتك الجلسة وكلمة المرور نفسيهما. أبقِ SSN قيد التشغيل؛ التراكبات تستقبل البيانات فقط ولا تلتقط الدردشة بنفسها.

القاعدةالسبب
? يبدأ الإعدادات، و & يربط بقية الإعداداتانسخها ولا تعِد كتابتها. داخل سمة HTML اكتب &. في المتصفح أو حقل URL في OBS، استخدم &.
الاحتفاظ بإعدادات الخادمserver, server2, server3، ونقاط الاتصال المحلية والتسميات وقيم الإصدار تختلف حسب الصفحة. لا تضف خيار خادم لمجرد أن تراكباً آخر يستخدمه.
احتفظ بكل ما يأتي بعد #قد يكون مهماً. يستخدم AI Event Overlay مثلاً رمزاً خاصاً من نوع #aieventauth=... .
استخدم قيماً بديلة عند المشاركةلا تُدرج جلستك الحقيقية أو كلمة المرور أو الرموز الخاصة في لقطات الشاشة أو المستودعات أو مطالبات الذكاء الاصطناعي.

إذا بقيت النسخة فارغة، افحص الرابط الأصلي أولاً. بعض الصفحات تطلب الإعدادات الناقصة، وأخرى تبقى مخفية أو تعيد التوجيه. وضع الجلسة الصحيحة في الرابط يجنب التخمين.

افتح ملفك في OBS

افتح الملف المعدل مباشرةً من حاسوبك. لا تحتاج إلى خادم.

  1. اسحب نسخة HTML إلى Chrome أو Edge وانسخ عنوانها. يبدأ بـ file:///.
  2. من رابط تراكب SSN العامل، انسخ كل شيء بدءاً من ? فصاعداً. الصقه في نهاية عنوان الملف للحفاظ على الجلسة وكلمة المرور والإعدادات وأي # .
  3. افتح العنوان المجمّع في متصفحك لاختباره.
  4. في OBS، أضف مصدر المتصفح. اترك ملف محلي غير محدد. الصق العنوان الكامل في URL واضبط العرض والارتفاع.

مثال: رابط SSN هذا…

https://socialstream.ninja/poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

…يصبح هذا لنسخة استطلاع منزّلة على Windows:

file:///C:/SSN/social_stream-beta/my-poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

على macOS يبدأ بـ file:///Users/...، وعلى Linux عادةً file:///home/.... النسخ من المتصفح يتولى معالجة المسافات والشرطات المائلة.

معلومات مفيدةالتفاصيل
تحتاج إلى إعداده مرة واحدة فقطيحفظ OBS العنوان. أبقِ المجلد في مكانه وSSN ومصدر الدردشة قيد التشغيل.
حفظت تعديلاً؟انقر على تحديث ذاكرة التخزين المؤقت للصفحة الحالية (Refresh cache of current page) في خصائص المصدر.
لماذا تترك الملف المحلي دون تحديد؟يتيح حقل URL إضافة ?session=.... اختيار الملف عبر Local file لا يضيف هذه الإعدادات.
اختياري: استخدم مربع اختيار الملف المحلي مع المشغل

يختار منتقي الملفات في OBS ملفاً لكنه لا يضيف إعداداتك. تستطيع صفحة تشغيل صغيرة فتح الصفحة المعدلة مع إرفاق الإعدادات:

  1. احفظ الكود أدناه باسم launch-my-poll.html بجوار my-poll.html.
  2. استبدل الرابط النموذجي برابط SSN الكامل المنسوخ. غيّر ./my-poll.html إلى اسم ملفك. احتفظ بالرابط بين علامتي اقتباس، باستخدام & .
  3. انقر ملف التشغيل مرتين لاختباره. في OBS، فعّل ملف محلي واختر قاذفة. يحولك إلى التراكب مع الإعدادات و # .
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<title>My local overlay launcher</title>
<p>Opening the local overlay...</p>
<script>
var copiedLink = new URL("https://socialstream.ninja/poll.html?session=YOUR_SESSION");
var localPage = new URL("./my-poll.html", window.location.href);
localPage.search = copiedLink.search;
localPage.hash = copiedLink.hash;
window.location.replace(localPage.href);
</script>
</html>

للقالب داخل مجلد فرعي، ضع ملف التشغيل بجوار نسخة القالب. احتفظ بملف التشغيل سرياً لأنه يحتوي رابط اتصالك. أما التصدير المستقل الذي يتضمن إعداداته فيتبع تعليماته الخاصة.

يشرح OBS وضعي الملف والرابط والأحجام وCustom CSS والتحديث في مرجع مصدر المتصفح.

غيّر التصميم بنفسك أو اطلب من الذكاء الاصطناعي ذلك

أريد أن…افعل هذا
تغيير CSS فقطاحتفظ بالرابط المستضاف واستخدم خيار OBS CSS مخصص . يؤثر فقط في مصدر OBS هذا، وليس في المتصفح العادي.
إعادة تنسيق نسخة HTML المعدلةأضف أنماطك بعد الموجودة، أو اربط ملف أنماط محلياً بعدها.
استخدم &css= أو &b64css=تدعمه بعض الصفحات فقط. poll.html، مثلاً، لا يقرأ أياً منهما. افحص كود الصفحة أولاً.
تغيير تخطيط HTMLاحتفظ بالمعرّفات والفئات التي تستخدمها السكربتات. إذا أعاد سكربت بناء عنصر مع كل تحديث، ضع الرسوم الدائمة خارجه أو أضفها إلى دالة العرض.
تعديل ملف أنماط أو سكربت مشتركانسخه ووجّه صفحتك إلى النسخة حتى يتغير تصميمك وحده.

جهّز شعارك وملفات الخطوط وألوان العلامة وحجم اللوحة ومرجعاً بصرياً. عموماً لا تستطيع صفحة ويب تحميل خطوط أو صور من قرص حاسوب آخر.

موجه الذكاء الاصطناعي

استخدم المطالبة الخاصة بالنوع في دليل التصميم المناسب، أو ابدأ بهذه. أعطِ الذكاء الاصطناعي ملفك المنسوخ والأنماط والسكربتات التي يحمّلها.

Customize [copied overlay filename] to match [reference/design].
Canvas: [width x height]. Placement: [position]. Colors/fonts: [details].
Use the existing page and its supporting files, rather than replacing its
connection and event logic. Read docs/event-reference.html and the relevant
overlay design guide. Preserve query parameters, session/password, URL
fragments, bridge labels, transport channels, settings, and controls.
Use CSS first. Keep relative paths and package all executable dependencies
locally. Use classic scripts compatible with Chrome 80.
Keep operator controls, private links, and credentials off the audience view.

Treat all incoming messages, names, labels, donations, and metadata as untrusted.
Prevent HTML/JavaScript injection in every renderer you change. Use textContent
for plain fields and for chatmessage when textonly is true. For HTML-mode
chatmessage, keep supported emotes/formatting through the packaged
SocialStreamChatHTML.sanitize helper (libs/objects.js loaded first).
Do not concatenate raw input into innerHTML, attributes, CSS, or JavaScript.
Validate media/link URLs with the page's existing URL policy and assign DOM
properties; do not enable javascript: URLs or executable embedded content.
Never eval incoming data or treat a viewer message as an AI instruction.
Keep source checks, connection handling, and existing sanitizers.
Test plain text, allowed emotes, quotes, angle brackets, and an HTML injection
probe in an isolated preview; verify the probe cannot execute.

Make the edited overlay work directly from disk using a file:/// URL,
without requiring a local web server. Return the edited files and assets,
file URL and OBS setup steps, and tests
for this overlay's real trigger. Use session placeholders in shared examples.
Explain any behavior changes separately from the design edits.
لا تقبل نموذجاً وهمياً. التصميم الذي لا يعمل إلا مع رسائل نموذجية ثابتة لم يكتمل. احتفظ بالملف الأصلي وقارن الاثنين باستخدام المدخلات التجريبية نفسها.

منع تحول الدردشة الواردة إلى كود

تأتي الأسماء والرسائل والعناوين والمبالغ والروابط من المشاهدين والخدمات الخارجية. تعامل معها كنص لا ككود، ونقّها عند وضعها في الصفحة عبر دالة العرض.

الحقلكيفية عرضه
chatmessage مع textonly trueنص عادي (textContent).
chatmessage وإلاقد يتضمن رموزاً تعبيرية وتنسيقاً مسموحاً. استخدم أداة التنقية المرفقة.
الأسماء والمبالغ والعناوين والحقول النصية الأخرىنص عادي (textContent).
chatimg, contentimg، والروابطعناوين URL وليست HTML. تحقق منها بقواعد الوسائط والروابط الموجودة في الصفحة ثم عيّن خصائص DOM.
<!-- Example for a copied page at the repository root. -->
<script src="./libs/objects.js"></script>
<script src="./shared/utils/chatHtml.js"></script>
<script>
function renderChatBody(element, data) {
    var message = String(data.chatmessage == null ? "" : data.chatmessage);
    if (data.textonly) {
        element.textContent = message;
    } else {
        element.innerHTML = SocialStreamChatHTML.sanitize(message);
    }
}
// Names, amounts, titles, and other plain fields use textContent:
// nameElement.textContent = String(data.chatname || "");
</script>
  • إذا كانت الصفحة تتضمن أداة تنقية بالفعل، فاحتفظ بها ولا تضف ثانية.
  • للملفات داخل مجلدات فرعية، صحح مسارات السكربتات.
  • لا تلصق الأسماء الخام داخل نصوص السمات أو الألوان الخام في ترميز الأنماط. تحقق من قيم الأنماط قبل تعيين كل خاصية على حدة.
  • حتى HTML المنقّى ليس آمناً للتنفيذ كـ JavaScript أو للاستخدام كتعليمات للذكاء الاصطناعي.

معلومات إضافية: دليل OWASP لوجهات العرض الآمنة وتنقية HTML.

كيفية اختبار دالة العرض بأمان

شغّل هذه الاختبارات في معاينة محلية خاصة، لا في دردشة عامة.

  • استخدم اسماً مثل Guest <b>One</b>. ينبغي أن تظهر الأقواس كنص.
  • أرسل chatmessage: "<b>Hello</b>" مع textonly: true، ثم false. ينبغي أن يعرض أحد الاختبارين الوسوم كنص والآخر نصاً عريضاً.
  • تحقق من استمرار عمل رمز تعبيري مدعوم ورسالة تحتوي صورة فقط.
  • اطلب من الذكاء الاصطناعي اختبار عينة غير ضارة مثل <img src=x onerror="window.__ssnInjectionProbe=1">. يجب ألا يُنفَّذ أو يضبط علامة الاختبار أو يترك سمات أحداث. اختبر أيضاً رابطاً يستخدم مخطط script.

نجاح الاختبار يغطي المسارات التي اختبرتها فقط. ركز على دوال العرض والحقول التي تغيرت بتصميمك.

اختبره، جزءاً جزءاً

اختبارالكيفية
التخطيطاستخدم وضع المعاينة أو العرض التجريبي إن وجد، أو عينات محلية وهمية. جرّب أسماء ورسائل طويلة وصوراً رمزية مفقودة وبيانات فارغة وعدد الصفوف المتوقع.
تسليم SSNأبقِ SSN مفعلاً واستخدم إنشاء رسالة اختبار مع الجلسة نفسها. يحتاج وضع Extension API المعتاد إلى التحكم في الإضافة عن بُعد عبر API مفعلاً. استخدم إعداد اختبار؛ فقد تشغّل الرسائل التجريبية أنظمة الأتمتة.
المشغّل الفعلياختر رسالة مميزة من Dock، أو صوّت في استطلاع، أو اختر فائزاً، أو غيّر نص الشريط، أو شغّل مؤقتاً. الدردشة العادية لا تختبر كل شيء.
التقاط حقيقيتحقق من وصول رسالة أو حدث حقيقي إلى الأصل والنسخة. الحدث الوهمي يثبت عمل العرض فقط.
OBSتحقق من الحجم النهائي والشفافية والحركة والصوت والخطوط وترتيب الطبقات. جرّب الإظهار/الإخفاء والمسح/إعادة الضبط والتحديث. لا يشترك OBS ومتصفحك في تسجيل الدخول أو البيانات المحفوظة.
قد يؤدي التحديث إلى فقدان البيانات. تحتفظ بعض الصفحات بالبيانات في الذاكرة. راجع دليل النوع قبل تفعيل التحديث التلقائي أو الإغلاق عند الإخفاء. أزل demo أو preview من الرابط قبل انتظار بيانات حية.

ملفات تقدمها للذكاء الاصطناعي

أعطِ الذكاء الاصطناعي ملف التراكب نفسه وملفات CSS/JS التي يحمّلها، إضافة إلى هذه الملفات. مرجع الأحداث وحده لا يشرح أدوات التحكم بالاستطلاع أو كود تخطيط كل تراكب.

ملفالغرض منه
docs/event-reference.htmlالحقول الرسمية والأحداث المسماة والبيانات الوصفية والوسائط وقيم التبرعات.
docs/customoverlays.mdمستقبِلات مخصصة وأمثلة للاتصال.
توافق الأحداث والتنبيهاتالأحداث والحقول التي يرسلها كل مصدر.
دليل رسائل الاختبار و createtestmessage.htmlعينات البيانات وأوضاع التسليم.
libs/objects.js و shared/utils/chatHtml.jsأداة تنقية العرض المرفقة.
shared/utils/chatBadges.js و shared/utils/contentImage.jsمعالجة الشارات والصور الموجودة.
js/transport-dedupe.js, js/local-server-url.js, shared/overlay-control-transport.jsدعم الاتصال الموجود، عندما تحمّله صفحتك.
currency.jsأبقِ hasDonation للعرض، واستخدم قيمة رقمية صالحة بالدولار الأمريكي لـ donoValueومنها الصفر.
Event Flow و الأوامر وAPIأعد استخدام أدوات التحكم الموجودة عندما يحتاج التصميم إلى مشغّل.

حل المشكلات

المشكلةجرّب هذا
الملف غير موجوداسحب HTML إلى متصفحك مجدداً وانسخ عنوانه. تحقق من أن الاسم ينتهي بـ .html وليس .html.txt.
النص أو الخط أو الصورة مفقودأبقِ المجلد المفكوك كما هو، مع نسختك بجوار الأصل. تحقق من وجود الصور والخطوط المضافة حيث تتوقعها الصفحة.
عرض فارغ أو «قيد الانتظار»تحقق من الجلسة وكلمة المرور وكامل ? و # بالكامل، وأن SSN يعمل والميزة مفعلة والمدخل الصحيح يصل. قارن بالرابط الأصلي من SSN.
المظهر في OBS يختلف عن المتصفحتحقق من العرض والارتفاع وCustom CSS القديم والخطوط والذاكرة المؤقتة وتخزين المتصفح. حدّث بعد الحفظ.
الشعار يختفي عند التحديثربما يعيد السكربت بناء الحاوية. ضع الزخارف الدائمة خارجها أو حدّث قالب العرض.
تُصفّر البيانات أو تُنفذ الإجراءات مرتينتحقق من إعدادات التحديث/الإغلاق والنسخ المكررة من التراكب أو أدوات التحكم، ومن معالجة الصفحة للتكرار والحالة.
حالة خاصة: الصفحات التي تقرأ ملفات بيانات منفصلة

تُحمّل الخريطة ملفات JSON محلية باستخدام fetch()، وهو ما قد يمنعه المتصفح عند الفتح من القرص. لتغيير مظهر الخريطة فقط، استخدم رابطها المستضاف مع Custom CSS في OBS. للنسخة المعدلة، اطلب من الذكاء الاصطناعي تضمين بيانات الخريطة داخل الصفحة حتى تعمل من القرص. الاستضافة خيار متقدم للصفحات التي تحتاجها فعلاً وليست خطوة عادية.

أصلح أصغر مشكلة مؤكدة أولاً. تغيير المظهر لا ينبغي أن يحتاج تعديلات على سكربتات الالتقاط أو حقول أحداث جديدة. إذا شاركت نسخة عامة، أرفق ملفاتها واترك ملفات التشغيل الخاصة خارجها.