Communitygithub.com

فيديو ترويجي مصري احترافي

أنشئ فيديو ترويجي / إعلان احترافي عمودي (9:16) لتطبيق، موقع، نظام أو منتج، مع تعليق صوتي مصري، كتابة حركية بالعربية، لقطات شاشة حقيقية في إطارات هاتف، ترجمة متزامنة، موسيقى أصلية ومؤثرات صوتية - يتم تصديره محلياً إلى MP4 (ونسخة واتساب) بدون أدوات مدفوعة.

¿Qué es فيديو ترويجي مصري احترافي?

هذه الأداة المتخصصة تقوم ببناء فيديو ترويجي عمودي احترافي (9:16) بطول 60-70 ثانية بالكامل على الجهاز المحلي، مع تعليق صوتي مصري حقيقي. تستخدم Gemini TTS المجاني للحصول على صوت طبيعي باللهجة المصرية (أكثر من 92 صوتاً) مع كتابة حركية متزامنة، لقطات شاشة حقيقية للمنتج في إطارات هاتف، ترجمة نصية مطابقة للصوت، وموسيقى أصلية من تأليف الأداة. الأداة مناسبة لمن يريد فيديو ترويجي، إعلان، ريلز، فيديو انيميشن، أو شرح منتج باللهجة المصرية، وتعمل على أنظمة ويندوز، ماك، ولينكس مع متطلبات بسيطة (Node 18، ffmpeg، Chrome). سير العمل منظم: كتابة السيناريو، أخذ لقطات الشاشة، تسجيل الصوت، معاينة الإطارات، ثم التصدير النهائي، مع مرونة تامة لتغيير المنتج أو إعادة تسمية العلامة التجارية.

Compatible con~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/ussefehab/afhamha-sah-video-skill/tree/HEAD/egyptian-promo-video

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

فيديو ترويجي مصري

يقوم ببناء فيديو ترويجي عمودي بطول ~60-70 ثانية بالكامل على الجهاز المحلي:

script.json ──► voice-over (Gemini TTS, مجاني) ──► مقاطع لكل سطر ──► خط زمني
screenshots ──► promo.html (تحريك seek(t)) ──► إطارات Puppeteer ──► ffmpeg
synth.cjs (إيقاع أصلي + مؤثرات) ──► مكس مع ضغط جانبي ──► loudnorm −14 LUFS ──► MP4 + نسخة واتساب

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

المثال المُجرّب (نظام طلب مطعم: اتصال هاتفي مزدحم → ألم واتساب → كشف → قائمة → سلة → طاولات QR → تتبع الطلب → لوحة التحكم → إحصائيات → العلامة التجارية + دعوة للتحرك) هو القالب الافتراضي. أعد استخدام هيكله لمنتجات أخرى بتغيير المشاهد، وليس المحرك.

ما تحتاجه

  • Node 18+، ffmpeg/ffprobe في PATH، Google Chrome (أو عيّن CHROME_PATH).
  • في مجلد build: npm i puppeteer-core qrcode msedge-tts@2 (على قرص C كامل وجّه npm_config_cache و TEMP إلى قرص آخر).
  • مفتاح مجاني من Google AI Studio للصوت (aistudio.google.com/apikey). المستخدم يلصقه بنفسه في VIDEO/.env كـ GEMINI_API_KEY=… — أنشئ الملف بالمفتاح فارغاً ولا تطلب منه لصقه في الشات أو طباعته. أول استدعاء قد يقول أن Generative Language API معطل للمشروع: أعطهم رابط الكونسول من الخطأ ليضغطوا Enable، ثم أعد المحاولة بعد دقيقة.

هيكل المجلدات

أنشئ VIDEO/ داخل مشروع المستخدم (مثلاً marketing/video-<brand>/):

