Shrink your media library by 80% or more โ free, private, and ridiculously simple.
๐ ไธญๆๆๆกฃ
Your phone, your camera, your screenshots folder โ they have one thing in common: they're silently eating your disk space. Thousands of photos and videos you'll never delete but don't actually need at full resolution.
LitheMedia (่ฝปๅชๅทฅๅ) is the answer. It's a free, open-source desktop app that compresses, converts, and extracts audio from your media files โ in bulk, on your own computer, without uploading a single byte to the cloud.
Pick a folder of vacation photos, drag it in, hit start. In minutes you've got the same files at a fraction of the size. We're talking 3 GB down to 400 MB. And honestly, you won't notice the difference.
How it works is simple: the left sidebar gives you three things to do โ Compress, Convert, or Extract Audio. That's it. Choose one, drag your files in, pick how aggressive you want it to be, and go. Everything else is handled for you.
LitheMedia compresses images in bulk โ JPEGs, PNGs, HEIC files from your iPhone, even raw TIFFs from your camera. On the video side it handles MP4, MKV, MOV, and pretty much every common format you'd encounter. Both get the same five presets:
- Fast โ when you just need to send something and don't care about perfection
- Compatible โ plays on anything, from your smart TV to your mom's old tablet
- Balanced (the default) โ the sweet spot where you save 70โ90% of the space and barely see a difference
- High Quality โ for photos and videos that actually matter
- Smallest Size โ maximum shrinkage for stuff you're archiving
The secret is modern codecs. By default the Balanced preset uses WebP for images and H.265 for video โ formats that are dramatically more efficient than the JPEG and H.264 your camera likely uses. That's where the 80%+ savings come from.
Don't worry about the technical details though. If you just want to click a button and get smaller files, the defaults are already optimal. If you do want to tweak things โ CRF values, encoder speed, output dimensions โ the advanced settings panel has you covered, with explanatory tooltips on every option.
Need that MKV file as MP4? Want your library of PNG screenshots as space-saving WebP? Got a folder of FLAC audio you'd like as MP3s for your phone? That's the Convert mode. LitheMedia supports 15 image formats, 15 video containers, and 15 audio formats โ and when the source and destination are compatible, it uses stream copy so there's zero quality loss.
Got a lecture recording, a concert video, or a YouTube download where you only care about the soundtrack? The Extract Audio mode pulls the audio track and saves it as MP3, M4A, WAV, FLAC, Opus, or whatever format you need. Multiple videos at once, of course โ because nobody wants to do this one by one.
This is the foundation the whole app is built on. LitheMedia never overwrites your source files โ even if you tell it to. It writes to a temporary location, verifies the output with ffprobe or Pillow, and only then atomically replaces the target. If anything goes wrong (crash, power loss, you hitting Cancel), the temp files get cleaned up and your originals are untouched.
Other safety details worth knowing: animated GIFs and APNGs won't get silently flattened into a single frame when you convert them. Nikon and Canon multi-picture files are handled correctly. And when you hit Cancel, FFmpeg actually stops โ not "after the current file finishes," but right then and there.
You've got three options depending on your setup:
Windows user? Grab the installer from Releases. It bundles FFmpeg so there's literally nothing else to install.
On an Apple Silicon Mac? Download the .app bundle from Releases, unzip, drag to Applications. FFmpeg is included.
Already have Python? If you've got Python 3.10+ and FFmpeg on your system, you're all set โ just clone and run:
git clone https://github.com/user/lithemedia.git
cd lithemedia
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python main.pyThe desktop app and the CLI share the exact same processing engine. If you prefer a terminal:
# Batch compress with a preset
python -m lithemedia.cli optimize ./photos -o ./compressed --preset balanced
# Convert mixed media in one pass
python -m lithemedia.cli convert ./media -o ./converted \
--image-format webp --video-format mp4 --audio-format mp3
# Pull audio from videos
python -m lithemedia.cli extract ./videos -o ./audio --format mp3 --bitrate 192kHit python -m lithemedia.cli <command> --help for everything.
A few touches that make the app feel good to use day to day: Light and dark themes (the green-tinted light theme is the default, dark is there when you need it). Full bilingual support โ switch between English and ็ฎไฝไธญๆ instantly in settings, no restart needed. File mode lets you cherry-pick individual files from different folders. Folder mode imports a whole directory and preserves the tree structure on output. You can run up to 8 jobs in parallel, cancel at any time, and after each batch you get a completion report with elapsed time, size changes, and per-file details.
Image formats (click to expand)
| Format | Read | Write |
|---|---|---|
| JPEG | โ | โ |
| PNG | โ | โ |
| WebP | โ | โ |
| HEIC / HEIF | โ | โ |
| AVIF | โ | โ |
| JPEG 2000 | โ | โ |
| TIFF | โ | โ |
| BMP | โ | โ |
| GIF / APNG | โ | โ |
| ICO | โ | โ |
| TGA | โ | โ |
| PPM / PNM | โ | โ |
| QOI | โ | โ |
Video formats (click to expand)
| Format | Read | Write |
|---|---|---|
| MP4 | โ | โ |
| MKV | โ | โ |
| MOV | โ | โ |
| WebM | โ | โ |
| AVI | โ | โ |
| M4V | โ | โ |
| MPEG / MPG | โ | โ |
| MPEG-TS / MTS / M2TS | โ | โ |
| FLV | โ | โ |
| 3GP | โ | โ |
| Ogg Video | โ | โ |
| WMV | โ | โ |
| ASF | โ | โ |
| VOB | โ | โ |
Audio formats (click to expand)
| Format | Read | Write |
|---|---|---|
| MP3 | โ | โ |
| M4A / AAC | โ | โ |
| WAV | โ | โ |
| FLAC | โ | โ |
| Ogg Vorbis | โ | โ |
| Opus | โ | โ |
| ALAC | โ | โ |
| WMA | โ | โ |
| AC-3 / E-AC-3 | โ | โ |
| AIFF | โ | โ |
| MP2 | โ | โ |
| MKA | โ | โ |
| CAF | โ | โ |
| Preset | Images | Videos | Best for |
|---|---|---|---|
| Fast | JPEG Q80 | H.264 CRF 27 / veryfast / 1080p | Quick sharing, speed first |
| Compatible | JPEG Q84 | H.264 CRF 23 / 1080p | Old devices, broad playback |
| Balanced (default) | WebP Q82 | H.265 CRF 26 / 1080p | Everyday batch cleanup |
| High Quality | WebP Q92 | H.265 CRF 20 / original size | Photos & precious videos |
| Smallest Size | WebP Q68 / 1080p | H.265 CRF 31 / 720p | Attachments, mobile storage |
Lower CRF = better quality + bigger file. It's not a percentage. Real results vary with your source material.
The architecture already has room for custom preset import/export, watch-folder automation, hardware encoder detection (NVENC / QSV / VideoToolbox / AMF), video thumbnail previews, per-task pause and resume, and Windows Explorer right-click integration. No timeline promises โ just things we'd like to build.
pip install -r requirements-dev.txt
python -m unittest discover -s tests -v
ruff check .
mypy lithemedia
pyside6-deploy main.py # build standalone executable- Added loading overlay with animated spinner during file import โ scanning stays in a background thread, the indicator auto-closes when done.
- Windows title bar now syncs instantly with theme changes. All child windows inherit the native window theme.
- Format conversion expanded to 15 image / 15 video / 15 audio formats with compatible codec defaults.
- HEIC/HEIF read and write support. CLI format options now use the same registry as the desktop UI.
- Tooltips use a custom transparent borderless popup (no more system square corners behind rounded cards). Dropdown lists similarly redrawn.
- Version label added to the left sidebar.
- ็ฎไฝไธญๆ / English language toggle, instant refresh across all widgets.
- Native spinner buttons removed from numeric inputs. Dropdowns replaced with themed rounded popups.
- Tooltips redesigned with usage notes and recommendations for every advanced parameter.
- Compression preset auto-switches to "Custom" when settings diverge from a known preset.
- Video max height uses standard options: Original, 2160P, 1440P, 1080P, 720P, 480P, 360P.
- Overall progress bar cleaned up โ no internal text, just a clean green fill.
- Green-tinted light theme and dark theme added. File mode and Folder mode with strict import rules.
- File mode outputs to each source file's directory; Folder mode requires an output directory and preserves tree structure.
- Advanced settings fully isolated between compress, convert, and extract modes.
- Queue statistics: total size, distribution, largest file, media type breakdown. Results show percentage change.
- Redesigned completion report with elapsed time, error details, and total size change.
- Fixed Nikon MPO/JPG being misdetected as animated (causing
invalid frame dimensions).
MIT ยฉ LitheMedia contributors



