On-device · Offline · Free
Big videos.
Small files.
Nothing leaves your phone.
Ninja compresses, converts and edits video entirely on your device. No server, no account, no upload — the Android app doesn't even request the Internet permission, so your phone enforces the promise for us.
- file
- Demo_4K_60fps.mp4
- before
- 439 MB
- after
- 36.4 MB
- saved
- 403 MB
- cut
- −92%

- No adsNot a banner, not a "watch this to continue".
- No subscriptionEvery tool unlocked. Nothing to buy.
- No accountOpen it and go. There's nothing to sign into.
- No Internet permissionSo Android itself blocks Ninja from the network.
How it works
The whole thing, in 25 seconds.
A screen recording of the real app, edited for length.
- 01PickFrom your gallery — sorted by newest, largest or longest — or share a video in from any app.
- 02Choose how smallLeave it on Ninja Auto, or pick a size, a quality or a share preset. The estimate is live.
- 03Check, then keepCompare the result with the original at the same moment. Only then decide what happens to the original.
The Forge
Six ways to decide how small.
A live size estimate updates before you commit — so "how small" is a number you choose, not a surprise you discover.
Ninja Auto
Reads each video's bitrate, resolution and codec, then picks the biggest saving that still looks sharp.
Quality
Five steps you can name: Extreme, High, Balanced, Small, Tiny.
Target size
"Fit this into 25 MB" — the one for attachments and upload caps.
Percentage
Aim each video at a share of its own size. Useful for a mixed batch.
Resolution
Pick the height, 2160p down to 240p; bitrate follows.
Manual bitrate
For when you already know the number.
Hardware encoders do the heavy lifting, so a 4K clip takes minutes, not an afternoon. If a phone's encoder refuses a file, Ninja steps down a four-rung fallback ladder and finishes in software instead of failing.

Share presets
Sized for where it's going.
Fifteen one-tap targets. Each carries its platform's cap, resolution and frame-rate ceiling, so the file fits the first time.
Messaging
- WhatsApp16 MB
- Telegram2 GB
- Discord10 MB
- Discord Nitro500 MB
- iMessage / MMS3.5 MB
- Gmail25 MB
- Outlook20 MB
- Yahoo Mail25 MB
Social
- Instagram Feed650 MB
- Instagram Reels650 MB
- Instagram Story650 MB
- TikTok287 MB
- YouTube Shorts2 GB
- X (Twitter)512 MB
- LinkedIn5 GB
Platforms move their limits. The guides track the current numbers, and Target size mode takes any number you type.

The verification gate
It will not delete the wrong thing.
Most compressors ask you to trust them with your originals. Ninja earns it: before an original can be touched, the compressed copy has to pass all nine checks, in this order. One failure and nothing is deleted — full stop.
- 01It existsOutput file exists and is larger than 4 KB
- 02It parsesContainer parses with at least one video stream
- 03Same lengthDuration within max(±0.75 s, ±1%) of the expected length
- 04Sane videoVideo stream has codec, width and height
- 05Audio survivedAudio stream present and decodable when expected
- 06Frames decodeFrames decode at start, middle and final keyframe
- 07In your galleryOutput registered in the media library and readable
- 08Actually smallerOutput is smaller than the original
- 09Finished cleanlyJob completed successfully and was not cancelled
Then you decide what happens to the original.
- Keep bothOriginal untouched.
- Move to Ninja VaultThe original moves to an in-app vault. Restore it any time until you empty it.
- Move to system TrashThe original moves to your phone's Trash, restorable for 30 days.
- Replace originalThe compressed video takes the original's place, name and date — so your gallery timeline doesn't break.
- Delete permanentlyThe original is gone immediately. This cannot be undone.
One confirmation per batch. A ten-second undo. And a savings threshold that keeps both files when the saving wasn't worth it.

Toolbox
A full toolbox, not an upsell.
Fourteen tools, all unlocked. Watermarks are your text or your image — Ninja never stamps its own branding on your video.
- ConvertMP4 · MKV · WebM · MOV and more
- TrimCut the start and end
- Cut the middleRemove sections, join the rest
- CropFree or 16:9 · 9:16 · 1:1 · 4:5 · 4:3 · 2.35:1
- MergeJoin clips into one, in your order
- Speed0.25× – 4×, pitch preserved
- ReversePlay it backwards, sound and all
- Rotate / Flip90° steps and mirror
- MuteStrip the audio track
- WatermarkYour text or your image, nine positions
- SubtitlesBurn in, or add a selectable track
- Extract audioMP3 · M4A · WAV · FLAC · OGG
- Grab a frameScrub to a moment, save it as PNG or JPG
- GIF makerPalette-optimized · dithering and loop count
Containers MP4 · MKV · MOV · WebM · AVI · WMV · FLV · 3GP · MPEG · TS · M4V · OGV
Codecs H.264 · H.265 / HEVC · VP8 · VP9 · AV1 · MPEG-4

Built for real phones
Start a batch. Put the phone down.
- Keeps going in the background. A foreground service holds long jobs while you use other apps.
- Pause and resume straight from the notification.
- Minds the heat. If your phone gets hot, the queue pauses between files — and tells you why.
- Survives being killed. If the system closes Ninja mid-batch, it offers to resume what it lost.
- Share into it. Send a video to Ninja from any gallery or messenger.
- Remembers. Searchable history, in-app playback, and a same-timestamp before/after comparison.

Privacy, without the asterisk
A policy is a promise.
A missing permission is proof.
Any app can promise not to upload your videos. Ninja's Android build ships without theINTERNET permission, so the system refuses its network access before a single byte could leave. You don't have to take our word for it: the permission list is part of the app, readable with any APK inspector.
- No analytics. No crash reporting. No advertising ID. No sign-in.
- Your data stays in Ninja's private storage — history, presets and settings — and is erased when you clear app data or uninstall.
- When something breaks, Ninja writes it down on the phone. You decide whether to share that text — one tap, one time, into an app you choose.
- This website too. No cookies, no analytics, nothing loaded from anyone else.
Read the privacy policy — it's short, because there isn't much to say.

Before you install any compressor
Five questions worth asking.
Check the store listing's privacy section and the permissions list. Here's how Ninja answers.
FAQ
Questions, answered plainly.
Is Ninja really free?
Yes. Every feature is unlocked, there are no ads and there's nothing to buy. There is no paid tier, because there is no tier.
Does Ninja upload my videos anywhere?
No. Everything happens on your phone — there's no server, no account and no upload. The Android app doesn't even request the Internet permission, so the operating system itself blocks it from reaching the network.
Will compressing ruin the quality?
Ninja Auto reads each video's bitrate, resolution and codec and picks the biggest saving that still looks sharp. Before you keep anything, The Reveal lets you drag a divider across the original and the result at the same timestamp, and pinch in to check detail.
Could it delete the wrong file?
An original can only be touched after the compressed copy passes nine checks — it plays, it's the right length, its audio survived, frames decode at the start, middle and end, it's really in your gallery and really smaller. One failure and nothing is deleted. You also choose what happens to originals, including keeping both, and there's a ten-second undo.
Which formats does it handle?
12 containers — MP4, MKV, MOV, WebM, AVI, WMV, FLV, 3GP, MPEG, TS, M4V, OGV — with H.264, H.265 / HEVC, VP8, VP9, AV1, MPEG-4.
Does it work offline?
Entirely. Ninja never needs a connection, so it works the same in airplane mode, on a plane or with no signal at all.
Is there an iPhone version?
The App Store version is on its way. Android comes first.
Why is Reverse limited to one minute?
Reversing a video means holding every frame in memory at once. Past a minute, phones start to run out — and we would rather refuse than crash.