Skip to content

Repository files navigation

Tukdify MultiCompressor

Universal offline-first desktop media optimizer to compress videos, images, audio, PDFs and files —
no quality headaches, no watermarks, 100% private offline on your device.

Built with Python + FFmpeg. No subscriptions, no internet required. Your files never leave your computer.


✨ Features

  • 🎯 Target-size mode (MB or KB)"make this under 25 MB" or "this photo under 50 KB". Perfect for email limits and government / exam form uploads (passport photo, signature, PDF size limits). The feature paid tools charge for — free here.
  • 🎬 Video — H.264 re-encode with resolution capping (real example: 748 MB → 94 MB, −87%)
  • 🖼️ Images — JPEG/PNG/WebP + HEIC (iPhone photos), smart resize (real example: 10 MB → 1.4 MB, −86%)
  • 🎵 Audio — MP3 re-encode at chosen bitrate (−80% on WAV)
  • 📄 PDF — downsamples embedded images; target an exact KB size for portals
  • 📦 Any file/folder — falls back to high-ratio .7z archiving
  • 🛡️ Bulletproof — handles locked/empty/huge files gracefully, shows real error reasons, writes a debug log
  • 🖱️ Drag & drop + batch processing (compress dozens at once)
  • Parallel compression — uses multiple CPU cores (~3.3× faster batches)
  • 👁️ Before/after preview for images, plus an upfront reduction estimate
  • 🎚️ Presets (High Quality / Balanced / Small / Instagram / Email) + Advanced manual sliders
  • ⏹️ Live progress bars and a Stop button for long jobs
  • 📊 Lifetime stats, remembered settings, light/dark theme
  • 🧵 Multithreaded — the window never freezes
  • 💾 Handles huge files — streams through disk; a 50 GB video never loads into RAM
  • 🪟🍎🐧 Cross-platform — Windows, macOS and Linux

⬇️ Download & Install (Windows — no Python needed)

  1. Go to the Releases page and download Tukdify-MultiCompressor-Setup-1.1.0.exe (Installer) or Tukdify-MultiCompressor.exe (Portable).
  2. Run the installer or launch the portable executable directly. FFmpeg is bundled inside, nothing else to install.

⚠️ "Windows protected your PC"? — it's safe, here's why

When you run it the first time, Windows SmartScreen may show a blue warning. This is normal for every new open-source app — it appears because the app isn't signed with an expensive certificate yet, not because it's harmful.

To run it: click "More info""Run anyway."

You can verify it's safe yourself: the full source code is right here in this repo, and the app makes zero internet connections — everything happens offline on your machine. The warning will disappear on its own as more people download it. 🛡️


🎥 Demo

Tukdify MultiCompressor demo


📊 Real-World Compression Example

In real-world testing performed locally on an 8 GB RAM Windows laptop without cloud processing:

Source File Original Size Compressed Size Space Saved Processing
Raw Video File 9.82 GB 3.02 GB 69.2% reduction 100% Local / Offline

Note

Results vary depending on source media, input codec, resolution, selected quality preset or target size, and host hardware.


🚀 Quick Start (from source)

# 1. Clone
git clone https://github.com/Tukdify/Tukdify-MultiCompressor.git
cd Tukdify-MultiCompressor

# 2. Install dependencies (FFmpeg comes bundled via pip — no manual install!)
pip install -r requirements.txt

# 3. Run the app
python main.py

Command-line version

python cli.py video.mp4 photo.jpg scan.pdf --preset small --output ./out
python cli.py --help

🏗️ Architecture

The GUI and CLI both call one entry point (engine.py), which routes each file to the right compressor. Nothing in the UI knows about FFmpeg or Pillow — clean separation of concerns.

main.py / cli.py
        │
        ▼
  engine.compress_path()        ← the dispatcher ("brain")
        │
        ├── image_compressor.py   (Pillow + pillow-heif)
        ├── pdf_compressor.py     (PyMuPDF)
        ├── video_compressor.py ─┐(FFmpeg)
        ├── audio_compressor.py ─┘ via ffmpeg_runner.py (shared, cancellable)
        └── archive_compressor.py (py7zr)

  presets.py · config.py · history.py · utils.py   ← supporting modules
  gui/app.py                                        ← the window
Module Responsibility
engine.py Detects file type, routes to the correct compressor, logs history
ffmpeg_runner.py Runs FFmpeg, parses live progress, supports cancellation
presets.py Maps human intent (“Instagram”) → technical settings (CRF, DPI…)
utils.py Streaming-safe file ops, size formatting, output paths
config.py / history.py Remembered settings + lifetime stats (JSON in ~/.multicompress)
gui/app.py The desktop window (threaded, drag-drop)

🧪 Tests

pip install -r requirements-dev.txt
pytest -q

📦 Build a standalone .exe

pip install -r requirements-dev.txt
python build_exe.py

The bundled app (with FFmpeg inside) appears in dist/Tukdify-MultiCompressor.exe. Attach the standalone binary or the installer to a GitHub Release so anyone can download and run it — no Python needed.

🖱️ Add a right-click menu (Windows)

python install_context_menu.py            # adds "Compress with Tukdify MultiCompressor"
python install_context_menu.py --remove   # removes it

Then right-click any file or folder in Explorer → Compress with Tukdify MultiCompressor → the app opens with that file already queued. (Uses HKEY_CURRENT_USER, so no admin rights needed.)

💿 Build a real Setup.exe (optional)

Install the free Inno Setup, then:

python -m PyInstaller tukdify.spec   # 1. build standalone executable
ISCC installer/tukdify.iss          # 2. compile the installer

Produces Tukdify-MultiCompressor-Setup-1.1.0.exe — Start Menu shortcut, desktop icon, optional right-click menu, and a clean uninstaller.

🍎🐧 macOS & Linux

The code is cross-platform. To build a native app, run the same command on that OS (PyInstaller can't cross-compile):

pip install -r requirements-dev.txt
python -m PyInstaller tukdify.spec        # produces a macOS .app / Linux binary in dist/

The right-click menu (install_context_menu.py) is Windows-only; everything else — compression, GUI, drag-drop, presets, parallel jobs — works everywhere.

🌐 Project website (free)

A ready-made landing page lives in docs/index.html. Enable GitHub Pages → Deploy from branch → /docs in your repo settings and it goes live at https://tukdify.github.io/Tukdify-MultiCompressor/.


🛠️ Tech Stack

Python · FFmpeg (imageio-ffmpeg) · Pillow · pillow-heif · PyMuPDF · py7zr · CustomTkinter · tkinterdnd2


📄 License

MIT — see LICENSE. Includes a third-party notice for FFmpeg (LGPL/GPL).


Made as a free tool for creators, students and anyone who shouldn't have to pay to make a file smaller. Contributions welcome — open an issue or PR!

About

Free offline app to compress large video, images, audio & PDF — target exact MB/KB sizes and useful for all and also content creators for big files and video. And its completely free.

Topics

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages