Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

LitheMedia

LitheMedia

Shrink your media library by 80% or more โ€” free, private, and ridiculously simple.

Version 1.2.3 MIT License Python 3.10+ Cross-platform

๐Ÿ“– ไธญๆ–‡ๆ–‡ๆกฃ


Main window

Why LitheMedia?

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.

Conversion panel

What you can do with it

Compress like your disk depends on it

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.

Extraction panel

Convert between practically anything

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.

Rip audio from any video

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.

Settings

It won't destroy your original files. Period.

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.

How to get it

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.py

A command line, if that's your thing

The 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 192k

Hit python -m lithemedia.cli <command> --help for everything.

The little things

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.

Supported formats

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 โœ… โœ…

Compression presets at a glance

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.

What's coming

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.

For developers

pip install -r requirements-dev.txt
python -m unittest discover -s tests -v
ruff check .
mypy lithemedia
pyside6-deploy main.py     # build standalone executable

Changelog

1.2.3

  • Added loading overlay with animated spinner during file import โ€” scanning stays in a background thread, the indicator auto-closes when done.

1.2.2

  • 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.

1.2.1

  • 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.

1.2.0

  • ็ฎ€ไฝ“ไธญๆ–‡ / 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.

1.1.0

  • 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).

License

MIT ยฉ LitheMedia contributors

About

Free, local-first desktop app for batch media compression, format conversion, and audio extraction. Shrink your photo & video library by 80%+ without uploading anything.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages