Skip to main content

Nakplae

A simple, elegant tool for transcribing videos to SRT subtitles and translating them with minimal dependencies.

Features

  • Transcribe video files to SRT subtitles using Whisper locally (multiple model options)
  • Support for multilingual content using language-agnostic models (tiny, base, small, medium, large)
  • Faster English-specific models available (tiny.en, base.en, small.en, medium.en)
  • GPU acceleration for maximum performance (CUDA and Apple Silicon MPS support)
  • Translate SRT subtitles using Google's Gemini 2.0 Flash model
  • Supports translation to any language (defaults to Thai)
  • Real-time Whisper progress output for better visibility
  • Simple command-line interface
  • Minimal dependencies

Installation

Setup Environment

  1. Create a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  2. Install the package:

    # Installation from PyPI (includes GPU support by default)
    pip install nakplae
    

    For developers:

    # Clone the repository
    git clone https://github.com/elimydlarz/nakplae.git
    cd nakplae
    
    # Install in development mode
    pip install -e ".[dev]"
    

Prerequisites

  1. Ensure you have FFmpeg installed (required by Whisper)

    • On macOS: brew install ffmpeg
    • On Ubuntu: sudo apt install ffmpeg
    • On Windows: Download from the official website or use chocolatey
  2. For local LLM translation (optional):

    • Install llama.cpp and ensure llama is in your PATH
  3. For Gemini translation:

    • Set GEMINI_API_KEY environment variable with your API key:
      export GEMINI_API_KEY=your_api_key_here
      
    • Uses the Gemini 2.0 Flash model for translations with improved rate limiting

Usage

After installation, you can use the nakplae command directly:

# Basic usage (translates to Thai by default)
nakplae video_file.mp4

# Translate to a different language
nakplae video_file.mp4 --lang "Spanish"

# Only transcribe, don't translate
nakplae video_file.mp4 --transcribe-only

# Specify output directory
nakplae video_file.mp4 --lang "French" --output /path/to/output

# Use a faster model for multilingual content
nakplae video_file.mp4 --model tiny

# Use English-specific model for faster English transcription
nakplae video_file.mp4 --model small.en 

# Use a more accurate model for important content
nakplae video_file.mp4 --model medium

If you installed in development mode, you can also run:

python -m nakplae video_file.mp4 --lang "Spanish"

The program will automatically use GPU acceleration if available (CUDA on NVIDIA GPUs or MPS on Apple Silicon).

Development

# Run tests
pytest

# Format code
black .

# Run linter
ruff check .

# Run type checker
mypy nakplae

Publishing

To publish a new release to PyPI:

# 1. Update version in pyproject.toml

# 2. Build the package
python -m build

# 3. Upload to PyPI (requires API token)
python -m twine upload dist/*X.Y.Z* -u __token__ -p $PYPI_API_TOKEN

Project Structure

nakplae/
├── nakplae/
│   ├── __init__.py
│   ├── __main__.py
│   ├── transcribe.py
│   └── translate.py
├── tests/
├── pyproject.toml
├── requirements.txt
└── requirements-dev.txt

License

MIT

Metadata

Release files for nakplae 1.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nakplae 1.1.4
File Size Uploaded
nakplae-1.1.4.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nakplae 1.1.4
File Interpreter ABI Platform
nakplae-1.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 22.8 kB

Release files / nakplae-1.1.4.tar.gz

Download URL nakplae-1.1.4.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2c38a0368a236cd782a288b1206517cd8f77137d8d2c00a4e92ba9653c16a489
BLAKE2b-256 checksum
How to use checksums
8d160a68406b6ec9b932b47de462274c68c2ca5f0683322973f86790919ee4bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / nakplae-1.1.4-py3-none-any.whl

Download URL nakplae-1.1.4-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
112b396813fd1f7b49ffcf2e96b56215f73dacbeba34c04debb33e2d6aaa95fd
BLAKE2b-256 checksum
How to use checksums
db190af113d7f91040594cc8df64a11a52c817109a65b1de3071f9b16e5aba90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

1.1.4 This release

2 release files

1.1.3

2 release files

1.0.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page