How to Edit a Video With ChatGPT
ChatGPT cannot cut your footage or render a file, and no prompt changes that. It can do the thinking around an edit extremely well, and its Python sandbox can run mechanical file operations inside ceilings worth knowing before you start.
This page is the escalation, in order: what works with the chat alone, what works with the code sandbox and where it stops, which operations need a real editing engine, and how to connect one so the chat can drive it. There are copy-pasteable prompts for every part ChatGPT is genuinely good at.
Where Each Route Stops
Every edit, however it is made, runs the same six stages. Measure the footage. Decide what changes. Write the decisions. Render. Look at what came out. Export the deliverable. The useful way to think about ChatGPT is not "can it edit" but "how far along that line does it reach" — and the answer differs by route.
| ChatGPT alone | + code sandbox | Connected editor | |
|---|---|---|---|
| What you hand it | Text you typed or pasted | One uploaded file, inside a size cap | The footage, up to 14 GB / 3 hours |
| What comes back | A plan, a script, a shortlist | A file your script produced | A rendered video, previewed |
| Cuts on a word boundary | ✗ | Only if you supply the timings | ✓ |
| Sees the frames it produced | ✗ | ✗ | ✓ |
| Captions, music, reframing, grade | ✗ | Only what you can script | ✓ |
| Survives a 2-hour recording | Transcript only | ✗ | ✓ |
| Runs unattended past ~2 minutes | n/a | ✗ | ✓ |
| Where the work happens | In your head, faster | In a Python sandbox | In an editing engine |
Rung 1 — What ChatGPT Alone Is Genuinely Good At
Start here even if you are going to use a real editor five minutes later, because the output of this rung is the input to every other one. Editing is two jobs wearing one name: deciding what the video should be, and performing the operations that make it that. ChatGPT is unusually good at the first and structurally incapable of the second. Treat it as the editor you talk to before you open anything.
Four things it does well enough to change the result. It turns a feeling into a brief — "it drags" becomes tighter cuts, a cold open lifted from minute nine, punch-ins on emphasis, music entering under the second beat. It reads a transcript far faster than you can scrub a stringout, which on a two-hour recording is the difference between an afternoon and ten minutes. It writes the words — titles, chapters, descriptions, on-screen text, hooks. And it explains craft: why your audio sounds thin, what a J-cut is, what loudness target to aim for, when a jump cut reads as energy and when it reads as a mistake.
What it cannot do at this rung is produce a number. Any timestamp it emits without a transcript in front of it is a guess that looks like a measurement, and that failure mode is worse than a refusal because it is formatted like an answer. Every prompt below either avoids timestamps or forbids inventing them.
PROMPT 1 · THE EDIT BRIEF
The highest-value thing ChatGPT does for an edit, and the one people skip. It converts a feeling into instructions that can be executed by someone who was not in the room — including you, three days later.
You are an experienced video editor's assistant. I am going to describe a
video and how I feel about it. Turn that into an edit brief another editor
could execute without asking me a single question.
VIDEO: [what it is, who is in it, how long, what it is for]
PLATFORM: [YouTube / Shorts / Reels / TikTok / LinkedIn / course module]
BOTHERS ME: [in whatever words you have — "it drags", "it feels flat",
"the start is boring", "I say um constantly"]
Return exactly these sections and nothing else:
1. GOAL — one sentence on what the finished video should do.
2. STRUCTURE — the running order as beats, with rough durations.
3. PACING — cut density, where to punch in, where to let it breathe.
4. AUDIO — music mood and energy, where it enters and drops out,
whether it ducks under speech.
5. TEXT — caption style, plus any on-screen text with exact words.
6. FRAMING — aspect ratio, and what must never leave the frame.
7. DO NOT — three things that would specifically ruin this video.
Be concrete. Do not use an adjective that cannot be executed.PROMPT 2 · FIND THE MOMENTS
Paste a timestamped transcript you generated elsewhere. This is ChatGPT reading 20,000 words faster than you can scrub, and the rule about not inventing a timestamp is the load-bearing line — without it you will get plausible numbers that point at nothing.
Below is a timestamped transcript of a [length] recording. Find the moments
I can actually use.
Rules:
- Quote the exact first and last words of every span you pick, and give the
timestamps that appear beside them in the transcript. Never invent a
timestamp. Never round one you were given.
- If a line was retaken, point at the take you would keep and say why.
- Flag every place the speaker restarts a sentence, contradicts an earlier
point, or promises something they never deliver.
Return:
A. COLD OPEN — the 8-15 seconds that should play first, and why.
B. KEEP — the spans that carry the argument, in order.
C. CUT — the spans that could go with nothing lost.
D. CLIPS — up to five self-contained 30-60 second spans that make sense
with no setup, each with one line on why it stands alone.
TRANSCRIPT:
[paste]PROMPT 3 · THE PACKAGING
Titles, description, chapters and on-screen pull-quotes. The verbatim constraint matters: a paraphrased pull-quote burned over a speaker who said something slightly different is the fastest way to look careless.
From the transcript below, draft the packaging. - 10 titles. Five plain and descriptive, five with tension in them. No colons, no "ultimate guide", and no number I did not actually say. - 1 description, 60-90 words, that says what the video contains rather than selling it. - Chapter markers, using the timestamps in the transcript. - 6 pull-quotes for on-screen text. Each under 8 words, each VERBATIM — if it is not word for word in the transcript, do not return it. - 3 hook lines for the first 3 seconds of a vertical cut. TRANSCRIPT: [paste]
PROMPT 4 · THE HANDOFF
This is the bridge to a tool that can execute. The ordering clause is doing real work — it encodes the rule that anything changing the length of the video has to happen before anything timed against that length.
Take the edit brief above and compress it into instructions for an AI video editor that works on one uploaded file. - Each instruction is one sentence describing an OUTCOME, not a menu path. - Order them so that anything which changes the length of the video comes before anything timed against the video's length: cuts first, then captions, then framing, and fit the music last. - Do not include anything you cannot state as a result I could look at. - Number them, and keep it under twelve.
If you want more of these written for an editor that can actually execute them, we keep a prompt collection and a prompt library organised by what you are trying to make.
Rung 2 — The Code Sandbox, and Its Real Ceilings
ChatGPT can write and run Python in an isolated sandbox — the feature that used to be called Code Interpreter and is now Advanced Data Analysis. Upload a file and it lands on a disk the model can operate on. This is the part most articles on this query either miss or overstate, so here is the honest version: mechanical operations genuinely work, and they work inside ceilings that arrive faster than you expect.
What actually completes: reading a container's facts, trimming to a timecode, concatenating clips, extracting the audio track, changing format or container, resizing, adjusting volume, and stripping audio out entirely. ffmpeg is reachable — usually via moviepy, which ships its own binary — so most single-verb requests finish. What does not complete is anything that needs to be decided rather than executed, anything that needs the network, anything per-pixel, and anything longer than about two minutes of encoding.
| The ceiling | What it costs you, for video specifically |
|---|---|
| A size cap per uploaded file | OpenAI's help centre documents a maximum upload size per file — 512 MB at the time of writing, and worth re-checking rather than trusting an article. Whatever its exact value, a 20-minute 1080p screen recording runs to hundreds of megabytes, so long footage has to be cut down before it can be uploaded — which is the thing you wanted done. |
| No internet inside the sandbox | The Python environment cannot reach the network. It cannot pull a package it does not already have, fetch stock B-roll, or download your file from a link. Everything arrives through the upload box. |
| Roughly two minutes of compute per run | Community measurement, not a published figure, but it is the wall people hit. Re-encoding is linear in footage length, so a stream-copy trim finishes and a full filter pass over ten minutes of 1080p does not. |
| No GPU | CPU-only encoding. That is fine for cutting and remuxing and hopeless for anything per-pixel — no denoise, no background removal, no upscaling, no object erasure at any usable speed. |
| The session resets | Files, variables and intermediate renders disappear when the session expires. Nothing accumulates: there is no project, so every conversation starts from an empty disk. |
| ffmpeg is present in practice, not by contract | It is reachable, usually through moviepy, which ships its own binary. OpenAI does not document it as part of the environment, so a workflow built on it can stop working without an announcement. |
| The model cannot watch the output | This is the one that has no workaround. The script writes a file; nothing looks at it. A caption over a face, a cut in the middle of a breath and a black frame all come back as success. |
The last row in that table is the one with no workaround, and it deserves its own sentence. The sandbox is a scriptable ffmpeg with a very good natural-language front end. It is not an editor, because an editor looks at the result. A script that writes a valid MP4 of thirty seconds of black frames reports exactly the same success as one that writes the cut you wanted.
PROMPT 5 · THE SANDBOX
For rung 2. Note what it does not ask for: no cuts by feel, no captions, no music. It asks for a measurement and one mechanical operation, which is the shape of request the sandbox actually completes.
Use the Python sandbox. I have uploaded clip.mp4. 1. Print the container facts: duration, resolution, frame rate, video codec, audio sample rate and channel count. 2. Trim it to 00:00:12.4 - 00:01:48.9. Stream-copy if the keyframes allow it; if they do not, say so before re-encoding. 3. Write trimmed.mp4 and give me a download link. Do not guess a value. If you cannot read one, say you could not read it.
Use this rung for exactly what it is: file surgery you already know the parameters of. If you find yourself describing an outcome — "make the pacing tighter" — you have left the rung, and the script that comes back will be a guess dressed as code.
Why It Cannot Cut Inside a Sentence
Both rungs above fail the same way on the most common request in video editing — remove the ums, tighten the dead air — and it is worth seeing why, because the reason is arithmetic rather than a model limitation that the next release fixes.
When a video is accepted at all, the model does not receive the file. It receives sampled frames, on the order of one per second, plus whatever text was extracted. A cut that sounds clean has to land on a word boundary, and word boundaries are measured in hundredths of a second by a transcription pass over the audio. Those two resolutions are not close to each other.
This is also why the fix is so cheap. Give the model a timestamped transcript and the same request becomes trivially answerable, because you have handed it the measurement it was missing. That is exactly what prompt 2 above does, and it is the single highest-leverage change you can make to a ChatGPT video workflow.
Rung 3 — What Needs a Real Editing Engine
Everything that requires either of the two boxed columns in the first diagram. Measuring the footage: word-level timestamps with speaker labels, silence detection, shot boundaries, and frames the system has actually looked at. And checking the result: rendering a preview and inspecting it, which is the step that catches a caption sitting across a face after a vertical crop — something no transcript and no timeline could have predicted.
In practice that covers most of what people mean when they say "edit my video": removing every silence across a two-hour recording, filler word removal that lands on word boundaries so nothing sounds clipped, burned-in captions timed against the transcript that survived the cuts, music fitted and ducked under speech, B-roll inserted at the right beat, zooms aimed at whoever is speaking, and reframing into a 9:16 aspect ratio for Shorts, Reels or TikTok with the captions rescaled into the new frame.
The ordering matters and is the thing a fixed recipe gets wrong. Cuts are expressed in source seconds; captions are timed in output seconds against what survived. Remove silences after captioning and every caption past the first cut is wrong by the length of everything deleted before it. Fit the music before the cuts and it is fitted to a program length that no longer exists. An agent that plans derives that order from the request; prompt 4 above makes ChatGPT derive it too, which is why it is worth running even when a good editor would have done it anyway.
For an outside vocabulary rather than ours: in "It's time for agentic video editing" (Justine Moore, a16z, 21 January 2026), the work a video agent takes on is split into Process, Orchestrate, Polish, Adapt and Optimize. Mapping those onto the rungs is a fast way to see where a chat window stops.
| Stage | What the model describes | Which rung it lands on |
|---|---|---|
| Process | Sort raw footage — A-roll vs B-roll, compare takes, handle multiple angles | Rung 3. Needs the whole file measured, not a paragraph about it. |
| Orchestrate | Coordinate several models in one project and stitch the outputs together | Rung 3 or 4. ChatGPT can plan the chain; something has to hold the timeline it lands on. |
| Polish | Level the audio, clean the noise, take out filler words, match lighting between clips | Rung 3. Filler-word removal alone needs word-level timings the chat never had. |
| Adapt | Repurpose across platforms — a long recording into short vertical cuts | Rung 2 for the decision of what to clip, rung 3 for the clipping. |
| Optimize | Editorial judgement — draft versions, respond to notes like “the opening is too slow” | Rung 1 is genuinely good at the note. Acting on it is rung 3. |
Note that only Optimize lands meaningfully on rung 1 — and it is the one people least expect the chat to be good at. "The opening is too slow" is a genuinely hard editorial judgement, and ChatGPT makes it well. It just cannot then move the opening.
Rung 4 — Connecting an Editor the Chat Can Drive
The gap between rung 1 and rung 3 is a handoff you currently do by copy and paste. It closes when the chat model is handed real tools, which is what the Model Context Protocol is for. MCP is an open standard for exposing a tool registry to a model over HTTP: the server declares what it can do, the client calls it, and the model chooses and sequences the calls.
Valmera publishes its complete editing toolset as a remote MCP server — 108 tools, 97 editing plus 11 session tools for projects, uploads, indexing, rendering, export and download — over streamable HTTP with OAuth 2.1, dynamic client registration and PKCE. It is the same registry Valmera's own agent uses, served verbatim rather than re-declared, so there is no second tool list that can drift. The full list is on the tool reference.
On ChatGPT specifically, here is the honest state. OpenAI's developer documentation describes developer mode as full MCP client support for all tools, both read and write, over SSE and streaming HTTP, with OAuth — for Pro, Plus, Business, Enterprise and Education accounts on the web. Write actions require confirmation by default, and OpenAI labels the whole feature elevated risk. So an editing server is loadable in principle, and the Valmera endpoint is protocol-compatible with it. We have not verified that path end to end, and we are not going to claim it works because it ought to. The ChatGPT MCP page documents the handshake in detail, including a contradiction in OpenAI's own docs about which plans get write actions.
The path we have verified is Claude. The same server runs as a connector in the Claude app and in Claude Code, and the conversation goes: upload, index, cut, caption, mix, render, look, export, download. If "edit video by chatting" is what you actually want, that is the route that exists today — and what it feels like is a separate page.
How to Edit a Video With ChatGPT, End to End
- 1Write the brief in ChatGPT before you open anythingPaste prompt 1. Describe the video and what bothers you in whatever words you have, and get back goal, structure, pacing, audio, text, framing and a do-not list. This is the rung ChatGPT is best at, and everything downstream is better for having it.
- 2Get a real timestamped transcriptNot from the chat — it is the input, not the output. Any transcription pass with word-level or sentence-level timings works: a local Whisper run, a transcription service, or an editor that indexes the file on upload and hands you one.
- 3Have ChatGPT find the moments in that transcriptPaste prompt 2. You get a cold open, the spans that carry the argument, the spans that can go, and up to five self-contained clips — each quoting real timestamps from the file rather than invented ones.
- 4Compress it into ordered outcome instructionsPaste prompt 3 for the packaging and prompt 4 for the handoff. Prompt 4 orders the instructions so anything changing the video's length comes before anything timed against that length: cuts, then captions, then framing, and fit the music last.
- 5Hand those instructions to something that can execute themUpload the footage — up to 14 GB or 3 hours, in MP4, MOV, MKV or WebM — and paste your numbered instructions. An agent indexes the file once, sequences the dependent operations, edits an edit decision list, renders a preview and looks at the frames it produced. Or drive that same toolset from Claude over MCP without leaving the chat.
- 6Judge the preview, correct in plain English, exportReact to what you see: "looser cuts", "bigger captions", "different track", "the opening is still slow". Each correction is another full pass, not a manual fix. Export when it is right — the final render comes from your original file at source quality, not from the preview proxy.
Steps 1 to 4 are minutes of chat. Step 5 indexes the upload once, with visible progress, and every request after that reads the index rather than the footage.
A Note on Sora, and on Generation Generally
A lot of advice on this query points at Sora. Two problems with that. Sora was a text-to-video generator, not an editor — it produced footage that never existed rather than operating on footage you shot, which is a different problem with different inputs. And it is gone: OpenAI announced a two-stage shutdown in March 2026, the web and app experiences closed on 26 April 2026, and the API is set to discontinue on 24 September 2026.
The general point survives the specific product. If you have a recording of a real person saying real things, generation is not the tool — no quantity of generated footage cuts the ums out of what you already shot. Generated clips are useful as inserts inside an edit, which is why Valmera can splice short generated video and stills into a timeline, and why it will not pretend to produce a whole video from a prompt.
What This Workflow Still Will Not Do
The escalation above solves the handoff, not everything. Here is where it stops, on both sides.
- ChatGPT still cannot see your footage. Everything at rung 1 runs on text you supply. If the problem is visual — bad framing, a distracting background, a shot that does not match the one before it — the chat is guessing, and it will guess confidently.
- Multi-cam is out at every rung. Valmera edits one main video; there is no angle sync, so a three-camera shoot has to be one cut file before it arrives. A traditional NLE — Premiere, DaVinci Resolve, Final Cut — is the right tool for that, and for node-based colour, keyframed compositing and motion tracking. Valmera does not import or export project files for any of them.
- One deliverable per request. Turning a long recording into ten Shorts is ten directed requests, not one batch. If what you need is a hundred ranked vertical clips a month to A/B test, an automated clipper is the right shape and this is not.
- No subtitle file. Captions are burned into the picture — no SRT or VTT import or export, and no chapter metadata, so the chapters ChatGPT drafts get pasted into your platform by hand.
- No audio repair. No denoise or "studio sound", no per-speaker leveling, no separating music out of an already-baked track. Loudness mastering and per-layer gain exist; restoration does not.
- Also worth knowing. No true crossfade or dissolve and no per-cut transition choice, no custom font uploads, no motion-tracked stickers, no AI music generation, no team seats or share links, no direct publishing to YouTube or TikTok, and no native mobile app. English is the best-tested transcription path. Free-plan exports carry a small mark; paid exports carry none, and previews are never marked.
Valmera's agent knows these edges too. Out-of-scope requests are refused rather than faked, and every reply is verified server-side against the edit decisions actually recorded — so it cannot claim a cut it did not make. The export documentation covers what a finished file contains on each plan, and our comparison page says plainly where another tool is the better answer.
Frequently Asked Questions
Paste the Brief Into Something That Can Execute It
50 free credits, no card. Upload real footage, paste your numbered instructions, and watch the preview — or connect the same toolset to Claude and stay in the chat.
Start free →