How I Remove Ums and Dead Air From a Podcast in Premiere (With Claude Code)
A friend who edits a podcast asked me how I get the ums out of my videos without spending an evening on it. This page is the long answer, so he and anyone else can set it up without a call.
I won’t pretend this replaces an editor. It does one boring job: the first cleanup pass. On a 36-minute recording it took six minutes of dead air out in about four seconds, and it left the decisions that need a human ear for a human.
What you end up with
You say “clean up the active sequence” to Claude Code. A few minutes later there is a new sequence next to yours in Premiere, called <your episode> - cleaned, with:
- the ums and uhs gone, wherever there was silence around them,
- pauses longer than one second shortened to about half a second,
- all your camera and mic tracks cut at the same frame, so nothing drifts,
- a marker on each um that runs straight into a word, for you to decide,
- and a report that lists every edit with its timecode and the words around it.
Your original sequence is never touched. If you don’t like the result, you delete the new one and nothing happened.
The code and the full instructions are on GitHub: github.com/cmagnoletes/premiere-podcast-cleanup
Why it works this way
I learned these rules the hard way, editing client videos with Claude and Premiere for the last few months.
The first version I built trusted the transcript. Premiere’s transcript gives you a start and end time for every word, so the obvious idea is to cut whatever sits between the words. That broke in two ways. The transcript’s word times are a little loose, so cuts nibbled the ends of sentences. And when I cut every “um” the transcript found, a lot of them ran straight into the next word, so the cut chopped the word too.
So the script now looks at three things from the same sequence:
The XML, which says where every clip sits on your timeline. The transcript, which says where every word sits. The audio, which says where it is actually quiet.
And it follows a few rules:
- Only fillers and silence can be cut. Words from the transcript are protected, and so is any sound the transcript can’t explain: a laugh, a cough, a “mm-hm” nobody transcribed.
- An um goes only if there is silence on both sides of it. If it’s glued to a word, you get a marker instead.
- When a pause is long, it keeps a little air after the last word and before the next one, so people still sound like people.
- Whole frames come out of every track at once, and nothing is sped up or re-encoded.
- Before writing anything, it checks its own work and tells you if a check failed.
What you need
- Adobe Premiere Pro, a recent version with the Text panel (I use the 2026 release)
- Claude Code
- Node.js, Python 3 and ffmpeg (free; the install commands are below)
- A Mac or a Windows PC. I edit on a Mac, so that’s the tested path; Windows notes are further down.
Setup (once, about fifteen minutes)
1. The tools
Install Homebrew if you don’t have it, then in Terminal:
brew install node ffmpeg
2. The Premiere MCP
The MCP is what lets Claude Code talk to Premiere. It’s an open-source project by Het Patel, and it’s the one I use every day: Adobe Premiere Pro MCP.
mkdir -p ~/mcp-servers && cd ~/mcp-servers
git clone https://github.com/hetpatel-11/Adobe_Premiere_Pro_MCP.git
cd Adobe_Premiere_Pro_MCP
npm install
npm run build
npm run setup:mac
Then connect it to Claude Code (one line):
claude mcp add premiere-pro --scope user -e PREMIERE_TEMP_DIR=/tmp/premiere-mcp-bridge -- node "$HOME/mcp-servers/Adobe_Premiere_Pro_MCP/dist/index.js"
3. The panel inside Premiere
- Restart Premiere.
- In Settings > Plugins, turn on Enable developer mode, and restart Premiere if you changed it.
- Open your project, then Window > Extensions > MCP Bridge (CEP).
- Set the Temp Directory to
/tmp/premiere-mcp-bridge, click Save Configuration, then Start Bridge.
To check it, ask Claude Code: “What’s my current Premiere Pro project info?” If it answers with your project’s name, you’re connected.
4. The cleanup skill
cd ~/mcp-servers
git clone https://github.com/cmagnoletes/premiere-podcast-cleanup.git
cd premiere-podcast-cleanup
./install.sh
The installer links the skill into Claude Code and runs its tests. Restart Claude Code afterwards.
If you want to see it work before touching a real episode, the repo has a fake two-person podcast you can run it on in ten seconds. The command is in the README.
On Windows
I haven’t run this on Windows myself, so treat the first setup as a small project. The steps are the same four, with a few differences that will trip you up if nobody tells you.
Install the tools with winget in PowerShell, then close and reopen PowerShell so it finds them:
winget install OpenJS.NodeJS.LTS
winget install Python.Python.3.12
winget install Gyan.FFmpeg
winget install Git.Git
If typing python opens the Microsoft Store, that’s a fake shortcut. Turn it off in Settings > Apps > Advanced app settings > App execution aliases. On Windows the command is usually py, not python3.
The MCP has no Windows installer. You turn on Adobe’s extension debug mode and copy the panel into Adobe’s extensions folder by hand. Each is one PowerShell command, and both are in the repo’s Windows setup notes.
The temp folder can’t be /tmp. On Windows the panel blanks out any /tmp path without an error. Use C:\Temp\premiere-mcp-bridge in the panel and in the claude mcp add line, spelled exactly the same in both:
claude mcp add premiere-pro --scope user -e PREMIERE_TEMP_DIR=C:\Temp\premiere-mcp-bridge -- node "$HOME\mcp-servers\Adobe_Premiere_Pro_MCP\dist\index.js"
Install the skill with install.ps1 instead of install.sh:
powershell -ExecutionPolicy Bypass -File .\install.ps1
After that, using it is the same as on a Mac: transcribe the sequence and tell Claude to clean it up.
Every episode
- Do your edit as usual: cuts, camera switches, intro. Run the cleanup last, before music and graphics, because it cuts every track at the same moment.
- Transcribe the sequence: Window > Text > Transcript > Transcribe sequence. Make sure every mic is included. Premiere sometimes transcribes only one track without telling you, and then the other person’s words aren’t protected.
- In Claude Code, say: “Clean up the active sequence in Premiere.”
- Claude will ask you to export the transcript (the … menu in the Transcript tab > Export transcript > JSON). It exports the sequence itself, runs the cleanup, brings the new sequence into Premiere, adds the markers and opens the report.
- Play a few of the edits from the report, then jump through the markers and decide those yourself.
The first time, try it on a copy of a short sequence. Five minutes of an old episode is enough to see whether you like the rhythm.
If it sounds too tight, or too loose
Tell Claude, in plain words. “Leave more air between sentences” or “only remove the ums, keep the pauses” both work. The settings behind those (how long a pause has to be before it gets shortened, how much air is kept) are explained in the repo’s tuning page.
What it won’t do
Words like “like”, “you know” and “I mean” stay in. A lot of the time they carry meaning, so I’d rather make those calls myself. Crosstalk is out of scope too. If your sequence has transitions, it asks you to nest the sequence first, which keeps the transitions safe inside the nest.
And you still need to listen to the episode before you publish it.
If you set it up and something doesn’t work, open an issue on the GitHub repo with the report it generated. And if you edit a podcast and try it, I’d like to know: did it save you time, or did you end up redoing the cuts?