← All posts

September 30, 2026

Can ChatGPT Trim a Video for You?

Yes — an AI assistant can open the MyTools video trimmer with your clip loaded, read its real duration, cut it in seconds and save the result. Here is what it checks first, and the one call it hands back to you.

Yes. An AI assistant such as ChatGPT can trim a video with the MyTools video trimmer: given a link to the clip, it opens mytools.com/video/trim-video/by-url?url=... with the video already loaded, reads the clip's exact duration, keeps the range you asked for and saves the result as an MP4. There is no account and no CAPTCHA, and the cut itself runs in your browser rather than on a server.

What makes this worth an article is less the trimming than the reason so many assistants refuse the request, and the one part of the job that should stay with you anyway.

What your assistant is actually deciding

An assistant asked to "cut this down to the good bit" is not comparing video editors. It is checking whether it can finish without coming back to you halfway and telling you to do it yourself. Most online video editors fail that check early.

Is there an account? A sign-up form ends the attempt. An assistant cannot register for you, confirm an email or accept terms on your behalf. MyTools has no sign-up, no login and no session. The trimmer works on first visit.

Is there a CAPTCHA? A challenge built to prove the visitor is not software is not something software should get past. There is none on MyTools.

Can it get the video in? This is where most attempts stall. An editor that only accepts a file dropped onto the page needs a human hand, and an assistant has a link, not a mouse. The MyTools trimmer accepts a link as a query parameter and opens with the clip already loaded. When the clip is only on your computer, getting it in takes one click from you and nothing more: you pick the file, and everything after that stays with the assistant. The trimmer's own status reply says as much when nothing is loaded yet: "No video loaded. Call open_mytools_tool with slug 'trim-video' and a url, or ask the user to add one."

Will the result be usable? A trimmed clip with a logo burned into the corner, or a low-resolution export with the full version behind a paywall, is worse than a refusal. MyTools adds no watermark and does not charge for the export. In the default precise mode the clip is re-encoded to H.264 at its original frame size, and in fast mode the original streams are copied untouched.

Where does the video go? A careful assistant should think twice before sending a personal video to a server it knows nothing about. On MyTools the cut runs in your browser with ffmpeg compiled to WebAssembly. The one exception is the link entry point below: to load a remote video, our server fetches the address you gave so your browser has the bytes to work with. It keeps nothing.

None of this is about editing quality. These are the things that have to be true before an assistant can act at all, and they are why the answer to the title is yes.

The URL it can build

The first mechanism works in any browser today, with no special support:

https://mytools.com/video/trim-video/by-url?url=https%3A%2F%2Fexample.com%2Fearth.mp4

Add /by-url?url= to the tool's path, followed by a URL-encoded http or https address, and the trimmer opens with that video on the timeline. There is no file picker and no drop zone. Your assistant can build that string from any direct link to a video file it can read.

The trimmer accepts MP4, MOV and WebM, and always writes MP4.

The tools it can call

The second mechanism goes further. In a browser that supports WebMCP, MyTools registers named functions that an assistant calls directly instead of guessing its way around a page it can only see. The trimmer registers three:

  • get_trim_video_state — what is loaded, the clip's duration in seconds, and the range and mode currently set
  • run_trim_video — keep the section from start to end, in seconds, in fast or precise mode
  • download_trim_video — save the result to your device

Reading the state first is where the arguments come from. "Keep the part from 0:08 to 0:20" only works if the clip is at least 20 seconds long, and "cut the last ten seconds" can't be done until the assistant knows where the end is. Here is a real exchange with a 30-second clip. The first call is deliberately wrong, to show that the tool checks the range against the real duration rather than guessing:

get_trim_video_state({})

