Privacy policy
We don't collect your data.
There's nothing for us to sell, share, lose or hand over, because we never receive it. The rest of this page is the detail behind that sentence.
Last updated
The short version. Ninja compresses, converts and edits videos entirely on your phone. It has no server, no account, no ads and no analytics, and it makes no network requests. Nothing you open in Ninja — no video, no filename, no usage statistic — is sent to us or to anyone else.
This policy covers the Ninja app — listed as Ninja Video Compressor on Google Play and Ninja Video Compress & Convert on the App Store, package app.ninjacompress.mobile — and this website. Both are published by Aviad Katani (Katani Labs), referred to below as "we".
What Ninja touches on your device
The videos you choose. You pick videos through your phone's own picker (the Android Photo Picker, the iOS photo library picker, a file picker, or by sharing a video into Ninja from another app). Ninja reads the ones you pick, compresses them, and writes the result where you told it to. It never scans your library on its own initiative and never opens a file you didn't choose.
Video frames, briefly. To show a thumbnail, the before/after comparison, or the check that proves a compressed file actually plays, Ninja decodes a few frames in memory on your device. They're drawn on screen and discarded.
What Ninja stores on your device
All of it lives in Ninja's own private app storage — a local database and a private vault folder. No other app can read it, and none of it is transmitted anywhere.
| What | Contains |
|---|---|
| Job history | For each video you processed: its name and the reference you picked, file size, the settings you used, whether it succeeded, how much space it saved, and timestamps. |
| Ninja Vault | For originals you chose to stage instead of deleting outright: the original's name and reference, where the staged copy sits in private storage, its size, and how long it's kept. The staged copy is the original video file itself. |
| Presets | Compression presets you saved, and the names you gave them. |
| Preferences and counters | Your settings (default after-compression action, retention, filename template, theme, haptics and so on) and lifetime totals such as space reclaimed and jobs completed. |
What leaves your device
Nothing, unless you deliberately send it.
The only way a file leaves Ninja is if you tap Share and pick a destination in your phone's share sheet. Your operating system then hands the file to the app you chose, and that app's privacy policy applies — not ours. Ninja itself doesn't upload, sync or back anything up.
Two honest details behind that promise:
- On Android, the app doesn't request the
INTERNETpermission. The operating system therefore blocks all network access by the app, whatever any library inside it might try. - Ninja bundles FFmpeg, a general-purpose media library that is capable of reading from network addresses. Ninja only ever hands it local files. On Android the missing
INTERNETpermission enforces that at the system level; iOS has no equivalent permission, so there the guarantee rests on the app's code, which contains no network address and no HTTP client of any kind.
Your own backups are an exception we don't control. Ninja's private storage is ordinary app data, so if device backup is switched on, your operating system may include it in your backup — Android's backup to your Google account, or an iCloud or computer backup on iOS. That's your backup, under your account, governed by Google's or Apple's terms. We never see it.
Permissions, and why each is asked for
Ninja asks for as little as possible, and asks in context rather than at launch. You can decline any of these and still compress videos through the system picker.
Android
| Permission | Why |
|---|---|
READ_MEDIA_VIDEO, READ_MEDIA_VISUAL_USER_SELECTED | Only for the in-app video grid and the "biggest videos on your device" list. The system Photo Picker needs no permission at all, and Ninja works without this one. |
READ_EXTERNAL_STORAGE (Android 12 and older) | The pre-Photo-Picker equivalent of the above. |
WRITE_EXTERNAL_STORAGE (Android 9 and older) | Writing output files on versions that predate scoped storage. |
ACCESS_MEDIA_LOCATION | Only for "Replace original": it copies the original's date and location tag onto the compressed replacement, so your gallery timeline and map don't break. |
FOREGROUND_SERVICE, …MEDIA_PROCESSING, …DATA_SYNC | Keeps a long compression running when you switch apps, instead of losing your progress. |
POST_NOTIFICATIONS | The progress notification for that service. |
WAKE_LOCK | Keeps the device awake during a job, if you turned that setting on. |
Ninja deliberately never requests MANAGE_EXTERNAL_STORAGE ("all files access"). It has no need for it.
iOS
| Permission | Why |
|---|---|
| Photo library access | Only when you save a compressed video into your library, or move an original to Recently Deleted. Compression itself works without it. |
Deleting everything
- Ninja Vault items: open the Vault and delete or restore each staged original.
- Everything Ninja stores: on Android, Settings → Apps → Ninja Video Compress → Storage → Clear data, or uninstall the app. On iOS, delete the app. Either removes the database, the vault folder and every preference.
- Videos you saved to your gallery or Files stay where they are. They're your files, in your storage; removing Ninja doesn't touch them.
There's no "request my data" process, because there's no copy of your data anywhere but your phone.
This website
ninjacompress.app sets no cookies, runs no analytics, and loads nothing from any other company — its fonts, images and scripts are all served from this domain. The web server is configured not to keep access logs, so it doesn't record the pages you visit, your IP address or your browser. The site is served from a server in Germany over an encrypted connection.
Children
Ninja is a general-purpose utility. It collects nothing from anyone, of any age.
Changes
If this policy changes, the new version will be published here with a new "last updated" date. Ninja can't tell you in-app, because it never contacts a server.
Contact
Questions about this policy: support@ninjacompress.app.