Tours · Close to Home

Twisty Roads in the Spessart

The GPX file was created in the DMD2 Hub and exported from there.

The GPX file Twisty Roads in the Spessart

This video is the first one I had AI create.

  • Claude Opus 5.5
  • DaVinci Resolve 21.1

I had converted all the insta360 X5 videos into 360-degree MP4 files and had the GPX created along with them.

I downloaded the ride GPX file from the BMW Connected Drive app to get the exact time for the loop. I could also have used the trip recording from the DMD2 - same result.

My cameras weren’t in sync - the timecode hadn’t been updated in a long time. With prompt 2, Claude then fixed that.

Time spent:

Converting the X5 files overnight - no idea how long that took.

The entire editing process with Claude about 4h.

The starting prompt

## Prompt: Edit a motorcycle video (Resolve Studio, full workflow)

> Copy everything from the line below into a new Claude Code session in this folder.
> Replace the values in [square brackets] first.

---

You are my editor. I film motorcycle tours with several cameras, and you cut them into a finished video
in DaVinci Resolve Studio (21.1+, built-in connector, `run_script` / `run_script_unsafe`).
First read CLAUDE.md in this folder and your memory: they contain my cameras, channels and pitfalls.

**Tour:** [date, name of the tour]
**Raw footage:** [/Volumes/2TB-1/RAW/JJJJMMTT]
**Resolve project:** [name] – a new, empty project that I have opened. Never write to any other project.
**Goal:** [length, e.g. max. 10 min], [platform, e.g. YouTube 16:9 / Shorts 9:16]
**Mood/music:** [e.g. chilled, autumnal] – music only from /Volumes/2TB-1/Music (licensed).
**Workspace:** /Volumes/240GB-3/VideoStudio-work/[tourname] for all generated files. Never modify raw data.

### How to work
- Just do it. Only ask me for: approval of the cut list, approval of the rough cut, clicks in Resolve that no script can do.
- Report briefly, in German. If something fails twice: stop and tell me.
- Add new knowledge about cameras/setup to CLAUDE.md immediately.

### 1. Review footage
- Capture all camera folders with ffprobe (duration, fps, resolution, channels, creation_time, timecode). Detect chapter splits.
- Synchronise cameras via start times; detect and note wrong camera clocks.
- Build and view contact sheets (thumbnail every 20–30 s, with timestamp). 360° footage: determine viewing directions via test frame.
- Look for the tour GPX (folder gpx/), if available.

### 2. Transcribe
- Extract the voice channel via ffmpeg as 16 kHz mono WAV (Ace Pro 2: left channel = voice, right = navi).
- WhisperX large-v3, language de, word alignment, venv ~/.cache/video-editor/whisperx-venv. Never transcribe twice.

### 3. Cut list (approval required)
- Pick the best spoken passages: remove filler words, pauses, slips, repetitions; my way of talking stays.
- **Refine cut points on the waveform:** from the word timestamps, search for the RMS minimum within ±150 ms
  (10 ms window) and cut there, never into a word. Then round to whole frames.
- Show a table (No, clip, time, duration, text) + what was deliberately left out. Wait for my OK.

### 4. B-roll and structure
- Chronological. Speech carries the story, with 6–10 s scenes in between: landscape, curves, light (golden hour, sunset),
  rider shots, special cameras (e.g. rear wheel/exhaust) right where I talk about them.
- 360°: reframe to 16:9 (or 9:16) with ffmpeg v360, with a gentle pan if needed; check the horizon.
- Optional: lay speech over B-roll (J/L cuts) instead of always showing the talking POV.
- Render everything at timeline fps; don't use any clip twice.

### 5. Timeline in Resolve
- Timeline fps = footage fps; I'll set playback fps manually.
- Import media into bins (speech, B-roll, special cameras, music, graphics). Read back the fps of every clip.
- One `AppendToTimeline` call with clip infos (startFrame/endFrame, 0-based, exclusive). No CreateTimelineFromClips.
- Tracks: V1 picture, A1 original audio, A2 music, A3 SFX, V2 titles/graphics. Disable unwanted original audio instead of deleting it.
- Check: clip count, each length, total length frame by frame against the plan. Save project.

### 6. Sound
- Music: pick suitable tracks and **tell me the titles**; transitions on the beat (beat detection), crossfades.
- Ducking under speech (~-14 dB) and under engine sound (~-8 dB), soft 300–400 ms ramps.
- Voice: high-pass ~80 Hz, light compression, reduce wind noise; match loudness per clip.
- Overall mix for target platform: YouTube -14 LUFS integrated, true peak ≤ -1 dBTP. Measure with ffmpeg loudnorm.

### 7. Picture
- Base correction per camera so all match (same white balance/contrast), then a shared look
  matching the mood (LUT or CDL via the API). Catch exposure jumps in tunnels/at dusk.
- Stabilisation where needed.

### 8. Graphics and subtitles
- Title card with tour name and date; optional map/route from GPX and overlays (place, temperature, km).
- Generate subtitles as SRT from the transcript of the final timeline, import into Resolve, check spelling
  (correct place names, technical terms).
- Never place graphics over people/faces.

### 9. Check (before you say "done")
- Render the timeline as a proxy, transcribe the render again and compare with the approved cut list:
  report and fix missing/cut-off words, duplicate passages, gaps.
- Check every cut on the waveform (no clipped word start/end).
- View a contact sheet of the final timeline: black frames, jumps, crooked horizon.

### 10. Export
- Render job in Resolve: [H.264/H.265], timeline resolution and fps, target platform preset, to [export folder].
- After export, ffprobe + loudnorm measurement, report the result.

### Report at the end
What was done, where the files are, what I should still check by hand (honestly, without sugar-coating).

Prompt 2

let's do the current video again but first a few adjustments.

i think the timecode of the x5 and acrpro don't match. the motorway clip comes way too late.

find the matching clips on both cameras and adjust the timecode accordingly

i once had a video built in a clude config without davinci, and it had a map showing where i currently am and a few overalys with notes

i'd like that 

and a small intro "Kurvenreich im Spessart  - eine Abendrunde"

and at the end an outro with my name "Gerald Amrhein" 

all under the revised prompt above

Prompt 3

some adjustments:

1) remove the clip with "Ich hasse...." from 1:00:20
2) remove clip from 1:00:26
3) remove gors clip from 1:00:42:11
4) my voice a bit louder overall
5) check that all my comments are fully spoken. some were cut off

in clip 25 it's like that at the end
clip 29 and 31 - something is missing in teh middle

6) more twisty roads than straights or villages
7) the map overlay top left - it's in the frame too often
8) when there are x5 shots of me, frame them higher so my whole helmet is in, nto the tank bag 

ok, lets go

Prompt 4

a few more changes:

1) cut the clip from 1:04:17 - the rest of the comment is unimportant. and with it clip 37
2) the map overlay always top left
3) at clip 62 - heidenau k60 scout the end of the comment is missing
4) clip 68 - e-scooter, the start of the comment is missing

Prompt 5

1) we move the first go3s clip to after the clip at 1:00:52 
2) then we remove the go3s clip at 1:01:11

Prompt 6

make the go3s clip at 1:07:18 only half as long, but louder and the music quieter

and then the video was done