VIDEO/.env            GEMINI_API_KEY=      (يملؤه المستخدم)
VIDEO/script.json     نسخة من assets/script.example.json، معدّلة
VIDEO/build/          scripts/* + assets/template/* من هذه المهارة
VIDEO/build/img/      لقطات شاشة + شعارات يستخدمها promo.html
VIDEO/vo/             s01.wav … s10.wav (مقاطع الصوت)
VIDEO/out/            ريندرات، sheet.jpg، timeline.json

سير العمل

1. الإيجاز (اسأل فقط عما لا يمكنك إيجاده)

المنتج وماذا يفعل، الجمهور (من يشتري)، اسم العلامة التجارية وكيف ينطق، لوحة الألوان + الشعار (ابحث في كود المستخدم: tailwind config، icon.svg، مكون Logo)، الدعوة للتحرك (CTA)، معلومات الاتصال إن وجدت. التنسيق الافتراضي: 9:16، 60-70 ثانية، لهجة مصرية، صوت ذكر نشيط.

2. السيناريو → script.json

عشرة أسطر، مشهد لكل سطر. الهيكل الذي نجح:

  1. خطف (0-4 ث): سؤال مؤلم يعرفه المشاهد ("كام أوردر ضاع منك النهارده… عشان التليفون كان مشغول؟").
  2. الألم: الطريقة السيئة الحالية، وتنتهي بالخسارة.
  3. الكشف: "طب تخيّل…" + المنتج (هنا ينزل الإيقاع). 4–9. ميزة واحدة لكل مشهد، كل منها مع لقطة شاشة حقيقية.
  4. العلامة التجارية + الدعوة للتحرك: من يقدمه، دعوة للاشتراك/الاتصال.

voice هو ما يقرأه TTS: اكتبه بالطريقة التي ينطقها بها المصري (عامية، "…" للأنفاس، "؟" لنبرة السؤال، الأرقام ككلمات "أربعة وعشرين"، "QR" كـ "كيو آر"). subtitles هو ما يراه المشاهدون (أرقام "٢٤"، "QR"، العلامة التجارية بحروف لاتينية). headlines هي عناوين حركية من 2-5 كلمات للمشاهد 1-9؛ لف الكلمة المميزة بـ *…*.

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

أسماء العلامات التجارية التي تحتوي على V/P/G: العربية لا تحتوي على V، لذا "نوفيكس" تُقرأ "NOFIX". اكتبها بحرف ڤ ("نوڤيكس") أو باللاتينية ("NOVIX") في voice، ثم تحقق باستخدام check-v.cjs (الخطوة 4).

3. لقطات الشاشة (منتج حقيقي، بحجم الهاتف)

استخدم puppeteer بحجم 390×844، deviceScaleFactor 3 (→ 1170×2532) واحفظ في build/img/. القالب يتوقع: phone-home.png, phone-sweets.png, phone-restaurant.png, phone-options.png, phone-cart.png, tracking.png, dashboard-cancel.jpg, dashboard-stats.jpg, dashboard-products.jpg — أعد تسمية/استبدال حسب المنتج (انظر references/template.md).

  • إعادة تسمية / عرض توضيحي عام: حقن سكربت مع evaluateOnNewDocument + MutationObserver يعيد كتابة اسم العلامة التجارية القديم، يستبدل src الشعار، يخفي أرقام الهواتف ويستبدل صور العلامة التجارية، ثم تحقق من innerText للتأكد من عدم وجود بقايا.
  • صفحات مسجلة الدخول (لوحات التحكم): استخدم نافذة المتصفح المضمنة حيث المستخدم مسجل الدخول بالفعل (لا تكتب كلمة المرور الخاصة به أبداً)، قلد إطار عرض 375×812، طبق نفس تبديلات DOM باستخدام javascript_tool، والتقط لقطة الشاشة هناك (تحفظ ملفاً يمكنك نسخه). قد يعيد الإطار تعيين حجمه في منتصف المهمة — أعد تطبيق إطار العرض المحمول قبل كل لقطة.
  • بيانات عملاء حقيقية: أخفِ الأسماء/أرقام الهواتف على الشاشة قبل الالتقاط. إذا كنت بحاجة إلى حالات واقعية (طلب جديد، طلب إلغاء)، أنشئ سجلات تجريبية موضحة بوضوح، التقط، ثم احذف هذه السجلات فقط وأكد حذفها.

4. التعليق الصوتي

أصوات مصرية طبيعية مجانية تأتي من Gemini TTS (scripts/vo-gemini.cjs):

  • gemini-3.8-flash-tts يحتوي على 92 صوتاً مصرياً أصلياً (ar-eg-*، مثلاً ar-eg-concierge-1 شاب/مشرق، ar-eg-commercial-11 صوت إعلان، ar-eg-storyteller-3 غير رسمي). الطبقة المجانية: 10 طلبات فقط في اليوم لهذا النموذج.
  • gemini-3.1-flash-tts-preview له حصة مجانية منفصلة ولكن فقط أصوات عامة (Puck ذكر مرح — اختيار المستخدم، Orus ذكر حازم، …) تُوجّه إلى المصرية بنص الأسلوب.
  • الأوامر (تشغيل من VIDEO/build):
    • node vo-gemini.cjs voices → عرض أصوات ar-EG.
    • node vo-gemini.cjs sample <voice> [voice…] → سطر الخطف لكل صوت في vo/samples/ (طلب واحد لكل صوت). حولها إلى mp3 وأرسلها ليختار المستخدم بالأذن — لا يمكنك الاستماع.
    • node vo-gemini.cjs all <voice> → طلب واحد للسيناريو كله، يُقسّم إلى 10 مقاطع عند الوقفات (رخيص على الحصة ويبدو وكأنه لقطة واحدة مستمرة). النسخ القديمة تُنسخ احتياطياً.
    • node vo-gemini.cjs line <voice> <n> → إعادة تسجيل سطر واحد.
    • استخدم GEMINI_TTS_MODEL=gemini-3.1-flash-tts-preview للتبديل بين النماذج.
  • أنفق العينات بحكمة (5 أصوات = 5 طلبات). إذا نفدت حصة 3.8، اعرض: انتظر حتى إعادة التعيين (~منتصف الليل بتوقيت المحيط الهادئ)، أو سجل اليوم باستخدام 3.1. لا تقترح حسابات Google إضافية للحصول على حصة أكثر — شروط استخدام API من Google تمنع تجاوز الحدود وقد يؤدي إلى تعليق الحسابين.
  • البدائل: vo-edge.cjs (Microsoft ar-EG-ShakirNeural، غير محدود، بدون مفتاح — المستخدمون وجدوه روبوتياً/غير مصري)، أو يسجل المستخدم الأسطر على هاتفه وتقوم بقص/تطبيعها إلى vo/sNN.wav. ElevenLabs ممتاز لكنه مدفوع.

تحقق من كل تسجيل — لا يمكنك سماعه:

  • node transcribe.cjs [s05 s06…] ينسخ كل مقطع بنموذج نص Gemini. كل نَسخ يجب أن يساوي سطر السيناريو الخاص به. إذا كانت كلمات من السطر التالي في نهاية المقطع، يكون القص متأخراً: ابحث عن وقفات باستخدام ffmpeg -af silencedetect=noise=-38dB:d=0.1 وانقل الذيل إلى المقطع التالي (انظر محاذير -ss). أصلح من النسخ الأصلية في vo/take/.
  • node check-v.cjs s10 يسأل عما إذا كان حرف العلامة التجارية /v/ أم /f/ (مرتين لكل مقطع). قم بتضمين التسجيل الخاطئ المعروف كعنصر تحكم لتتأكد من أن الفحص يعمل.

5. تخصيص القالب

القالب يحتاج أيضاً إلى img/qr.png (اصنعه باستخدام node -e "require('qrcode').toFile('img/qr.png','<رابط الموقع أو العلامة التجارية>',{errorCorrectionLevel:'H',margin:1,width:680})" — يمكن للمشاهدين مسحه ضوئياً، لذا وجّهه إلى شيء حقيقي أو إلى نص عادي)، img/rest-logo.svg (شعار نشاط العرض التجاري) وأيقونة العلامة التجارية (img/novix-icon.svg في المثال).

assets/template/promo.html مصمم بأسلوب NOVIX (كحلي #0B1020، تدرج أزرق→بنفسجي). أعد التصميم بتعديل متغيرات :root، خلفية المرحلة وألوان التوهج، تدرج .hl، الشيبس/الحلقات/حبة الترجمة، بطاقة QR، والمشهد الأخير (الشعار، الاسم، الشعار النصي، CTA، سطر الميزات). references/template.md يوضح أين يقع كل جزء وكيف ترتبط المشاهد.

6. الفحص، المعاينة، التصدير

من VIDEO/build:

  1. node build.cjs --check — يشغل كل ~2000 إطار بدون لقطات شاشة؛ يكتشف أخطاء JavaScript في ثوانٍ بدلاً من انتظار ريندر مدته 5 دقائق.
  2. node build.cjs --preview 3 → out/sheet.jpg. انظر إليها (اقرأ الصورة): التفاف العناوين، أشياء خارج الإطار، التباين (مثلاً نص برتقالي على بطاقة برتقالية)، بقايا العلامة التجارية القديمة.
  3. node build.cjs (شغّل في الخلفية، ~5 دقائق لـ 66 ثانية). يبلغ عن طول الفيديو مقابل الصوت (يجب أن يتطابق) ومستوى الصوت (≈ -14 LUFS).
  4. أرسل نسخة الواتساب باستخدام SendUserFile (الملف الكامل عادة > 30 ميغابايت ويظهر فقط على سطح المكتب)، أخبر المستخدم أين يوجد كلا الملفين، وقل صراحة أنك تحققت بالنسخ/الإطارات لكن لم تتمكن من الاستماع.

7. الموسيقى

synth.cjs يؤلف إيقاع تراب شرق أوسطي أصلي بسرعة 98 نبضة في الدقيقة (دربوكة، 808، قيادة على آلة العود المقطوفة في مقام حجاز د) مع هبوط الإيقاع على مشهد الكشف، بالإضافة إلى مؤثرات صوتية لنغمة الانشغال / صوت الاندفاع / رنة / صفير / فرقعة. المكتبات المرخصة (مثل موصلات Epidemic Sound) قد تسمح فقط بالمعاينات، وليس التحميل — المعاينات غير مرخصة للإعلانات، لذا لا تستخدمها.

التسليم

  • النهائي: out/<name>-9x16.mp4 (1080×1920، 30 إطاراً في الثانية، H.264، AAC، -14 LUFS) و out/<name>-9x16-whatsapp.mp4.
  • اذكر أي شيء مؤقت (رقم هاتف مفقود على بطاقة النهاية، إلخ) واعرض الخطوة التالية المنطقية (إضافة معلومات الاتصال، نسخة أفقية، تضمين في موقعهم).
  • إذا كانت لقطات الشاشة قد نُشرت علناً (مطلوب فقط لأدوات الفيديو السحابية)، أخبر المستخدم بمكانها واعرض إزالتها.

اقرأ references/gotchas.md قبل تشغيل أي شيء — يسرد كل فشل تم تحقيقه أثناء بناء هذا والحل.

Skills relacionados