Skip to content

Content Recording Workflow, Findings + Build Report, 2026-06-11

URL: https://mkdocs.justinsforge.com/memory/handoffs/content-recording-workflow-findings-2026-06-11/

Worker report for content-recording-workflow-2026-06-11. TL;DR: the folder template was confirmed from the macro's own output on disk, so forge_project_scaffold.py is built, smoke-tested, and registered (/scaffold-project). The iPhone footage answer is "never let it touch Photos": Blackmagic Camera saves to Files natively, and Finn already runs an Apple-tuned SMB share on the same 8TB NVMe, so record-to-Files then offload-to-SMB is the workflow. For auto-building the edit, stay on Premiere via the Sol MCP; DaVinci's better API requires buying Studio AND switching editors, and the actually-hard parts (transcription, cut decisions) belong in Forge regardless of NLE.

1. The full pipeline

RECORD      Blackmagic Camera (iPhone 16/17 Pro Max), ProRes/H.265,
            "Save clips to: Files" (local BM folder, NOT Photos, no iCloud)
   |
SCAFFOLD    /scaffold-project <brand> <name>  (built this pass)
            /mnt/workspace/<Brand>/<YYYY>/<YYYY-MM-DD>_<Name>/
            {Assets, Audio, Docs, Exports, Footage, Project}
   |
INGEST      Files.app on iPhone -> smb://192.168.86.67/Workspace
            -> <project>/Footage/   (originals, full quality)
            fallback: USB-C 10Gbps into Vector -> W:\<same path>
   |
TRANSCRIBE  faster-whisper on Vector (RTX 5070) or Console CPU,
            watch-folder on Footage/ kicks it automatically
            -> Docs/transcript.json + transcript.srt        (NOT BUILT YET)
   |
ROUGH CUT   transcript -> silence/filler removal -> keep-list (cuts.json)
            -> sequence assembly                            (NOT BUILT YET)
   |
PROJECT     Premiere MCP on Sol: create project in Project/, import
            Footage/+Assets/, build sequence from cuts.json
   |
EDIT        Justin in Premiere on Vector or Sol, same NFS/SMB paths

2. iPhone footage to the server (Problem 2)

The iCloud trap, stated plainly

With "Save clips to Photos" plus iCloud "Optimize iPhone Storage", the full-quality original gets uploaded and the phone keeps a recompressed local stand-in. Any later share/copy that does not explicitly request the unmodified original can hand you the degraded proxy, and pulling 60GB originals back down through iCloud is the exact fight Justin is having. The fix is not better Photos hygiene; it is keeping footage out of Photos entirely. Blackmagic Camera supports this natively.

Primary workflow: record to Files, offload to SMB

Finn already runs Samba with a [Workspace] share (/mnt/pve/workspace, the same 8TB NVMe Console mounts at /mnt/workspace), with vfs fruit Apple tuning and port 445 open. Verified this session. Zero server work needed.

