Ultra-fast video/audio transcription, translation, and AI summarization powered by faster-whisper and mBART-50. Features VAD filtering, word-level timestamps, and Map-Reduce LLM synthesis for massive transcripts. Local-first & privacy-focused.
0
stars
17
commits
Python
primary language
May 12, 2026
updated
Textifier is a high-performance, professional-grade Python application designed for high-quality video/audio transcription, translation, and intelligent summarization. Powered by faster-whisper (CTranslate2), it offers significant speedups (4x-10x) over standard Whisper implementations while maintaining a lightweight footprint and maximum local privacy.
faster-whisper for near-instant results on modern hardware..words.json).tiny to large-v3-turbo or Distil-Whisper.git clone https://github.com/polyg00n/textifier.git
cd textifier
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python gui_main.py
Textifier provides a robust CLI (textifier.py) for headless operation and company pipeline automations.
Transcribe audio/video files to multiple formats (VTT, SRT, TXT, CSV, TSV, JSON).
# Single file (auto-detect language, use default large-v3-turbo)
python textifier.py transcribe "video.mp4"
# Specify language, output directory, and select formats
python textifier.py transcribe "hindi_audio.mp3" --language hi -o ./results/ --output-formats vtt srt txt
# Enable word-level timestamps JSON export
python textifier.py transcribe "interview.m4a" --word-timestamps
# Fine-tune decoding parameters
python textifier.py transcribe "lecture.mp4" --beam-size 8 --temperature 0.2 --repetition-penalty 1.3
# Use CPU explicitly and disable VAD
python textifier.py transcribe "podcast.mp3" --device cpu --no-vad-filter
# Batch process a folder
python textifier.py transcribe "meeting_recordings/" --folder
Translate existing VTT, SRT, TXT, or CSV files.
# Translate English VTT to French
python textifier.py translate "subs.vtt" --target-lang fr
# Translate Hindi to Gujarati
python textifier.py translate "transcript.txt" --source-lang hi --target-lang gu
# Batch translate a folder
python textifier.py translate "subtitles_dir/" --folder -l ja
Generate AI summaries using local or cloud LLMs with Map-Reduce support.
# Summarize using Google Gemini (requires API key)
python textifier.py summarize "transcript.txt" --provider gemini --api-key YOUR_API_KEY
# Summarize using local Ollama (ensure Ollama is running)
python textifier.py summarize "meeting.vtt" --provider ollama --model llama3 --strategy map_reduce
# Batch summarize a folder with custom chunking
python textifier.py summarize "outputs/" --folder --provider gemini --api-key YOUR_KEY --chunk-size 4000
Run transcription, translation, and summarization in one go.
# Transcribe, translate to Spanish, and summarize
python textifier.py pipeline "video.mp4" --translate-langs es --summarize --provider gemini --api-key YOUR_KEY
# Pipeline with custom Whisper settings and multiple languages
python textifier.py pipeline "lecture.mp4" --beam-size 8 --output-formats vtt txt --translate-langs fr es de --summarize --provider ollama --summary-model llama3
# Batch pipeline an entire folder
python textifier.py pipeline "videos/" --folder --translate-langs ja --summarize --api-key YOUR_KEY
faster-whisper (CTranslate2)large-v3-turbolarge-v3-turbo or distil-large-v3tiny to large-v3.mBART Large 50 Many-to-Many MMT| VRAM | Best For | Recommended LLMs |
|---|---|---|
| 24GB+ | High-speed processing / Massive Context | Qwen 3 32B+, Llama 3.1 70B |
| 12GB | Professional Workflow | Qwen 2.5 14B, Mistral Nemo 12B |
| 8GB | Standard Desktop | Llama 3 8B, Gemma 3 9B |
| 4GB-6GB | Entry GPU / Laptops | Phi-4 Mini, Gemma 3 4B-IT |
| CPU | Legacy Hardware | Phi-3 Mini, TinyLlama |
int8 or CPU. If you see this in the logs, it means the app is adapting to your GPU limitations.ffmpeg is reachable (type ffmpeg -version in terminal).Textifier includes a robust testing suite based on pytest.
Ensure you have pytest installed:
pip install pytest
Run the full suite:
python -m pytest -v tests/
MIT License - Sergio Gonzalez
17 commits
Python
99.8%
Ultra-fast video/audio transcription, translation, and AI summarization powered by faster-whisper and mBART-50. Features VAD filtering, word-level timestamps, and Map-Reduce LLM synthesis for massive transcripts. Local-first & privacy-focused.
0
stars
17
commits
Python
primary language
May 12, 2026
updated
Textifier is a high-performance, professional-grade Python application designed for high-quality video/audio transcription, translation, and intelligent summarization. Powered by faster-whisper (CTranslate2), it offers significant speedups (4x-10x) over standard Whisper implementations while maintaining a lightweight footprint and maximum local privacy.
faster-whisper for near-instant results on modern hardware..words.json).tiny to large-v3-turbo or Distil-Whisper.git clone https://github.com/polyg00n/textifier.git
cd textifier
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python gui_main.py
Textifier provides a robust CLI (textifier.py) for headless operation and company pipeline automations.
Transcribe audio/video files to multiple formats (VTT, SRT, TXT, CSV, TSV, JSON).
# Single file (auto-detect language, use default large-v3-turbo)
python textifier.py transcribe "video.mp4"
# Specify language, output directory, and select formats
python textifier.py transcribe "hindi_audio.mp3" --language hi -o ./results/ --output-formats vtt srt txt
# Enable word-level timestamps JSON export
python textifier.py transcribe "interview.m4a" --word-timestamps
# Fine-tune decoding parameters
python textifier.py transcribe "lecture.mp4" --beam-size 8 --temperature 0.2 --repetition-penalty 1.3
# Use CPU explicitly and disable VAD
python textifier.py transcribe "podcast.mp3" --device cpu --no-vad-filter
# Batch process a folder
python textifier.py transcribe "meeting_recordings/" --folder
Translate existing VTT, SRT, TXT, or CSV files.
# Translate English VTT to French
python textifier.py translate "subs.vtt" --target-lang fr
# Translate Hindi to Gujarati
python textifier.py translate "transcript.txt" --source-lang hi --target-lang gu
# Batch translate a folder
python textifier.py translate "subtitles_dir/" --folder -l ja
Generate AI summaries using local or cloud LLMs with Map-Reduce support.
# Summarize using Google Gemini (requires API key)
python textifier.py summarize "transcript.txt" --provider gemini --api-key YOUR_API_KEY
# Summarize using local Ollama (ensure Ollama is running)
python textifier.py summarize "meeting.vtt" --provider ollama --model llama3 --strategy map_reduce
# Batch summarize a folder with custom chunking
python textifier.py summarize "outputs/" --folder --provider gemini --api-key YOUR_KEY --chunk-size 4000
Run transcription, translation, and summarization in one go.
# Transcribe, translate to Spanish, and summarize
python textifier.py pipeline "video.mp4" --translate-langs es --summarize --provider gemini --api-key YOUR_KEY
# Pipeline with custom Whisper settings and multiple languages
python textifier.py pipeline "lecture.mp4" --beam-size 8 --output-formats vtt txt --translate-langs fr es de --summarize --provider ollama --summary-model llama3
# Batch pipeline an entire folder
python textifier.py pipeline "videos/" --folder --translate-langs ja --summarize --api-key YOUR_KEY
faster-whisper (CTranslate2)large-v3-turbolarge-v3-turbo or distil-large-v3tiny to large-v3.mBART Large 50 Many-to-Many MMT| VRAM | Best For | Recommended LLMs |
|---|---|---|
| 24GB+ | High-speed processing / Massive Context | Qwen 3 32B+, Llama 3.1 70B |
| 12GB | Professional Workflow | Qwen 2.5 14B, Mistral Nemo 12B |
| 8GB | Standard Desktop | Llama 3 8B, Gemma 3 9B |
| 4GB-6GB | Entry GPU / Laptops | Phi-4 Mini, Gemma 3 4B-IT |
| CPU | Legacy Hardware | Phi-3 Mini, TinyLlama |
int8 or CPU. If you see this in the logs, it means the app is adapting to your GPU limitations.ffmpeg is reachable (type ffmpeg -version in terminal).Textifier includes a robust testing suite based on pytest.
Ensure you have pytest installed:
pip install pytest
Run the full suite:
python -m pytest -v tests/
MIT License - Sergio Gonzalez
17 commits
Python
99.8%