Skip to main content

Video transcription and translation tool using Whisper and Gemini

Project description

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 (small.en model)
  • Translate SRT subtitles using Google's Gemini 2.0 Flash model
  • Supports translation to any language (defaults to Thai)
  • 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:

    # Basic installation
    pip install -e .
    
    # With all development tools
    pip install -e ".[dev,gemini]"
    
    # Or from requirements files
    pip install -r requirements.txt
    pip install -r requirements-dev.txt  # For development
    

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

Usage

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

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

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

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

Development

# Run tests
pytest

# Format code
black .

# Run linter
ruff check .

# Run type checker
mypy nakplae

Project Structure

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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nakplae-0.2.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nakplae-0.2.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file nakplae-0.2.0.tar.gz.

File metadata

  • Download URL: nakplae-0.2.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for nakplae-0.2.0.tar.gz
Algorithm Hash digest
SHA256 91d62498fbfaf8608e534e86b309a291097cdc8c072d4f656a4309515d312a23
MD5 e3cbc15487f3b5c94aff9d30a7e1353e
BLAKE2b-256 9dc052c1a829502a81839bdf2d4c1577876696d697da21674ce85d13d1c0ed2f

See more details on using hashes here.

File details

Details for the file nakplae-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: nakplae-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for nakplae-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78f5c40ae9b82179ad5f0ed6ddea4dd580bb29ff901052ff2564c3f9c8498287
MD5 b02b9e864b2f549d66e323306a74d66f
BLAKE2b-256 cde8764bf4d26afe40c23271f47d0c62b222c117aed998389c48bfba023e0db7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page