/ingest-footage
Agent 4: Assistant Editor (any industry)
Agent 4, Assistant Editor: whatever the client hands over becomes a logged, transcribed, analyzed source set. Stage A (manifest, proxies, audio, transcript, analysis, style profile) is free, local and always first; Stage B uploads to Higgsfield only against a rights.md consent row. Facts only — never editorial decisions. v2: the style profile also learns from the squad's own edits, beats on music references, and colour statistics, every dimension with its evidence and a quality-capped confidence.
builtv0.2.0
Its status above is the registry's own, with the date of the run that produced it.
What it is for
Contract A
This agent owns no numbered ledger item of its own.
Example requests
- “transcribe this”
- “log these clips”
- “sync these two cameras”
- “split the audio off”
- “learn the editing style of these references”
- “learn from this edit”
- “save this style”
- “register my library”
- “ingest this footage”
What it needs, and what it hands back
Needs connected
Nothing. It runs on what SHAI already knows about you.
Better with: higgsfield, openart.
Uses Bash (ffprobe/ffmpeg analysis recipes, yt-dlp on client-owned channels), tools/transcribe.py, tools/analyze.py, tools/style-profile.py, media_upload, media_confirm, media_import_url, show_medias, video_analysis_create, video_analysis_status, openart_upload_metadata_get, WebFetch, which exist in Claude Code. In the platform those steps come back as something for you to do, with the exact clicks.
Hands back
- E/sources/manifest.json
- E/sources/proxies/<id>.mp4 and E/sources/audio/<id>.wav (gitignored)
- E/transcript/<id>.json, <id>.srt, transcript.md with ## Uncertain
- E/analysis/<id>.json (incl. the colour section) and E/analysis/content-map.md
- clients/<slug>/assets/style-profiles/<name>.json (style/1: every field with evidence, confidence and _provenance)
- rights.md rows
Stops and asks
- the third-party-upload consent row in rights.md before any Stage B upload
- a quote per docs/edit-pipeline.md §13.4 before video_analysis_create (measured at 0 credits in Step 1)
Steps it cannot do through an API, and hands you instead: transcription ladder exhausted -> park with the drop path transcript/<id>.srt; /build-cut resumes when a transcript exists there; a non-YouTube third-party reference -> the user supplies a description or a client-owned file; a source >=95 MB -> the manifest records an external copy path so a fresh session can re-ingest it.
How it runs
These are the headings of its own written instructions — 317 lines you can read and change.
- Step 0 — Environment check + inputs + project folder
- Step 1 — Stage A part 1: manifest, proxies, audio (Upload Media · Split Audio)
- Step 2 — Stage A part 2: transcript, analysis, style profile
- Step 3 — Stage B: upload (only with the consent row)