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

Prerequisites

Install the tool

Linux / macOS:

export GEMINI_API_KEY=your_key_here
uv tool install --python 3.13 gemini-transcribe-wrapper@latest
gtw -v

Windows (PowerShell):

$env:GEMINI_API_KEY = "your_key_here"
uv tool install --python 3.13 gemini-transcribe-wrapper@latest
gtw -v

Windows (Command Prompt):

set GEMINI_API_KEY=your_key_here
uv tool install --python 3.13 gemini-transcribe-wrapper@latest
gtw -v

Transcribe for free (see Limites below)

With GEMINI_API_KEY set (from step 2):

gtw sample.mp4

Or pass the key directly:

gtw --gemini-api-key YOUR_API_KEY sample.mp4
gtw --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.).

Limits

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 29m50s chunks (packed to the max so the 25 calls/day budget is used efficiently), 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.

Usage tracking: every API call is counted per day (PST, resets at midnight Pacific) and saved to ~/.cache/gemini-transcribe-wrapper/usage.json. Every run (gtw -v, gtw --help, or after transcription) prints today's count on the last line, e.g. API calls today 2026-08-28 (PST-08:00): 3/25 (free tier limit: 25).

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.13 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:

gtw sample.mp4 --no-speakers-srt --no-txt   # keep only .srt
gtw sample.mp4 --no-srt                     # keep .speakers.srt + .txt

See gtw --help for all options (speaker name mapping, transcript re-rendering, temp dir, etc.).

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.12.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.12-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gemini_transcribe_wrapper-0.0.12.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.12.tar.gz
Algorithm Hash digest
SHA256 a7b8564ae5148628fe0581210cfb06942b9621d3cf67aead6c67012988839ab7
MD5 7bf9d3cf2c5a4a526eefaf03c293b1f9
BLAKE2b-256 7cbed064e88a8b10829f1cb26be926daedcb99ddb7ade5731a47b0b36d9e338b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gemini_transcribe_wrapper-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 28.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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 78e3b69e5536b31784b91753dea53331a2d7cb4ffde536adc7c43ee4cd898665
MD5 70f776adede1ef290ca5f5350663fe30
BLAKE2b-256 12d3daa0fb177f0bbe8cda92a9f62ed627da7882bf51dd332bd60b25ed7bbe0d

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

This release

0.0.12 This release

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

0.0.4

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