Communitygithub.com

beachyphotoandfilm-arch/video-skills

YouTube-Thumbnails und Titel für ein Talking-Head-Video entwerfen. Extrahiert farbkorrigierte Vollbilder aus dem Rohmaterial, rendert markenkonforme Varianten in zwei bewährten Layouts und prüft sie in der Handy-Größe, wo der Klick entschieden wird. Auslöser: „Thumbnails erstellen“, „Thumbnail für dieses Video“, „Titel und Thumbnail“ oder nach einem Videoschnitt.

Was ist video-skills?

Dieses Skill automatisiert die Erstellung von YouTube-Thumbnails und Titeln speziell für Talking-Head-Videos. Es extrahiert farbkorrigierte Vollbilder aus dem 4K-Rohmaterial (keine Exporte) und rendert brandgestylte Varianten in zwei bewährten Layouts: Vollfläche (full-bleed) und Panel. Die Thumbnails werden dann in einer Handy-Proofsheet-Ansicht bei etwa 210px Breite angezeigt, um die tatsächliche Klickentscheidung zu simulieren. Es unterstützt gängige Plattformen wie Claude Code und Cursor, indem es über Schlüsselphrasen wie „Thumbnail erstellen“ oder „Titel und Thumbnail“ ausgelöst wird. Das Skill berücksichtigt Forschungsergebnisse: drei bis fünf Wörter, ein dominantes Gesicht, hoher Kontrast und niemals Text über dem Gesicht. Die Ausgabe erfolgt als HTML-Rendering via Puppeteer (headless Chrome) mit anpassbaren Branding-Einstellungen (Akzentfarbe, Schriftarten, LUT). Entwickler können über die JSON-Variantendatei verschiedene Layouts, Textpresets und Legacy-Varianten steuern.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/beachyphotoandfilm-arch/video-skills/tree/HEAD/skills/video-thumbnails

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Thumbnails und Titel

Marke hier einstellen

Bearbeite den :root-Block am Anfang der beiden Dateien scripts/layout-fullbleed.html und scripts/layout-panel.html:

EinstellungCSS-VariableStandard
Akzentfarbe--brand-accent (+ --brand-accent-rgb als r,g,b)#4a90e2
Helle Textfarbe--brand-light#f2f2f2
Dunkle Tintenfarbe (Strich, Panel-Hintergrund)--brand-ink#0d131a
Anzeigeschrift (großer Text)--font-display'Anton','Bebas Neue',Impact,sans-serif
Grundschrift (kleiner Text)--font-body'Inter',sans-serif

Die Anzeigeschrift muss lokal installiert sein, da das Rendering in headless Chrome von file:// ausgeführt wird. Anton und Bebas Neue sind kostenlos auf Google Fonts.

Setze außerdem deine Grading-LUT in scripts/frames.sh (LUT_DEFAULT) oder übergib LUT=/pfad/zu/datei.cube pro Durchlauf.

Stil-Standards (nach Geschmack änderbar)

  1. Lege niemals etwas über das Gesicht. Kein Verlaufs-Overlay über der Person. Entweder ein klar abgegrenztes Panel mit vollständig freiem Gesicht oder Vollfläche mit Text in leerem Raum.
  2. Bilder aus dem RAW-4K-Material ziehen, nicht aus einem Export. 1080p-Exporte wirken weich.
  3. Das Bild zuerst farbkorrigieren. Log-Material (S-Log3 usw.) ist unbearbeitet flach und grau. Brenne die LUT mit lut3d ein (siehe frames.sh). Überspringe die LUT, wenn die Kamera ein fertiges Profil liefert.

Regeln aus der Forschung

  • Drei bis fünf Wörter, weniger ist besser. Das Thumbnail erklärt das Video nicht.
  • Ein Gesicht gewinnt. Die meisten Durchbruchsvideos verwenden eines. Starker Ausdruck schlägt neutralen.
  • Ein dominantes Motiv, zwei oder drei Farben, hoher Kontrast.
  • Beurteile bei etwa 210px. Die meisten Entscheidungen werden auf dem Handy getroffen. Wenn es dort nicht funktioniert, ist alles andere egal.
  • Titel und Thumbnail sollten sich nicht wiederholen. Zwei Hälften einer Idee. Titel kurz und spezifisch halten (etwa 50-60 Zeichen, damit sie nicht abgeschnitten werden).
  • A/B-Tests in YouTube Studio sind besser als Diskutieren – gib dem Nutzer 2-3 echte Optionen.

Welches Layout

Vollfläche gewinnt auf dem Handy und ist der Standard. Seite an Seite bei 210px erscheint das Gesicht etwa doppelt so groß wie in der Panel-Version, und die Unterzeilen im Panel verschwinden ganz.

  • layout-fullbleed.html: Farbkorrigiertes Bild randlos, 1-3 Wörter in der Anzeigeschrift mit dickem Tintenstrich, platziert in leerem Raum (Wand, Tür) und niemals über dem Gesicht. Presets: stab, stat, bottom, band (ein durchgehender Akzentstreifen unten). Legacy-Beispielvarianten e, f, g, h.
  • layout-panel.html: Motiv in einem sauberen rechteckigen Panel auf der rechten Seite, Text auf einer dunklen linken Hälfte. Verwenden, wenn die Idee ein Diagramm (das Punktraster) oder zwei Textzeilen benötigt. Beispielvarianten a-d.

Ausführung

# 1. Farbkorrigierte Bilder aus dem Rohmaterial, zu ausdrucksstarken Momenten (Transkript verwenden, um sie zu finden)
bash <skill>/scripts/frames.sh "<DEINE_DATEIEN>/<ordner>/C0001.MP4" "<arbeit>" 178 310 459 503