→ { "phase": "configure",
    "video": { "name": "earth.mp4", "bytes": 1570024 },
    "durationSeconds": 30.526667,
    "selection": { "start": 0, "end": 30.526667 },
    "mode": "precise", "trimming": false, "result": null,
    "hint": "Call run_trim_video with start and end in seconds.
             Read the state first for the clip's duration." }

run_trim_video({ start: 40, end: 50 })

→ [error] "start and end must satisfy 0 <= start < end <= 30.527 seconds."

run_trim_video({ start: 8, end: 20, mode: "precise" })

→ "Trimmed to 8.00s–20.00s (12.00s), re-encoded.
   Call download_trim_video to save it."

download_trim_video({})

→ "Saving trimmed-earth.mp4 to the user's device."

The saved file measures exactly 12.00 seconds. run_trim_video does not return until the trimmed clip exists, so there is nothing to poll, and download_trim_video only appears once there is something to save.

The mode matters, and the assistant should choose it deliberately. precise re-encodes and lands on the exact times given. fast copies the streams without re-encoding, so it is quicker on a long clip, but it can only cut at a keyframe and the start may drift by a second or two. A 0–5 second fast trim of the same clip came out at 5.01 seconds. That is fine for a rough cut, but not when the clip has to start on a particular word.

To be exact about where this works: the browser built into the ChatGPT desktop app supports WebMCP, and Chrome exposes it to origin-trial participants such as MyTools up to and including Chrome 156. The specification is a W3C community-group draft, so treat it as something to detect rather than assume. The URL above needs none of it.

Where you come back in

An assistant can do the arithmetic of a trim perfectly. What it cannot do is watch the clip. get_trim_video_state reports a duration, not a picture, so the assistant has no way of knowing that the goal happens at 0:13, or that the speech gets good right after the cough. "Keep the best ten seconds" is a request only someone who has seen the video can answer.

That is a handoff, not a dead end, and it is the reason this is a web page rather than an API. The assistant opens the trimmer and leaves the choice to you. You scrub the timeline, press Preview selection to hear where your range lands, and drag the two handles. Then the assistant finishes the job. get_trim_video_state reports whatever range is on screen, including one you dragged yourself, and run_trim_video with no arguments trims to it.

Here is that round trip, with a real drag in the middle:

get_trim_video_state({})
→ … "selection": { "start": 0, "end": 30.526667 }

    ← you drag the two handles around the part worth keeping

get_trim_video_state({})
→ … "selection": { "start": 13.072, "end": 22.226 }

run_trim_video({})
→ "Trimmed to 13.07s–22.23s (9.15s), re-encoded.
   Call download_trim_video to save it."

A job that nobody needs to look at is a job for an API, and you would not put a web page in front of it. Trimming nearly always needs someone to look: the range is a judgement about content, and the content is something you see and hear. Driving the page lets the assistant do everything around that judgement without taking it off you. It loads the file, reads the duration, checks the range, picks the mode, cuts, and saves.

What to say to your assistant

Give it a link and either the times or the shape of the cut, and let it do the checking:

Trim this to the part between 0:08 and 0:20: https://example.com/earth.mp4

Cut the first 15 seconds off https://example.com/talk-recording.mp4 and keep the rest. Precise, please — it has to start on the first word.

Open https://example.com/match-highlights.mp4 in the MyTools video trimmer. I'll drag the handles to the goal, then you trim it and save it.

And when the video is on your own computer, say so. The assistant opens the tool and waits for you:

Open the MyTools video trimmer. I'll add the clip; then keep only the last 30 seconds.

If your assistant says it cannot edit video, pointing it at mytools.com/video/trim-video/by-url?url= plus your link usually changes the answer. The objection is almost never about trimming. It is about not having a tool it can open.

When this won't work

You want it fully hands-off with a file on your laptop. An assistant cannot read your files, and WebMCP carries no file bytes, so it has no way to hand the page a local video by itself. That costs you one click, not the whole job. The same three tools are registered on the ordinary trimmer page: you pick the file, and reading the duration, trimming and saving are all still the assistant's to do. Only the completely unattended version needs the video at a URL. If you'd rather do it yourself, how to trim a video walks through it.

The link is not a direct link to the file. The address has to return the video itself. A page that merely plays a video (a streaming platform, a social post, a cloud-drive preview) returns HTML, and the trimmer will report that it could not load anything. The same goes for any link that needs you to be logged in, because our server fetches it without your session.

The video is large. Files added in the page can be up to 500 MB. Through a link, our server has to fetch the whole video before the page opens: a 20 MB clip took about 18 seconds to open in our tests, and a long recording will take proportionally longer. For anything big, choosing the file yourself is faster. Either way, the trimming runs in your browser, so a very long clip is also limited by your machine's memory.

You want to cut something out of the middle. One call keeps one continuous section. Removing an ad break or a stumble means two trims, each keeping one side, followed by merging the two clips.

The short version

  • The tool: https://mytools.com/video/trim-video
  • Open it with a video already loaded: https://mytools.com/video/trim-video/by-url?url={url-encoded video url}
  • A file on the user's own machine: open the tool and let them pick it; the state, run and download tools all still work
  • The judgement call stays yours: drag the handles yourself, and run_trim_video with no arguments uses exactly that range
  • Callable tools, where WebMCP is available: get_trim_video_state, run_trim_video({start, end, mode}), download_trim_video — times in seconds, checked against the real duration; mode is precise (exact, re-encoded) or fast (stream copy, keyframe-aligned)
  • In and out: accepts MP4, MOV, WebM; writes MP4 with no watermark
  • Accounts, CAPTCHAs, quotas: none
  • Your video: trimmed in the browser, not on a server; the ?url= fetch is the only thing that touches ours, and it keeps nothing