Skip to main content

gemini-transcribe-wrapper

Zero-config wrapper for free-tier Gemini 3.5 Transcribe that breaks long audio into API-safe chunks and merges the results back into .speakers.srt / .srt / .txt.

Quick Start

  1. Get an API key

Sign up at Google AI Studio and create an API key.

  1. Install the tool

Linux / macOS:

export GEMINI_API_KEY=your_key_here
uvx -q gemini-transcribe-wrapper --help

Windows (PowerShell):

$env:GEMINI_API_KEY = "your_key_here"
uvx -q gemini-transcribe-wrapper --help

Windows (Command Prompt):

set GEMINI_API_KEY=your_key_here
uvx -q gemini-transcribe-wrapper --help
  1. Transcribe

With GEMINI_API_KEY set (from step 2):

uvx -q gemini-transcribe-wrapper sample.mp4

Or pass the key directly:

uvx -q gemini-transcribe-wrapper --gemini-api-key YOUR_API_KEY sample.mp4
uvx -q gemini-transcribe-wrapper --gemini-api-key YOUR_API_KEY *.mp4

Done: sample.speakers.srt, sample.srt, sample.txt appear next to the input. Any local video/audio works (.mp4, .mp3, etc.).

How it works

This wrapper exists to get past the Gemini free tier limits:

  • Max 2 API calls per minute: chunks are transcribed sequentially with a built-in delay (default 30s) between API calls.
  • Max 30 minutes of audio per call: long files are split into equal ≤25 min chunks, transcribed, then merged.
  • Max 25 API calls per day: once the daily quota is used up, the API returns HTTP 429. If you hit it, the tool prints the limits above: free tier users should try again tomorrow, or switch to a paid tier (enable billing) to keep going immediately.

Chunked transcription keeps the same global timeline as a single pass (word timestamps match within 0.5s; verified by verify-chunk-secs.sh). If you want an ffsubsync-aligned SRT for manual comparison, pass --ffsubsync-srt to also write <base>.ffsubsync.srt (aligned to the full audio via uvx --python 3.14 ffsubsync <audio> -i <srt> --max-offset-seconds=120 --gss --overwrite-input); the main .srt/.speakers.srt always keep the raw transcript timestamps.

.speakers.srt (speaker diarization, still a standard .srt for media players), .srt (no speaker labels), and .txt (clean text) are all generated at once by default. Don't need one? Turn it off:

uvx -q gemini-transcribe-wrapper sample.mp4 --no-speakers-srt --no-txt   # keep only .srt
uvx -q gemini-transcribe-wrapper sample.mp4 --no-srt                     # keep .speakers.srt + .txt

See uvx -q gemini-transcribe-wrapper --help for all options (speaker name mapping, transcript re-rendering, temp dir, etc.).

Shortcut: install once, use gtw

Typing uvx -q gemini-transcribe-wrapper ... each time is verbose. If you want a short command, install the tool once and use the gtw shortcut: the exact same tool, installed alongside it.

Linux / macOS:

uv -q tool install gemini-transcribe-wrapper
export GEMINI_API_KEY=your_key_here
gtw sample.mp4

Windows (PowerShell):

uv -q tool install gemini-transcribe-wrapper
$env:GEMINI_API_KEY = "your_key_here"
gtw sample.mp4

After uv tool install, both gemini-transcribe-wrapper and gtw work interchangeably.

License

MIT

Download files

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

Source Distribution

gemini_transcribe_wrapper-0.0.4.tar.gz (93.4 MB view details)

Uploaded Source

Built Distribution

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

gemini_transcribe_wrapper-0.0.4-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file gemini_transcribe_wrapper-0.0.4.tar.gz.

File metadata

  • Download URL: gemini_transcribe_wrapper-0.0.4.tar.gz
  • Upload date:
  • Size: 93.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gemini_transcribe_wrapper-0.0.4.tar.gz
Algorithm Hash digest
SHA256 d6151d5aa268dc4bd0649c1f4f96a1a21a450800e14613189f57b727f223c4cd
MD5 8772a580eab0101b1b5f204d1b061638
BLAKE2b-256 2e63e1aa9c6c57ded9094c2c90fc9065b892bc5b0d34ab80a41ce66993f2346a

See more details on using hashes here.

File details

Details for the file gemini_transcribe_wrapper-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: gemini_transcribe_wrapper-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gemini_transcribe_wrapper-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e12f62eb9872d57a6919b01ff9988c69d5010818f7e4af43c39958fec8b35935
MD5 88527d12e45eec2930d7c3e477fb1339
BLAKE2b-256 fcda5d74f2c572e4f961827cb9f4c82f48a92da176fba50058a93162b17a1997

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

This release

0.0.4 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 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