Skip to content

Repository files navigation

EncodeForge

Video Encoding, AI Subtitles & Smart Media Renaming — all in one place

A free, open-source desktop app for Windows, macOS, and Linux

License: MIT Platform GitHub release Python

FeaturesInstallationQuick StartConfigurationContributing


About

EncodeForge is a free, open-source FFmpeg GUI that brings professional video encoding, AI subtitle generation, and smart media file renaming together in a single, clean desktop application — no command-line experience required (though a scriptable CLI is there if you want it).

Encoding is GPU-accelerated wherever your hardware allows it, and AI subtitle transcription runs entirely on your own machine via faster-whisper — no cloud service involved.

Why EncodeForge?

  • Batch Processing — Convert entire video libraries while you sleep
  • Hardware Accelerated — Leverage your GPU for fast encoding via NVENC, AMF, Quick Sync, or VideoToolbox
  • AI Subtitles — Local transcription via faster-whisper with GPU acceleration; no cloud required
  • Smart Renaming — Pull metadata from 8 sources and rename your library in seconds
  • Modern UI — A custom dark glassmorphism interface built natively in PySide6
  • Scriptable — Batch-rename from the command line with cli.py rename, sharing the same engine as the GUI
  • Cross-Platform — Windows, macOS, and Linux

Built With

  • PySide6 — Qt 6 for Python
  • QtAwesome — Icon set for the UI
  • FFmpeg — Industry-standard multimedia processing
  • faster-whisper — Fast local AI subtitle generation
  • Nuitka — Python compiler for standalone distribution

Features

Video Encoding

  • Hardware Acceleration — NVIDIA NVENC, AMD AMF, Intel Quick Sync, Apple VideoToolbox
  • Smart Codec Detection — Automatically picks the best encoder available on your system
  • Batch Processing — Queue multiple files with real-time progress tracking
  • Stream Preservation — Copy streams without re-encoding when possible
  • Audio Normalization — Consistent volume levels across all output files

Subtitle Generation

  • Local AI Transcription — faster-whisper with GPU acceleration; runs completely offline
  • 90+ Languages — Full multilingual transcription support
  • 8 Download Providers — OpenSubtitles, Addic7ed, SubDL, Subf2m, YIFY, Podnapisi, SubDivX, Jimaku
  • Anime Support — Jimaku provider for English/Japanese anime subtitles
  • Format Support — SRT, ASS, SSA, VTT, and more

Smart File Renaming

  • 8 Metadata Providers — TMDB, TVDB, OMDB, Trakt, AniDB, Kitsu, Jikan/MAL, TVmaze
  • Auto-Detection — Recognizes movies, TV shows, and anime automatically
  • Custom Patterns — Define your own naming conventions with template variables
  • Preview Mode — Review all changes before applying them
  • Bulk Operations — Rename entire libraries in seconds, from the GUI or the CLI

Modern Interface

  • Glassmorphism Design — Clean, modern tabbed layout with translucent panels
  • Dark Theme — Tuned for long sessions (light/auto themes are in progress — see Roadmap)
  • Real-Time Progress — Detailed per-file and overall progress tracking
  • Queue Management — Add, reorder, and remove jobs at any time
  • Comprehensive Logging — Exportable logs for troubleshooting

Installation

Pre-Built Binaries (Recommended)

Download links and version history live on the EncodeForge website, so they stay accurate without editing this README for every release.

  • Downloads — every version, newest first, pulled live from GitHub Releases. The current release, 0.5.0, ships as a Windows .exe, a macOS (Apple Silicon) .dmg, and Linux .deb/.rpm/AppImage packages. Older 0.4.x builds are listed too; anything not yet uploaded shows as "coming soon."
  • Changelog — web version of CHANGELOG.md. Add a hash to jump to a version section when it exists, e.g. changelog.html#release-0-5-0-alpha-2, #release-0-4-1.

