This release is a pre-release and may not be stable for production use.
u-transcript max
YouTube transcripts, AI translation and downloads for Python — with zero dependencies. Its MCP server lets Claude, Codex and other AI assistants use them too.
Alpha. The API can still change before 0.1.0. The design lives in docs/design.
Install
From PyPI, on Python 3.11 or newer:
pip install u-transcript-max # the library, no dependencies
pip install "u-transcript-max[mcp]" # plus the MCP server, utmax-mcp
AI translation calls the provider's official SDK with your own API key: add the claude,
openai, gemini or openrouter extra, or ai for all of them.
Quickstart
import utmax
transcript = utmax.fetch("https://youtu.be/dQw4w9WgXcQ") # the spoken language, manual first
transcript.save("rick.srt") # also .vtt, .json and .txt
turkish = utmax.translate(transcript, "tr", model="claude=claude-opus-5-5") # needs [claude]
utmax.bilingual(transcript, turkish).save("rick.en+tr.srt")
utmax.download("dQw4w9WgXcQ", "rick.mp4") # H.264 up to 1080p with English subtitles
videos = utmax.list_videos("@RickAstleyYT", kind="videos", limit=20)
Coming from youtube-transcript-api? Change one import:
from utmax.compat import YouTubeTranscriptApi
MCP server
utmax-mcp gives an AI assistant four tools: list_tracks, get_transcript, list_videos
and download. It needs no API key: ask for a translation and the assistant translates the
transcript itself. The commands below start it with uvx from
uv, which installs it from PyPI;
@latest makes it move to each new release the next time the client starts the server.
Claude Code
claude mcp add --scope user utmax -- uvx --from "u-transcript-max[mcp]@latest" utmax-mcp
claude mcp get utmax should say Connected; inside Claude Code, /mcp lists the server.
Codex
codex mcp add utmax -- uvx --from "u-transcript-max[mcp]@latest" utmax-mcp
A long download can outlast Codex's default tool timeout, and the first start installs the
server, so give it more time in ~/.codex/config.toml (the CLI and the IDE extension share this
file):
[mcp_servers.utmax]
command = "uvx"
args = ["--from", "u-transcript-max[mcp]@latest", "utmax-mcp"]
startup_timeout_sec = 60
tool_timeout_sec = 1800
Claude Desktop
Open Settings → Developer → Edit Config, add the server to claude_desktop_config.json and
restart Claude Desktop:
{
"mcpServers": {
"utmax": {
"command": "uvx",
"args": ["--from", "u-transcript-max[mcp]@latest", "utmax-mcp"]
}
}
}
If Claude Desktop cannot find uvx, put its full path in command (which uvx, or
where uvx on Windows).
Other clients and settings
Any MCP client that starts stdio servers can run the same command, or utmax-mcp after
pip install "u-transcript-max[mcp]". Environment variables change the defaults:
| Variable | Default | Meaning |
|---|---|---|
UTMAX_DOWNLOAD_DIR |
~/Downloads/utmax |
where download saves files |
UTMAX_PROXY |
none | an http://[user:password@]host:port proxy for YouTube |
UTMAX_FFMPEG |
ffmpeg on PATH |
the ffmpeg that makes .mp3 files |
Set them with -e NAME=value in Claude Code, --env NAME=value in Codex, or an "env" object
in Claude Desktop.
License
MIT
Metadata
Release files for u-transcript-max 0.1.0a3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| u_transcript_max-0.1.0a3.tar.gz | 308.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| u_transcript_max-0.1.0a3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 480.0 kB
Release files / u_transcript_max-0.1.0a3.tar.gz
| Download URL | u_transcript_max-0.1.0a3.tar.gz |
|---|---|
| Size | 308.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c5d2bbafd625df0d2975ce1e37e4781b1e2d77684cd59812f4d21bd23d1ef95
|
|
BLAKE2b-256 checksum How to use checksums |
bed25690d11860af10413e61e62088a8f083a72be2bdfbe73168fd2da62f9900
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / u_transcript_max-0.1.0a3-py3-none-any.whl
| Download URL | u_transcript_max-0.1.0a3-py3-none-any.whl |
|---|---|
| Size | 171.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdd39fdf3abc2604e833099aad41332c4d463903991b789b0b90a5dce9585fa2
|
|
BLAKE2b-256 checksum How to use checksums |
86c1aa84fad767de5f2a54e68559b5098b8c2fa62540a4de6cf0402053791c09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log