One-time setup on each iPhone (needs Justin's hands, 5 minutes): 1. Blackmagic Camera: Settings > Media > "Save clips to" > Files (in-app/local, not Photos). Clips now land in Files > On My iPhone > Blackmagic Camera, untouched by iCloud Photos. 2. Files.app > "..." > Connect to Server > smb://192.168.86.67 > sign in as justinwieb (Samba password, NordPass). The Workspace share appears under Shared. 3. Optionally drag the share into Files favorites.

Per-shoot offload (on home Wi-Fi): 1. Files.app > On My iPhone > Blackmagic Camera > select clips. 2. Move (not copy) to Workspace/<Brand>/<YYYY>/<date>_<Name>/Footage/. Move doubles as cleanup of phone storage. 3. Done: originals at full quality, already in the project folder, visible to Premiere on Vector (W:\) and Sol instantly.

Semi-automation option once the manual path is proven: an iOS Shortcut ("Offload BM Footage") that moves everything from the Blackmagic Camera folder to a fixed Workspace/_Inbox/ SMB folder, triggered manually or by an arrive-home automation; a Finn-side watcher then files clips into the right project. Recommend running manual for 2-3 shoots first; Shortcuts' SMB handling of multi-GB ProRes is workable but not flawless, and the trust has to be earned before automating (no band-aids).

Why not record straight to the SMB share: iOS apps cannot reliably sustain ProRes write rates to a network Files provider mid-recording; Blackmagic's supported external-record target is a directly attached USB-C drive. Recording local-then-move is the robust shape.

Bandwidth reality check: ProRes 422 HQ 4K30 is roughly 6GB/min. A 10-minute talking head is ~60GB, which is 10-20 min over Wi-Fi. Acceptable as a "plug in the phone to charge, let it move" step, not instant.

Fallback: USB-C cable into Vector

Both phones have 10Gbps USB-C. Cable into Vector, open the phone in Explorer (or Files-to-local then copy), drop into W:\<Brand>\<year>\<project>\Footage\. Fastest path for big shoot days; same end state. A long shoot can also record directly to a USB-C SSD in the BM app (Settings > Media > Save clips to > Files > the drive) and the SSD plugs into Vector afterward.

Rejected: Blackmagic Cloud / Dropbox sync

Adds a paid cloud subscription, defaults to syncing proxies rather than originals, and routes LAN-destined footage through the internet. The SMB share is already there and free. Not pursued.

3. Premiere MCP vs DaVinci Resolve API (Problem 3)

Premiere MCP (Sol) DaVinci Resolve Python API
Cost $0 incremental (Adobe CC active, MCP installed) Studio license required for external Python scripting AND for transcription; free tier is console-only Lua/internal scripts
Capability for this goal 97 tools: project create, import, bins, sequences, markers, captions, exports, plus high-level assembly workflows Full hierarchical API (ProjectManager > MediaPool > Timeline), headless -nogui capable, genuinely the better-designed automation surface
Transcription Premiere built-in speech-to-text, plus MCP caption tools TranscribeAudio() is Studio-only and returns only a Bool; text is awkward to extract
Friction Mac-only, runs through Claude Desktop on Sol; tool-level granularity for "build sequence from cuts.json" still unverified New NLE for Justin, new license, API famous for silent failures (False/None, no errors)

Recommendation: Premiere via the Sol MCP. Not close, for this goal. The Resolve API is the better API in a vacuum, but the vacuum does not exist: Justin edits in Premiere, pays for Premiere, and already has a working 97-tool MCP. Switching costs a Studio license plus an editor migration to gain an API whose transcription endpoint returns a Bool. The deciding architectural point: transcription and cut decisions should live in Forge anyway (faster-whisper produces word-level timestamps far more script-usable than either NLE's built-in), which shrinks the NLE's job to "import media and lay subclips on a timeline." Premiere MCP plausibly does that today; if its sequence tools prove too coarse, the escape hatch is generating an FCP XML / EDL from cuts.json and importing it, which keeps Premiere and skips the MCP's weak spots. Revisit Resolve only if Justin independently wants to switch editors.

Sources: Resolve scripting requires Studio for external Python, API reference v20.3, transcription is Studio-only, silent-failure caveat, Blackmagic Camera save-to-Files, BM Camera tech specs.

4. Built this pass vs blocked

Built and tested: - scripts/forge_project_scaffold.py: template confirmed from disk (every macro-built 2026 project has exactly Assets, Audio, Docs, Exports, Footage, Project under <Brand>/<YYYY>/<date>_<Name>; the Quest-Ad-3-Traitors reference matches). Fuzzy brand match + aliases (jwvr, nova, gtb, sns, goc, tech, sip...), Title-Case slugging, SMB-illegal char stripping, America/Chicago dating, idempotent, fail-loud on missing mount. 7-case smoke test passed including a real create+cleanup on Sip-N-Serve. - /scaffold-project skill (atomic), topic file reference_project_scaffold, MEMORY.md index line.

Blocked on Justin (hands or confirmation): - iPhone setup steps in section 2 (app setting + SMB connect on both phones). Samba password check: confirm justinwieb has a Samba password set (smbpasswd on Finn if not). - Confirm the script replaces the macros, then retire the Windows/Mac macros (single source of truth). - Premiere MCP capability check needs a session on Sol (Claude Desktop) to enumerate the 97 tools against the cuts.json assembly need.

Not built yet (next builds, no blocker): - Transcription: nothing whisper-shaped exists in forge yet (verified scripts/). Plan: faster-whisper on Vector's RTX 5070 via the Vector Claude pairing, Console CPU medium.en as fallback, per the open questions in jwvr-pipeline-prep-2026-05-04 (Finn has no usable GPU; Vector does). - forge_ingest_watchfolder.py sketch: inotify (or 5-min timer) on */Footage/ under /mnt/workspace on Finn or Console; on new clip settle (size stable 60s), fire transcription job + /notify. Build after the manual SMB flow is proven.

5. Prioritized next actions

  1. Justin, 5 min per phone: Blackmagic Camera "Save clips to: Files" + Files.app SMB connect (section 2). This alone kills the iCloud fight.
  2. Justin, 1 min: test /scaffold-project sns test shoot from Telegram/Console; confirm the structure matches taste, then retire the old macros.
  3. Console+Vector session: install faster-whisper on Vector (RTX 5070), wire forge_transcribe.py (clip in, transcript.json/srt out into Docs/).
  4. Sol session: enumerate Premiere MCP tools against the assembly need; decide MCP-native sequence build vs FCP-XML import path.
  5. Then: watch-folder ingest + rough-cut generator (transcript -> cuts.json -> sequence), closing the record-to-rough-cut loop.

[Claude Code, content-workflow worker]