Skip to main content

🎧 Whisperbox

Local video transcription powered by Whisper AI — no API costs, your data stays private.

CI PyPI version Python 3.10+ License: MIT

✨ Features

  • 🚀 Local Processing — Runs on your machine, no API costs
  • 📁 Batch Processing — Transcribe entire folders at once
  • 🎯 Multiple Formats — Output as Markdown, JSON, SRT, or TXT
  • 🌍 Multi-language — Supports 99+ languages (auto-detect or specify)
  • 📊 Progress Tracking — Beautiful CLI progress bars
  • 🧠 AI-Ready Output — Structured for RAG/embeddings pipelines
  • ⚡ GPU Accelerated — Uses CUDA for fast transcription

🖥️ Demo

# Single file
whisperbox transcribe video.mp4

# Batch folder
whisperbox transcribe ./videos --output ./transcripts

# With options
whisperbox transcribe video.mp4 --language pt --format markdown --model large-v3

📦 Installation

Prerequisites

  • Python 3.10+
  • NVIDIA GPU (optional but recommended)
  • FFmpeg

Install

# Clone the repo
git clone https://github.com/PeterTechDev/whisperbox.git
cd whisperbox

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or: venv\Scripts\activate  # Windows

# Install dependencies
pip install -e .

GPU Support (Recommended)

For NVIDIA GPU acceleration:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

🚀 Usage

CLI

# Basic transcription
whisperbox transcribe video.mp4

# Specify language (faster than auto-detect)
whisperbox transcribe video.mp4 --language pt

# Choose model (tiny, base, small, medium, large-v3)
whisperbox transcribe video.mp4 --model medium

# Batch process folder
whisperbox transcribe ./my-videos --output ./transcripts

# Output formats
whisperbox transcribe video.mp4 --format markdown  # .md with frontmatter
whisperbox transcribe video.mp4 --format json      # structured JSON
whisperbox transcribe video.mp4 --format srt       # subtitles
whisperbox transcribe video.mp4 --format txt       # plain text

Python API

from whisperbox import WhisperBox

wb = WhisperBox(model="medium")

# Single file
result = wb.transcribe("video.mp4")
print(result.text)

# Batch
results = wb.transcribe_batch("./videos")
for r in results:
    print(f"{r.filename}: {len(r.text)} chars")

📄 Output Formats

Markdown (default)

---
title: My Video
duration: 1234
language: pt
model: medium
transcribed_at: 2026-02-06T15:00:00
---

# My Video

[00:00:00] First segment of transcription...

[00:01:30] Second segment continues here...

JSON

{
  "metadata": {
    "filename": "video.mp4",
    "duration": 1234,
    "language": "pt"
  },
  "segments": [
    {"start": 0.0, "end": 5.2, "text": "First segment..."},
    {"start": 5.2, "end": 12.1, "text": "Second segment..."}
  ],
  "text": "Full transcription text..."
}

🧠 AI Integration

Whisperbox outputs are designed for AI workflows:

# Generate embeddings-ready chunks
whisperbox transcribe video.mp4 --format json --chunk-size 500

# Export for RAG pipeline
whisperbox export ./transcripts --format langchain

⚙️ Configuration

Create ~/.whisperbox/config.yaml:

default_model: medium
default_language: auto
default_format: markdown
output_dir: ./transcripts
gpu: true

🤝 Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

📝 License

MIT License - see LICENSE for details.

🙏 Acknowledgments

Metadata

Release files for whisperbox-ps 0.1.0

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

Source distribution (sdist)

Source distribution for whisperbox-ps 0.1.0
File Size Uploaded
whisperbox_ps-0.1.0.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whisperbox-ps 0.1.0
File Interpreter ABI Platform
whisperbox_ps-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.7 kB

Release files / whisperbox_ps-0.1.0.tar.gz

Download URL whisperbox_ps-0.1.0.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
661046291a0589c11a71dde9e0841b72a34dcd558107d398f84506d952bbecc4
BLAKE2b-256 checksum
How to use checksums
b834f144dc5640becaa6375ed9435a18490092a66fc667df21d79eedcb20c56a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / whisperbox_ps-0.1.0-py3-none-any.whl

Download URL whisperbox_ps-0.1.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbc9c1b076698f897d3bc2ab4779b115a933a942e3d627039c41763d169bfba1
BLAKE2b-256 checksum
How to use checksums
ccf99278777a7bac6914ba01bc34b3296a44b65d02c9eb099cefc03c72f31d54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

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