FFmpeg is required but not bundled. EncodeForge will prompt you to set it up on first launch.

From Source

Requirements: Python 3.10+, pip, Git

git clone https://github.com/SirStig/EncodeForge.git
cd EncodeForge

python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate

pip install -r requirements.txt
python main.py

Build a Standalone Executable

pip install -r requirements.txt
python build_nuitka.py

Quick Start

  1. Launch EncodeForge (python main.py or run the downloaded binary)
  2. On first launch, the app will help you locate or download FFmpeg
  3. Pick a tab — Encoder, Subtitles, or Renamer
  4. Add files via drag-and-drop or the file browser
  5. Configure your settings and click Start

That's it. Most options have sensible defaults, so you can dive straight in.

Scripting Renames from the CLI

cli.py rename shares the same renaming engine as the GUI, so you can batch-rename a library without opening a window:

python cli.py rename /path/to/library --dry-run          # preview only
python cli.py rename /path/to/library -y                 # rename in place
python cli.py rename /path/to/library -d /path/to/sorted --action move

Run python cli.py rename --help for the full option list. encode and subtitle CLI subcommands are not implemented yet — use the GUI for those (see Roadmap).


Configuration

API Keys (Optional)

EncodeForge works out of the box without any API keys. Adding them just unlocks a few extra metadata providers:

Service Purpose Free Tier
TMDB Movies & TV metadata Yes
TVDB TV show metadata Yes
OMDB Alternative movie data Yes (1,000/day)
Trakt Tracking & metadata Yes
OpenSubtitles Subtitle downloads Yes (5/day)

Always free, no key needed: AniDB, Kitsu, Jikan/MAL, TVmaze

Hardware Acceleration

EncodeForge auto-detects available GPU encoders on startup:

GPU Encoder Minimum
NVIDIA NVENC GTX 600 series+
AMD AMF Recent Radeon (Windows)
Intel Quick Sync 6th gen Core+
Apple VideoToolbox All modern Macs

System Requirements

Minimum Recommended
Windows Windows 10 Windows 11
macOS macOS 11.0 macOS 13.0+
Linux Ubuntu 20.04 Ubuntu 22.04+
RAM 4 GB 8 GB (16 GB for AI subtitles)
Storage 500 MB 2 GB
Python 3.10+ 3.11+

The Python row only applies if you're running from source (see From Source). The pre-built binaries bundle their own interpreter.


Roadmap

  • ✅ Modern glassmorphism desktop UI
  • ✅ GPU-accelerated faster-whisper for local AI subtitles
  • ✅ Shared core backend (GUI & CLI)
  • ✅ Nuitka compilation for all platforms
  • ✅ Scriptable CLI renaming (cli.py rename)
  • ⏳ CLI support for encode and subtitle commands
  • ⏳ Light & Auto theme options (selector exists in Settings; not yet wired up)
  • ⏳ Enhanced concurrent task processing
  • ⏳ Plugin system architecture
  • ⏳ Jellyfin & Plex direct integration
  • ⏳ Advanced subtitle synchronization
  • ⏳ Metadata artwork grabber
  • ⏳ Subtitle preview window

Contributing

Contributions are welcome! Whether it's a bug fix, a new feature, or improved docs — all help is appreciated.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m 'Add my feature'
  4. Push: git push origin feature/my-feature
  5. Open a Pull Request

Dev Setup

pip install -r requirements-dev.txt

pytest          # Run tests
black .         # Format code
flake8 .        # Lint
mypy .          # Type check
isort .         # Sort imports

License

Distributed under the MIT License. See LICENSE for details.


Acknowledgments


Support

Channel Link
Bug Reports GitHub Issues
Feature Requests GitHub Issues
Discussions GitHub Discussions

Built by Joshua Kac

If EncodeForge saves you time, consider giving it a ⭐ on GitHub — it really helps.

Releases

Used by

Contributors

Languages