Inspiration

Anyone who films talking-head videos knows the worst part of the edit isn't the edit. It's the hour before it: scrubbing through raw clips to work out which of the four attempts at a line was the good one, and discovering a missing line only after the set is packed away. That prep happens on the storage where the footage lands, so it belongs on the NAS.

What it does

footage-selects turns a folder of raw talking-head, interview or podcast clips on a UGREEN AI NAS into a Selects sheet (one Markdown file saved to a folder you pick):

  • Clip table: every clip with duration, resolution and transcription status
  • Retake groups: each line said more than once, every attempt with clip name and timecode, and the recommended keeper take with a one-line reason
  • Set aside: false starts and clips with no usable speech
  • Script coverage (optional): give it the script and every line is marked covered, covered - check by ear, or missing, so a reshoot happens while it's still cheap

Optionally, after approval, it tags clips fs-keeper / fs-retake / fs-dead and moves dead clips into a _rejects subfolder. It never deletes, trims or re-encodes anything.

How we built it

It's an orchestration Skill under the Uliya Skill Development Standard, built with the UGREEN Skill Developer Package (uliya-skill-kit 0.7.7). The Skill only delegates to registered UGOS experts and passes real returned paths and text downstream:

  1. file-agent: ug-filesystem find + ug-filemgr mediainfo to list clips (bounded to one folder, max 60 clips per run)
  2. knowledge-agent: ug-knowledge audio-transcription with timestamped segments, preferring a same-name sidecar transcript
  3. document-agent: ug-document qa full read of the script
  4. Written rules group attempts, spot false starts and pick keepers from the returned segments and confidence
  5. knowledge-agent: ug-knowledge save-text to save the sheet
  6. file-agent: ug-filemgr tags + file-workflow batch-move, only with approval

All five delegation states (completed, failed, cancelled, waiting_user, waiting_approval) are handled, and empty or partial results are reported honestly instead of guessed. The package passes the kit's static checker with zero errors and zero warnings. Data never leaves the NAS.

Challenges

The capability catalog describes transcription as working on "NAS audio" and doesn't confirm video containers. Rather than assume, the Skill prefers sidecar .srt/.txt transcripts and records any unsupported clip as "not transcribed" instead of failing the run. Confirming direct .mp4/.mov support is test case #1 on real hardware.

What we learned

Writing an orchestration Skill is mostly about saying what not to do: never invent a timecode, never broaden a search when it comes back empty, never treat chat agreement as platform approval.

What's next

On a real iDX6011 Pro: tune the retake-grouping thresholds against hand-labelled shoots, confirm timecode precision, and test batch limits.

Built With

Share this project:

Updates

Submission history