# 2. Bilder vor Auswahl ansehen – ein Kontaktabzug ist besser als Raten
ffmpeg -i hi-*.jpg -filter_complex hstack=... contact.jpg

# 3. Varianten rendern + Handy-Proofsheet
WORK=<arbeit> OUT=<ausgabe> node <skill>/scripts/render.mjs variants.json

variants.json:

[{"id":"E-no-time","layout":"fullbleed","v":"e","img":"full-C0001-503.jpg"},
 {"id":"S-custom","layout":"fullbleed","img":"full-C0001-310.jpg",
  "data":{"preset":"stab","head":"ZU BESCHÄFTIGT?","kicker":"PROBIER DAS"}},
 {"id":"B-3x","layout":"panel","v":"b","img":"cut-C0001-97.jpg"}]

Vollflächentext kann pro Variante als data übergeben werden (preset, head, kicker, side, size) oder als neuer Legacy-v-Block im Layout-HTML hinzugefügt werden. Paneltext lebt in den v-Blöcken von layout-panel.html: füge eine neue Variante hinzu, indem du einen Block hinzufügst und ihn auf 3 Wörter beschränkst.

Erfordert puppeteer-core: Wiederverwende ../video-overlays/scripts/node_modules oder führe npm i im Skriptverzeichnis aus. render.mjs startet /Applications/Google Chrome.app/...; ändere den Pfad auf anderen Systemen.

Bildauswahl

Suche nach hochgezogenen Augenbrauen, einer offenen Hand, einem Mund in der Mitte eines Wortes. Verwende das Transkript, um einen Moment mit Energie zu finden, dann ziehe ein Bild eine Sekunde später. Leere Augen töten das Thumbnail. Die Zuschnitte in frames.sh gehen von einer 4K-Quelle (3840x2160) aus, bei der das Motiv etwa 46 % der Bildbreite einnimmt; passe die crop=-Offsets an, wenn dein Bildausschnitt abweicht.

Ausgabe

Render in 1920x1080 (YouTube downsampled sauber), unter 2 MB halten.

Verwandtes

  • paper-edit, video-overlays: der Rest der Videopipeline

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

beachyphotoandfilm-arch/video-skills

Sync camera footage to a separate lapel or field-recorder track (e.g. Tascam DR-10L and similar) and lay it up in DaVinci Resolve. Stitches the recorder's split files, finds each clip's exact place in the audio by matching words then waveforms, cuts one lapel slice per clip so every later skill works unchanged, checks for clipping, and builds a synced timeline in a new Resolve project. Trigger on "sync the lapel", "sync my audio", "line up the recorder", "I used a lav", or any shoot with a separate audio folder (live talks, events, workshops). Run it before paper-edit or video-reels.

beachyphotoandfilm-arch/video-skills

Turn raw talking-head footage into an assembled rough cut inside DaVinci Resolve. Pulls the clips off your footage drive, transcribes them locally, removes failed takes, restarts, asides and dead air, then creates a new Resolve project with two paper-edit timelines ready for your fine trim. Trigger on "paper edit", "cut my raw footage", "make a rough cut", "clean up this video", or when the user points at a folder of raw camera files for a YouTube video.

beachyphotoandfilm-arch/video-skills

Design a unique Instagram cover for each reel in your house style. Reads what the reel is about, writes a short hook headline, picks one of your own photos from a tagged photo library, lays it out like your existing covers, and proofs it in grid view at phone size. Renders locally, never with AI image generation. Can be called by a scheduling skill before reels are scheduled. Trigger on "make covers", "reel covers", "cover photo for this reel", "design the IG covers".

beachyphotoandfilm-arch/video-skills

Render finished reels out of DaVinci Resolve, write captions in the creator's voice, attach a custom Instagram cover from reel-covers, and schedule them to Instagram, TikTok and YouTube Shorts through Metricool. Handles the Drive upload hop, collision checks against the existing calendar, and cleanup. Trigger on "schedule the reels", "post these", "put these on the calendar", or after reels are approved.

beachyphotoandfilm-arch/video-skills

Build animated brand overlays (motion graphics) for a talking-head video, timed to the speaker's exact words, plus a DaVinci Resolve import file. House style is in-scene type (text beside and behind the speaker's head) plus diagrams. Transcribes the rough cut locally, picks the moments, renders transparent .mov clips, and writes an FCPXML that drops every clip onto the timeline already in position. Trigger on "make animations for this video", "add overlays/motion graphics", "animate this", "b-roll graphics for my YouTube video", or when the user shares a rough cut and asks for graphics.

beachyphotoandfilm-arch/video-skills

Cut vertical Instagram reels out of a long-form talking-head video, hook first. Picks the strongest standalone moments from the transcript, opens each reel on its punchiest line, builds vertical timelines in DaVinci Resolve framed on the speaker's face with the LUT applied, and finishes them: a hook (a held text card, or a word-by-word "build" hook with punch-in) and burned-look captions on V3; this-or-that reels get product graphics and a comment-keyword CTA card. You trim and render, nothing to import. Trigger on "make reels", "clip this for Instagram", "cut some verticals", or after a YouTube video is cut.

beachyphotoandfilm-arch/video-skills

Run the whole YouTube video pipeline end to end, one stage at a time, stopping for the creator's approval at every gate. Paper edit, punch-ins, reels, reel covers, scheduling the reels, overlays, thumbnail and title, then scheduling the long-form video, all through Metricool. Keeps state per video so you can stop anywhere and pick up later. Trigger on "/youtube", "let's do the whole video", "run the video pipeline", "continue the <name> video", or when handed raw footage for a YouTube video.

Verwandte Skills