Hypernatural

WorkflowBy HypernaturalVersion 1, Oct 30, 2026

workflow-shorts-from-long-video

Turn a stream, tutorial, podcast or any long screen-plus-webcam recording into a series of 30–50 s 9:16 shorts built only from that recording: the speaker's face in one half, eased punch-ins on the right part of their screen in the other, captions on the seam in their own shorts style, and word-cued motion graphics with a different sound for each kind. Covers watching the recording and the speaker's existing shorts, a transcript with word times, picking the moments (hook, whole sentences, payoff), the rough cut, zoom targets, the base render in ffmpeg, the graphics in hn4a-compositor shown live on the first short, sound effects and loudness. Nearly free: local cuts and renders plus a few cents of sound effects. For one long walkthrough from paired screen and webcam takes, use workflow-screen-walkthrough.

SKILL.md

Shorts from a long video

The person brings a long screen-plus-webcam recording (their own, or one they have permission to edit), two or three of their existing shorts as style references if they have any, how many shorts they want and any must-have moments. You deliver that many 9:16 shorts of 30–50 s, built only from the recording: the face in one half of the frame, an animated punch-in on what they're showing in the other, captions in their own shorts style, and motion graphics with sound on every beat.

Everything is local and free except a handful of sound effects (about $0.01 each). The job's notes go in job-notes.md and the style in style-notes.md; rounds and deliverables follow the core skill.

Steps

  1. Watch it, don't just transcribe it. Contact sheets of one frame every 6 s with the timestamp printed on it, 25 frames a sheet, plus full-size frames of the key screens. Note the layout (where the screen window and webcam sit: usually locked for the whole recording), the best visuals, and any stickers or effects already in it. Do the same at 2 s for the reference shorts: cut pace, caption font, case and colours, keyword colour, title cards. Write the style to match in style-notes.md.
  2. Transcribe with word times: whisper-cli with one word a segment and JSON out, on a 16 kHz mono WAV. Group the words into sentences (python-read-word-timings; break on sentence punctuation or every ~28 words) and list them with timestamps: that is the menu you pick from.
  3. Plan the shorts. Each one: a hook that works with no context, then 5–9 whole sentences that tell one idea, ending on a payoff, written as sentence numbers per piece plus the screen moment to show for each.
    • The first line tells a cold viewer what they're looking at ("what you're looking at here is my new X"). Open on orientation, then the clever line.
    • Drop any piece that ends on a dangling "and…". Check every piece's text, not just its times. Gate: the person approves the moments.
  4. Rough cut (ffmpeg, free). Snap each piece to word times: start 0.06 s before the first word, end 0.18 s after the last but never past the next word's start. Render 1080×1920 split-screen pieces (the face crop and the screen crop, each scaled to 1080×960 and stacked), join them, and write a timeline.json (piece, source start and end, start in the short, text). Gate: the person watches the cuts for content.
  5. Zoom targets: for each piece, read exact rectangles (a header, a button, a stat) off grid-labelled frames at its start and end (ffmpeg-eased-punch-in, Inputs).
  6. The base video (ffmpeg-eased-punch-in): the face half plus one eased push or pan on the screen half per piece.
  7. Graphics (guide-add-titles-and-motion-graphics, hn4a-compositor-motion-graphics): one spec per short over the base video, its audio the spec's first track. Layers, bottom first: base video, per-piece graphics, the seam line, captions, title, progress bar, end card.
    • Captions: 2–3 words a chunk (break early on punctuation, or after 2 when the second word is long), in the style's caption face (condensed caps at about 92 px in the worked example, a 10 px black stroke painted under the fill), the keyword colour on a keyword list, centred on the seam, a 0.18 s pop. Clip each caption's end to the next one's start, or two overlap for a frame.
    • Seam: a 6 px line in the accent colour with a glow, drawn under the captions.
    • Title: the short's name in the style's title face with a hard black shadow, popping in for the first 2 s; the same title at the end in the face half, sized to fit one line (about 1000 px ÷ its letter count, at most 80 px).
    • Per-beat graphics, cued 0.1 s before their word: pill badges (accent for features, red for problems), white name labels that wipe in, emoji pops with a small rotate, hand-drawn circles and arrows drawn on over 0.45 s, numbered labels for steps, and a typed-on card for any text they read out that's too small to read on screen. Badges last at most 2.4 s; place graphics by fractions of the screen half so they follow it when the face switches sides.
    • Progress bar: 12 px at the top, revealed left to right over the whole short. Gate: the first short plays live on a review page (a compose candidate); a yes on the look before building the rest.
  8. Sound (guide-add-sound-effects, elevenlabs-sound-effects): one sound per graphic type. Chime, pop and click rotating on badges; a game-show buzz on red badges; a click on labels; a marker scribble on drawn circles and arrows; a bubble pop on emoji; an 8-bit blip on the title and end card; one quiet whoosh (volume 0.2) only when the face changes sides; about 0.35 for the rest. Generate each once (0.5–0.7 s) and reuse across shorts.
  9. Render, level, deliver. hn4a-compositor render, one short a call, then loudness to −14 LUFS / −1.5 dBTP with the video copied untouched (ffmpeg-normalize-loudness with that target; renders come out near −21). Check the frame count against duration × 30, that audio is present, and a 2 fps contact sheet. Deliver per the core skill.

Choices this workflow makes

  • The face changes halves once a short at most, on a beat.
  • Zooms in ffmpeg; the compositor only draws over the base.
  • Captions on the seam, so neither half loses its picture.
  • Built from the recording only: nothing generated, nothing that misstates what the speaker said.
  • −14 LUFS for shorts platforms, not the −16 used for other deliveries.

Dead ends

  • An animated crop on a compositor video layer: the picture didn't fill its box (a strip at the top, or the face stretched across both halves). Render zooms in ffmpeg.
  • Swapping the face's side every piece: jumpy; the person asked for less.
  • A whoosh on every graphic: one sound repeated 8+ times grates within 20 s.
  • Static punch-ins on a whole UI window: unreadable on a phone.
  • Picking pieces from the transcript alone: missed the best visuals and the existing style.
  • Long renders dropped with the tool connection. Render one short a call and confirm the file exists before moving on.

Worked example

A 12-minute screen-plus-webcam recording about an app's dashboard became three shorts of 40, 43 and 43 s, 1080×1920 at 30 fps. The webcam box was already about 9:16 (445×790 px), so the face half was a 2.4× upscale: soft but acceptable (offer an upscale if the person minds). Style from three reference shorts: condensed caps captions with one keyword colour, a pixel-style title face.

The person's notes over two rounds (paraphrased), each now a default above:

NoteFix
Switch the face's half less oftenOnce a short at most
Zoom tighter on the important thingPush onto one element
Far more motion graphicsPer-beat badges, labels, emoji, drawn arrows
Open on the orienting lineOrientation first, then the clever line
Vary the sound effectsOne sound per graphic type
Put the line behind the captionsSeam drawn under the captions

Cost: $0.08 in sound effects; everything else ran locally.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy