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.
- GitHub: https://github.com/tayaee/gemini-transcribe-wrapper
- PyPI: https://pypi.org/project/gemini-transcribe-wrapper/
Quick Start
Get an API key
Sign up at Google AI Studio and create an API key.
Install the tool
Linux / macOS:
export GEMINI_API_KEY=your_key_here
uv -q tool install --python 3.13 gemini-transcribe-wrapper
gtw -v
Windows (PowerShell):
$env:GEMINI_API_KEY = "your_key_here"
uv -q tool install --python 3.13 gemini-transcribe-wrapper
gtw -v
Windows (Command Prompt):
set GEMINI_API_KEY=your_key_here
uv -q tool install --python 3.13 gemini-transcribe-wrapper
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 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.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gemini_transcribe_wrapper-0.0.6.tar.gz.
File metadata
- Download URL: gemini_transcribe_wrapper-0.0.6.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
974e087d50a02a2719cef4f588e3701f86b2c362761c71f19f803d763132302f
|
|
| MD5 |
5c98a17687c2492ba24c98cc00c7fc0e
|
|
| BLAKE2b-256 |
ef9b5fa795502a02f015a4574a2ac4a9475f974e3594433089008b765b99cba6
|
File details
Details for the file gemini_transcribe_wrapper-0.0.6-py3-none-any.whl.
File metadata
- Download URL: gemini_transcribe_wrapper-0.0.6-py3-none-any.whl
- Upload date:
- Size: 26.0 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d036d8772f5ed6e8ccf0b8b1c985a74b4e3015337261f08226d805f9063dc15
|
|
| MD5 |
a66b21f48db805147919484d871b12c8
|
|
| BLAKE2b-256 |
f85d41a4e37d31a069164c6fc0f16f85b687dd0747568f0abaabe3b2b9721895
|