Content. Pipeline

How this works

Take a video that is already getting engagement and make your own version. Same proven format, your content, your voice. It never invents your opinions.

Quick start

  1. Start it: python -m uvicorn dashboard.app:app --port 8756 from the scripts/ folder.
  2. Open http://localhost:8756.
  3. Paste a reel or YouTube URL, pick the format, click Reverse-engineer it.
  4. Fill your own picks into the slots, add your take and CTA, click Write my script.
  5. Copy the hook, script, shot list and caption. Go record.

The three steps

1

Reverse-engineer

It downloads the video, transcribes it locally (Whisper), and uses Claude vision to split it into structure you keep (hook shape, pacing, shot order, CTA) and swappable slots you replace (the picks, claims, examples it is built around).
2

You fill the slots

It shows you exactly what content it needs. You supply your own picks, your take, your CTA. It will never fabricate your opinions, an empty slot comes back flagged, not invented.
3

It writes your version

Your content dropped into the proven format, in your voice. Reels get 3 hook options + a low-face shot list. YouTube gets a narration script for ElevenLabs + a synced screen-recording plan + chapters + titles.

Reel vs YouTube

Reel / ShortYouTube (long-form)
Aspect9:16 vertical16:9 landscape
Facehook + CTA onlyzero (voiceover)
Voiceyou on cameraElevenLabs, your clone
Outputhooks + script + shot listnarration + screen plan + chapters + titles

Where the output goes

Everything saves under scripts/output/<video_id>/ as JSON, so any stage can be re-run. The finished script is tailored_output.json (reel) or youtube_output.json.

The Brain loop

This pipeline is meant to speak to your Brain (the shared memory in skills/brain-loop/SKILL.md), the same one every other module in the team reads and writes. Two hooks:

If your Brain mode is Airtable, the dashboard talks to it directly via AIRTABLE_TOKEN in .env (set dashboard/brain.py's base/table IDs from your own tenant config first), so it works with no Claude session open. In local Brain mode, use the Download button and log the file manually. The Google Doc step is still Claude-side.

What's built vs coming

CapabilityStatus
Run the real pipeline (reel + YouTube)Now
Fill slots, get script / hooks / shot listNow
Copy + Download (PDF) buttons, branded UINow
Auto-apply Lessons (learning)Now
Save to the Content table (memory)Now
Dedup warningNow
Google Doc from a buttonLater
Source backlog + one-click queueLater

Needs

If something breaks