Was macht Ägyptisches Werbevideo?
Erstellt ein professionelles vertikales (9:16) Werbevideo für eine Website, App, ein System oder ein Produkt mit ägyptisch-arabischem Voice-Over, kinetischer arabischer Typografie, echten Produkt-Screenshots in Telefon-Mockups, synchronisierten Untertiteln, Originalmusik und Soundeffekten – lokal als MP4 gerendert, ganz ohne kostenpflichtige Tools.
Das Video wird vollständig auf dem lokalen Rechner erstellt:
script.json ──► voice-over (Gemini TTS, kostenlos) ──► Clips pro Zeile ──► Timeline
screenshots ──► promo.html (seek(t)-Animation) ──► Puppeteer-Frames ──► ffmpeg
synth.cjs (Original Beat + SFX) ──► Sidechain-gemixt ──► loudnorm −14 LUFS ──► MP4 + WhatsApp-Kopie
Jede Szene dauert genau so lange wie die gesprochene Zeile – bei Wort- oder Stimmwechsel wird das gesamte Video automatisch neu getaktet.
Das bewährte Beispiel (Bestellsystem für Restaurants: Telefon-Hook → WhatsApp-Problem → Enthüllung → Menü → Warenkorb → QR-Tische → Auftragsverfolgung → Dashboard → Statistiken → Marke + CTA) ist die Standardvorlage. Verwende seine Struktur für andere Produkte, indem du die Szenen änderst, nicht die Engine.
Was du brauchst
- Node 18+, ffmpeg/ffprobe im PATH, Google Chrome (oder
CHROME_PATHsetzen). - Im Build-Ordner:
npm i puppeteer-core qrcode msedge-tts@2(auf einem vollen C:-Laufwerk auf ein anderes Laufwerk fürnpm_config_cacheundTEMPzeigen). - Einen kostenlosen Google AI Studio API-Schlüssel für die Sprachausgabe (aistudio.google.com/apikey). Der Benutzer fügt ihn selbst in
VIDEO/.envalsGEMINI_API_KEY=…ein – erstelle die Datei mit leerem Schlüssel und bitte ihn nie, ihn im Chat einzufügen oder auszudrucken. Der erste Aufruf kann eine Fehlermeldung bringen, dass die Generative Language API für das Projekt deaktiviert ist: gib dem Benutzer den Link aus der Fehlermeldung zum Klicken auf Aktivieren, dann nach einer Minute erneut versuchen.
Ordnerstruktur
Erstelle VIDEO/ innerhalb des Benutzerprojekts (z.B. marketing/video-<markenname>/):
VIDEO/.env GEMINI_API_KEY= (Benutzer füllt aus)
VIDEO/script.json Kopie von assets/script.example.json, bearbeitet
VIDEO/build/ Skripte/* + assets/template/* aus dieser Fähigkeit
VIDEO/build/img/ Screenshots + Logos, die von promo.html verwendet werden
VIDEO/vo/ s01.wav … s10.wav (Sprachclips)
VIDEO/out/ Renderings, sheet.jpg, timeline.json
Arbeitsablauf
1. Briefing (nur fragen, was du nicht selbst finden kannst)
Produkt und seine Funktion, Zielgruppe (wer kauft), Markenname und seine Aussprache, Farbpalette + Logo (im Benutzercode suchen: Tailwind-Konfiguration, icon.svg, Logo-Komponente), CTA, Kontaktdaten falls vorhanden. Standardformat: 9:16, 60–70 s, ägyptischer Dialekt, männliche energische Stimme.
2. Skript → script.json
Zehn Zeilen, eine pro Szene. Die bewährte Struktur:
- Hook (0–4 s): Eine schmerzhafte Frage, die der Zuschauer erkennt („كام أوردر ضاع منك النهارده… عشان التليفون كان مشغول؟“).
- Schmerz: Der aktuelle schlechte Weg, endet mit dem Verlust.
- Enthüllung: „طب تخيّل…“ + das Produkt (hier kommt der Beat-Drop). 4–9. Ein Feature pro Szene, jeweils mit echtem Screenshot.
- Marke + CTA: Wer es anbietet, Einladung zum Abonnieren/Kontaktieren.
voice ist das, was die TTS vorliest: schreibe es so, wie es ein Ägypter sagt (عامية, „…“ für Atempausen, „؟“ für fragenden Ton, Zahlen als Wörter „أربعة وعشرين“, „QR“ als „كيو آر“). subtitles ist das, was die Zuschauer lesen (Ziffern „٢٤“, „QR“, Marke in lateinischen Buchstaben). headlines sind 2–5-wortige kinetische Titel für die Szenen 1–9; umschließe das hervorgehobene Wort mit *…*.
Erfinde keine Statistiken, Prozentsätze, Preise, Auszeichnungen oder Erfahrungsberichte – Zuschauer und Kunden können sie nicht überprüfen, und sie schaffen rechtliche Risiken. Klar formulierte Vorteile verkaufen sich gut genug.
Markennamen mit V/P/G: Arabisch hat kein V, daher wird „نوفيكس“ als „NOFIX“ gelesen. Schreibe es mit ڤ („نوڤيكس“) oder in Latein („NOVIX“) in voice und überprüfe es dann mit check-v.cjs (Schritt 4).
3. Screenshots (echtes Produkt, Handygröße)
Verwende Puppeteer bei 390×844, deviceScaleFactor 3 (→ 1170×2532) und speichere sie in build/img/. Die Vorlage erwartet: 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 – pro Produkt umbenennen/ersetzen (siehe references/template.md).
- Rebranding / generische Demo: Injiziere ein Skript mit
evaluateOnNewDocument+MutationObserver, das den alten Markennamen umschreibt, Logosrcaustauscht, Telefonnummern ausblendet und Markenfotos ersetzt, danninnerTextauf Reste prüfen. - Eingeloggte Seiten (Dashboards): Verwende den In-App-Browser-Bereich, in dem der Benutzer bereits angemeldet ist (niemals sein Passwort eingeben), einen 375×812-Viewport emulieren, dieselben DOM-Änderungen mit
javascript_toolanwenden und dort den Screenshot machen (es speichert eine Datei, die du kopieren kannst). Der Bereich kann seine Größe während der Aufgabe zurücksetzen – wende den mobilen Viewport vor jedem Schuss erneut an. - Echte Kundendaten: Maskiere Namen/Telefonnummern auf dem Bildschirm vor der Aufnahme. Falls realistische Zustände benötigt werden (eine neue Bestellung, eine Stornierungsanfrage), erstelle klar gekennzeichnete Demo-Datensätze, nimm sie auf, lösche genau diese Datensätze und bestätige, dass sie entfernt wurden.
4. Voice-Over
Kostenlose, natürliche ägyptische Stimmen kommen von Gemini TTS (scripts/vo-gemini.cjs):
gemini-3.8-flash-ttshat 92 native ägyptische Stimmen (ar-eg-*, z.B.ar-eg-concierge-1jung/hell,ar-eg-commercial-11Werbestimme,ar-eg-storyteller-3lässig). Kostenloses Kontingent: nur 10 Anfragen/Tag für dieses Modell.gemini-3.1-flash-tts-previewhat ein separates kostenloses Kontingent, aber nur allgemeine Stimmen (Puckoptimistisch männlich – die Wahl des Benutzers,Orusfest männlich, …) die durch den Stiltext in Richtung Ägyptisch gelenkt werden.- Befehle (aus
VIDEO/buildausführen):node vo-gemini.cjs voices→ Liste derar-EG-Stimmen anzeigen.node vo-gemini.cjs sample <stimme> [weitere Stimmen...]→ Hook-Zeile pro Stimme invo/samples/(1 Anfrage pro Stimme). In mp3 konvertieren und senden, damit der Benutzer nach Gehör auswählt – du kannst nicht zuhören.node vo-gemini.cjs all <stimme>→ eine Anfrage für das gesamte Skript, aufgeteilt in 10 Clips an den Pausen (günstig im Kontingent und klingt wie ein durchgehender Take). Alte Clips werden gesichert.node vo-gemini.cjs line <stimme> <n>→ eine einzelne Zeile neu aufnehmen.- Verwende
GEMINI_TTS_MODEL=gemini-3.1-flash-tts-previewzum Wechseln des Modells.
- Nutze Samples sparsam (5 Stimmen = 5 Anfragen). Wenn das 3.8-Kontingent aufgebraucht ist, biete an: bis zum Reset warten (~Mitternacht Pacific), oder heute mit 3.1 aufnehmen. Schlage keine zusätzlichen Google-Konten vor, um mehr Kontingent zu bekommen – die API-Bedingungen von Google verbieten die Umgehung von Limits und können zur Sperrung beider Konten führen.
- Fallbacks:
vo-edge.cjs(Microsoftar-EG-ShakirNeural, unbegrenzt, kein Schlüssel – Benutzer fanden es roboterhaft/nicht ägyptisch), oder der Benutzer nimmt die Zeilen auf seinem Handy auf und du schneidest/normalisierst sie invo/sNN.wav. ElevenLabs ist hervorragend, aber kostenpflichtig.
Jeden Take überprüfen – du kannst ihn nicht hören:
node transcribe.cjs [s05 s06…]transkribiert jeden Clip mit einem Gemini-Textmodell. Jede Transkription muss mit der Skriptzeile übereinstimmen. Wenn Wörter aus der nächsten Zeile am Ende eines Clips sitzen, ist der Schnitt zu spät: Finde Pausen mitffmpeg -af silencedetect=noise=-38dB:d=0.1und verschiebe den Rest in den nächsten Clip (siehe Fallstricke für die-ss-Falle). Vonvo/take/-Originalen aus korrigieren.node check-v.cjs s10fragt, ob ein Markenkonsonant /v/ oder /f/ ist (zweimal pro Clip). Füge den bekannten schlechten Take als Kontrolle hinzu, damit du weißt, dass die Prüfung funktioniert.
5. Vorlage thematisieren
Die Vorlage benötigt außerdem img/qr.png (erstellen mit node -e "require('qrcode').toFile('img/qr.png','<Website-URL oder Marke>',{errorCorrectionLevel:'H',margin:1,width:680})" – Zuschauer können ihn scannen, also zeige entweder auf etwas Reales oder auf reinen Text), img/rest-logo.svg (das Logo des Demounternehmens) und das Markensymbol (img/novix-icon.svg im Beispiel).
assets/template/promo.html ist im NOVIX-Stil gehalten (Marineblau #0B1020, blau→violetter Farbverlauf). Theme-Änderung durch Bearbeiten der :root-Variablen, des Bühnenhintergrunds und der Glühfarben, des .hl-Farbverlaufs, der Chips/Ringe/Untertitel-Pille, der QR-Karte und der Schlussszene (Logo, Wortmarke, Slogan, CTA, Feature-Zeile). references/template.md listet auf, wo jedes Teil lebt und wie die Szenen verdrahtet sind.
6. Prüfen, Vorschau, Rendern
Aus VIDEO/build:
node build.cjs --check– führt alle ~2000 Frames ohne Screenshots aus; findet JS-Fehler in Sekunden statt nach einem 5-minütigen Rendervorgang.node build.cjs --preview 3→out/sheet.jpg. Sieh es dir an (lies das Bild): Überschriftenumbrüche, Dinge außerhalb des Ansichtsbereichs, Kontrast (z.B. orangefarbener Text auf einer orangefarbenen Karte), übrig gebliebene alte Markenelemente.node build.cjs(im Hintergrund ausführen, ~5 Min. für 66 s). Es meldet Video- vs. Audiolänge (müssen übereinstimmen) und Lautstärke (≈ −14 LUFS).- Sende die WhatsApp-Kopie mit SendUserFile (die vollständige Datei ist normalerweise > 30 MB und wird nur auf dem Desktop angezeigt), teile dem Benutzer mit, wo beide Dateien sind, und sage klar, dass du durch Transkription/Frames geprüft hast, aber nicht zuhören konntest.
7. Musik
synth.cjs komponiert einen originalgetreuen 98 BPM Middle-Eastern-Trap-Beat (Darbuka, 808, gezupfte Oud-ähnliche Lead in D Hijaz) mit dem Drop in der Enthüllungsszene, sowie Besetztzeichen-/Whoosch-/Ding-/Piep-/Pop-SFX. Lizenzierte Bibliotheken (z.B. Epidemic Sound Connectors) erlauben möglicherweise nur Vorschauen, keine Downloads – Vorschauen sind nicht für Werbung lizenziert, also verwende sie nicht.
Auslieferung
- Final:
out/<name>-9x16.mp4(1080×1920, 30 fps, H.264, AAC, −14 LUFS) undout/<name>-9x16-whatsapp.mp4. - Erwähne Platzhalter (fehlende Telefonnummer auf der Endkarte usw.) und biete den offensichtlichen nächsten Schritt an (Kontaktdaten hinzufügen, Querformatversion, auf ihrer Website einbetten).
- Falls Screenshots öffentlich gehostet werden mussten (nur für Cloud-Videotools nötig), teile dem Benutzer mit, wo, und biete an, sie zu entfernen.
Lies references/gotchas.md, bevor du etwas ausführst – es listet jeden Fehler auf, der beim Erstellen dieser Fähigkeit aufgetreten ist, sowie die Lösung.