CodeAFCut a release trailer from the changelog

Cut a release trailer from the changelog

One brief turns git log into release notes, a voiceover, music, a title card and a clip, cut into one trailer.

The media parts should film and compose while the chat keeps talking.
  • a trailer for every tagged release
  • a narrated demo clip per feature
  • a title card set for a launch

A trailer is several jobs that do not wait on each other: notes from the changelog, a voiceover, music, a title card and a video clip. One brief hands them all to CodeAF. It films and composes in the background while the chat keeps working, then cuts everything into one file.

Steps

Our repo, tempo, has 8 commits since v1.2.

  1. In the repository, run codeaf.
  2. Hand over the whole trailer in one brief:
Make a release trailer for tempo v1.3 from git log v1.2..HEAD. 1) Write RELEASE.md: a title line and one short line per change. 2) Record a voiceover of about 20 seconds that reads the highlights, media/voice.mp3. 3) Compose a 20-second upbeat music bed, media/bed.mp3. 4) Draw a 16:9 title card that says tempo 1.3, media/title.png. 5) Make a 5-second 480p video of a brass metronome pendulum swinging on a dark stage, media/clip.mp4, on seedance-2.0-mini. 6) Cut them into media/trailer.mp4: the title card for 3 seconds, then the clip looped until the voiceover ends, with the music bed under everything at a lower volume. Tell me how long the trailer is.
  1. It loads the media tools, writes RELEASE.md, records the voice, and starts the music and video jobs in the background.
  2. Read the cost of each part in /spend, not in the chat.

What you see

The chat loads its media tools (Loaded: generate_image, speak, generate_music, generate_video, edit_video), writes RELEASE.md with one line per commit, and records the voice: media/voice.mp3, 177.1KB of mp3 audio, spoken by fish-audio/s2.1-pro. The music and the clip start as background jobs (job 1 started; composing on google/lyria-3-clip-preview, job 2 started; filming on bytedance/seedance-2.0-mini), and the title card lands while they run.

It checks its own parts while it waits. A vision model reads the title card and finds "tempo" and "1.3". The first voiceover measured 11.337063 seconds, short of the 20 asked, so it recorded a fuller one of 23.457875 seconds. Notes arrive as the jobs finish: while you worked: job 1 finished: media/bed.mp3, then job 2 finished: media/clip.mp4, 5.1s with sound. Last comes the cut: media/trailer.mp4 is now 23.5 seconds: title card for 3s, the clip looped until the voiceover ends, with the music bed under everything at lower volume.

In our run

The first cut took 3 minutes 44 seconds and the re-cut to the voiceover's length 48 seconds. The parts cost $0.045 for the title card, $0.04 for the music and $0.177 for the clip; speech is under a cent. Our first brief also asked the chat what each part cost, and it went looking through its own logs until we pressed Esc. That detour cost about $0.34 and is left out of the $0.44 above.

Make it yours

  • Ask for the length you want. Tying the trailer to the voiceover fits the cut to the narration.
  • Read the spend yourself. /spend shows what each call cost; asking the chat sends it digging through logs.
  • Pick the model per part. Step 5 names the video model; the other parts used the default for their kind. Name a model in the brief for any part, or set one per kind under /settings, Providers.

Go further

Pictures, video, voice and music: Pictures, video, speech and music are first-class work in CodeAF, each on its own model that you choose, with the file landing in your project.

Coming soon: describe the org you want and CodeAF builds it: teams, managers, budgets, standing orders.