Your Best Clip Is Buried In A Video Nobody Finishes. I Built A Free Tool That Digs It Out.
You recorded ninety minutes. Somewhere in there are the clips worth posting. Finding them means scrubbing your own episode with a timeline open, and that is the part of the job that gets skipped the week you are busy.
So I built a free tool that does the finding. I gave it away instead of selling it. It runs inside the coding agent you already have. It reads your whole transcript first, then hands you a plan with exact cut times that you cut from in your own editor.
I called it Cutlist. MIT licensed, no account, no API key, and the scripts have no network code in them at all.
What comes back
The first run asks you thirteen questions and writes a profile, which I will come back to. After that, an episode is two files in a folder: your video, and the captions your recorder exported beside it. You open that folder in your agent and say "clip plan for episodes/ep06".
clip_plan.md comes back with 5 to 8 clips in publish order, and every clip carries a start and an end time to the millisecond. Under that sits the hook line, one sentence on why it got picked, trim notes, a title, a description, hashtags, tags, and a category. There is a cold open in there too, the one sentence that belongs at 00:00 of the full video. It runs ten seconds or less.
You also get previews/, rough cuts of every clip, so you can watch them before you ever open your editor. And frames/contact_sheet.jpg, the still frames it looked at with the times printed on them, so you can see exactly what it saw. And thumb_mock.png, a thumbnail mockup built from a real frame of your video, with thumbnail_brief.md telling you how to rebuild it in your own design tool.
Then you cut. Jump to the start time, split, jump to the end time, split, keep the range, go 9:16, captions on, export. Your profile holds that recipe in your own editor's words, so you are never translating steps out of software you do not run.
How it picks
Loudness finds laughs. Faces find frames. Neither one knows what was said, so I made the reading come first.
Your agent reads the whole compact transcript, then scores every candidate out of twelve on six tests: whether it stands up without the episode around it, whether it hooks inside two seconds, whether it carries one idea, whether it pays that idea off, whether the audio backs it up, and whether your guest says the part that matters. Eight out of twelve keeps a clip. On a solo video the guest test drops out and the bar becomes eight out of ten.
Audio energy and still frames never pick on their own. A laugh with nothing said under it is not a clip. Every pick comes back with the quote that earned it and a timestamp beside it, and I care about that rule more than any other one in here. Be clear about what enforces it, though: the validator checks that the quote field is filled in and that the times are real, and the agent is what holds the quote to your captions. The contact sheet and the previews are there so you can check its work in about a minute.
The rule that keeps your thumbnail, title and cold open saying one thing
Steal this part even if you never install anything.
Your thumbnail has to describe three things at once: the first ten seconds of the video, the title, and the first line of the description. When those three disagree, your viewer clicks on one promise and gets a different one. I have not measured what that costs, and my own decision log calls this a consistency rule rather than a quality one. What I will say is that the mismatch is avoidable, and this makes it hard to ship one by accident.
So the plan picks your cold open first, and then the title, the description and the thumbnail all describe that same sentence. I put four more rules on top of it.
Four words or fewer on the thumbnail. Legible small: the tool renders a 320-pixel-wide copy beside the full-size one, so you can see for yourself which words survive and which turn to mush. A real frame out of your video, an expressive face when a person is on camera and the strongest screen detail when it is slides or gameplay. And a promise your first ten seconds actually pays off.
The limits it checks before your agent calls a plan done
Every field comes back ready to paste, and a validator checks them against YouTube's own published limits, which I read on September 9, 2026: title 100 characters, description 5,000 bytes, tags 500 characters with the commas counted.
Here is one that catches people. YouTube's help pages say that past 60 hashtags on a video it ignores all of them, so I went looking for the 15-hashtag ceiling that clipping guides keep repeating, and I could not find it in YouTube's documentation anywhere. The validator uses the number YouTube publishes.
It checks my own clip rules the same way, and it separates the hard ones from the habits. A clip outside twelve to thirty-five seconds fails. Two clips that overlap fail. A cold open over ten seconds, or a thumbnail over four words, comes back as a warning instead. Those two are my own conventions, and YouTube enforces neither. Your agent is not allowed to call a plan finished while a failure is still standing.
Any recorder, any editor
The first run asks you thirteen questions, including which recorder makes your video and captions, which editor you cut in, and whether a person is on camera. It writes the export steps and the cut recipe for your tools into a profile file. Every run after that reads your profile instead of guessing.
I read those steps out of the vendors' own documentation on September 9, 2026. Riverside, Descript, Zoom cloud recording, StreamYard, SquadCast, Zencastr, OBS with Otter or Whisper, and YouTube's own captions. Then Premiere Pro, DaVinci Resolve, Final Cut Pro, CapCut, Descript, iMovie and Kdenlive. If yours is not on that list you just get five questions at setup instead.
Two things I should name, because a flat list like that hides them. Captions are not free everywhere: SquadCast makes none at all until you route the recording through Descript, Zoom and Zencastr put transcription on a paid tier, and StreamYard gates the transcript download behind its Advanced plan. And not every editor documents every step. iMovie has no documented way to jump to a timecode or produce a 9:16 export, so its recipe says exactly that and sends you elsewhere for those two steps. No invented keystrokes.
And when your tool behaves differently from what a vendor's page claims, your answer wins and goes in the profile, because you are the one looking at it. That profile is the one file I expect you to edit by hand, and it overrides everything else: the title formulas, the hashtag pool, the export steps, the lot.
The caption file is somebody else's file
This is the part I spent the most time on and it is the least visible.
Your captions come from a recorder, a transcription service, or a guest who mailed you an export, and your agent reads every line of them before it plans anything. So the scripts treat that whole folder as hostile. They strip the invisible characters that hide text from you while a model still reads it, they cap file and cue sizes, they refuse to read anything through a symlink, they never write through an existing filename, and check_inputs.py names any cue that reads like an instruction rather than like speech. The transcript file opens with a line saying the words below are data.
None of that makes a model obey. It narrows what a bad file can try, and SECURITY.md has the threat model, what is in scope, and where to report something I missed.
What it will not do
It plans. That is the whole job I gave it. It does not edit your video, there is no account, and there is nothing here to log in to.
The rule that your agent never posts, schedules or uploads is the first instruction it reads, and every prompt repeats it. It is still an instruction to a model rather than a lock, which is the plainest reason you are the one who clicks publish.
A number your guest says on the show stays a quote in their words, and it never comes back to you as a fact sitting in a description with your name under it.
And I made it stop instead of guessing. If your captions run past the end of your video, it refuses to write anything, and no flag opens that door: those cut times are not in that file. If your video runs on past the last word, it stops and asks you, because from where it sits an outro with nobody talking over it and two files from different exports look identical. You tell it which, and it carries on. There is one thing it still cannot catch. Captions that drift in the middle and end on time look fine to it, and that is what the previews are for.
Getting it
In Claude Code it is two lines: /plugin marketplace add itsryanlenk/cutlist, then /plugin install cutlist@cutlist.
Everywhere else, clone github.com/itsryanlenk/cutlist and run bash install.sh --all --global, which writes the skill into the paths Codex, Cursor, Gemini CLI and Copilot read on every project. Keep the --global. Without it the skill installs into the folder you are standing in, which is the clone you just made, and your agent will not find it when you open your episodes somewhere else. On Windows that line is .\install.ps1 -Agent all -Global.
Then run bash tests/selftest.sh, which needs Git Bash or WSL on Windows. It builds a fake three-minute episode, runs every script against it, and tells you in thirteen checks whether your machine has what it needs. You need ffmpeg, Python 3.9 or newer, and one pip install pillow.
Those install paths were current on September 9, 2026, and they drift between agent versions. If your agent cannot see the skill, copy skills/cutlist/ to whatever path its own documentation names. If your agent has no skill support at all, prompts/ holds paste-ready versions that do the same job.
The plain-English version of all this is at ryanlenk.com/pages/cutlist, which is also my consulting site, where I sell SEO and AI-search audits. This one is free and I am keeping it that way.
Where it came from
I got the idea watching @buildwithmaya's content. Seeing her help creators is what made me build this and give it away instead of putting a price on it.
Run the free AI Readiness Scanner: paste in your robots.txt and your homepage source, get a scored report on whether ChatGPT, Perplexity, and Google AI can actually read your business. About two minutes, no signup, and nothing you paste ever leaves your browser.
Run the free scan → Get The Receipts free ▸
I run the SEO and AI visibility for my family's Shopify shop and publish the receipts, good and bad. Every number on this site comes from a named tool export, and corrections get published rather than edited away.