Tools · Media
Resize, crop or trim a file without uploading it.
Choose a video, a picture or a recording and pick the change on a short form. Media shows a written plan, makes nothing until you confirm, and saves a separate file. Your original is never altered. No model is involved.
Why this exists
Shrinking a video, resizing a picture or cutting the start off a recording are small jobs that often mean uploading the file to a website or a chatbot. The work itself is ordinary code that has existed for years. Media runs that code on my own computer.
For a few days it also had a language model, so that I could type what I wanted in plain words instead of learning the settings. I took it out. A form that offers a few sizes fitted to the file does the same job in one press. What I tried and why it went is below.
What goes in and what comes out
- Goes in
- One video or recording at a time, or up to 100 pictures. A short landscape MP4 video, JPEG or PNG pictures, or a WAV or MP3 recording.
- Video
- A smaller copy at 1080p, 720p, 480p or 360p. The whole frame, the full length and the sound are kept. A size larger than the clip cannot be chosen.
- Picture
- A smaller copy with its longest side at a size you enter, or fitted inside a width, a height or both, keeping the whole picture. Or a crop from the centre to an exact size, with the edges it would cut off shaded on the picture first. Any of these can be made black and white. The form offers a few sizes that fit the picture, such as “Longest side 1200”; pressing one fills in the numbers for you to change.
- Recording
- The part between a start and an end time. Type them, or play the recording and take either from the player. Leave the start empty to keep from the beginning, or the end empty to keep to the end. The form also offers the first or the last so much of the recording, and plays the part you have chosen before you make it. The sound is not re-encoded, so nothing is lost in quality.
- The plan
- Says exactly what will be made, including the size in pixels or the times kept. It appears as you choose the settings and changes when they do. Nothing is made until you press Create copy.
- Comes out
- A separate file. Media checks it against the plan before offering it. Those checks are mechanical, so look at it or listen to it yourself.
Models used
None. Every change to a file is ordinary code: FFmpeg 8.1.1 for video and MP3, Pillow 12.3.0 for pictures, and plain Python for WAV. Checking the plan and checking the result are ordinary code too. Normal use downloads nothing and sends nothing.
The model I took out
For a few days in October 2026 Media had a box to type a request in, such as “fit inside 800 x 600 and make it black and white”. A few plain rules read the simplest wording, and a language model on my computer, Qwen3 4B in a 2.5 GB file, read the rest and picked settings from a fixed form. It never saw the file and could not write a number of its own.
It worked. On 102 requests written by AI models that asked for something Media can do, it filled in the right settings for 82. It also filled in a wrong setting 6 times in 144 requests, without saying so. Once it put a height in the width box.
Then I added example requests under the box, each one a wording that was sure to be read. Typing an example is no easier than pressing it, so the examples were doing the model’s job. A form with those sizes on it does the same in one press, cannot fill in something I did not choose, and does not need 2.5 GB.
Before taking it out I tried nine smaller models, from 0.25 GB to 1.3 GB, on the same requests. The best filled in the right settings for 57 of the 102 and a wrong one 7 times. The ones that made fewer mistakes read hardly more than the plain rules did, and one failed on every request. So the choice was the 2.5 GB model or none, and I chose none.
Keep in mind: every one of those requests was written by an AI model, each model had one run, and the form the models filled in was written with the 2.5 GB one in front of me. The request box still exists in the code and appears if a model is set up; the app I use is built without one. The second study has the earlier comparison of rules and models.
What has been checked
Automated tests run on invented pictures, sounds and one invented video clip.
I played back one video copy at 720p and passed it. The other three sizes have had mechanical checks only. I looked at six resized copies of invented test pictures and listened to six trimmed copies of invented test sounds, and passed them all. Cropping and black and white have had mechanical checks only.
The form’s sizes, the one-sided limit, the empty start or end, the times taken from the player, the plan that follows the settings and the shading of a crop have automated tests on those invented files, in one browser. Nothing else about the form has been checked yet.
Known limits
- The form does only what is on it. There is no typing a request in words. Read the plan before you confirm it.
- Video is narrow: a landscape MP4 of up to 60 seconds and about 64 MB, in the common H.264 format at 30 frames a second. Anything else is refused with the reason. It cannot trim a video.
- Pictures are JPEG or PNG only. A crop always keeps the centre.
- Recordings are WAV or MP3 only, one part at a time, with no fade. A trimmed MP3 starts silent or quieter for a fraction of a second, and each cut can land up to about 0.013 seconds from the time you entered. The plan gives both figures for your file.
- It has only been run on an Apple silicon Mac.
- It keeps a working copy of your file, and each copy you make, only until you choose another file or quit. Save a copy you want to keep.
Availability
Not available to download yet. Media runs in the development Kettle app on my Mac, and as its own page. There is no public installer or source download at present.