Modern, user-friendly Python GUI for compressing one or multiple video files and translating subtitles, with per-file progress, ETA, advanced batch features, and a fast, responsive, multi-threaded subtitle translation workflow with GUI progress bar.
- Unified video compression: select one or multiple videos, all in one workflow.
- Batch mode: see all progress bars in a scrollable window, with per-file ETA.
- Modern UI: clean, dark-themed interface, clear fonts, colors, and spacing.
- Subtitle handling: for each video, choose to ignore, softcode, or hardcode subtitles.
- Efficient batch subtitle workflow: first select which videos need subtitles, then only configure those.
- Subtitle translation: translate .srt files between languages with a fast, multi-threaded workflow, real-time GUI progress bar, and completion notification.
- Robust error handling and user feedback throughout.
- Python 3.8+
- FFmpeg and FFprobe installed and available in your system PATH
- Python packages listed in
requirements.txt
:colorama
(for colored terminal output)pysrt
(for reading/writing subtitle files)deep-translator
(for Google Translate API)tkinter
(standard library)
- Install requirements:
pip install -r requirements.txt
- Install FFmpeg and make sure it is in your system PATH.
- Run the app:
python main.py
- Choose a mode:
- Video Compression: Select one or more videos, configure subtitles, output format, and size. Batch mode shows a scrollable window with per-file progress and ETA.
- Subtitle Translation: Translate a subtitle file between languages. The translation is fast (multi-threaded), the GUI remains responsive, and a progress bar shows real-time status. When finished, a message box confirms completion and the window closes automatically.
- Unified single and batch video compression into one workflow.
- Modernized all GUIs (fonts, colors, spacing, centering).
- Added scrollable progress window for batch compression.
- Improved subtitle workflow: select which videos need subtitles before configuring options.
- Per-file progress bars and ETA in batch mode.
- Robust error handling and user feedback throughout.
MIT
You can create a standalone .exe
for easy sharing and use on Windows:
-
Install PyInstaller (if not already installed):
pip install pyinstaller
-
Build the executable (from the project folder):
pyinstaller --onefile --add-data "main.py;." --add-data "gui_helpers.py;." --add-data "gui_film.py;." --add-data "gui_subtitle.py;." --add-data "compression.py;." --add-data "utils.py;." main.py
--onefile
: Bundle everything into a single .exe--add-data "<file.py>;."
: Ensures each Python module is included (repeat for all .py files in the project)- If you use additional data files (like themes), add them with more
--add-data
options.
-
Find your .exe in the
dist
folder asmain.exe
. You can rename it if you wish. -
Distribute: Share the
.exe
file with others. They do not need Python installed.
Note:
- If you see missing module errors, add them with more
--add-data
or check your imports.
- Subtitle translation workflow now fully implemented:
- Uses Google Translate (deep-translator) to translate all lines between any supported languages.
- Fast, multi-threaded translation for speed.
- Real-time progress bar in the GUI (not just command line).
- Output saved as
_translated.srt
. - GUI remains responsive during translation, and a completion message is shown when done.
- Requirements updated: now uses
colorama
,pysrt
, anddeep-translator
. .gitignore
and documentation updated to reflect new modular structure and ignored files.
- Only third-party packages (like
colorama
) are listed inrequirements.txt
. Standard Python libraries such asos
,subprocess
, andtkinter
are included with every Python installation and do not need to be installed separately. If you encounter errors about missing standard libraries, your Python installation may be broken—reinstall Python from the official website to fix this.
Feel free to modify the project for your own needs!