transcriptyt
Python client for the TranscriptYT YouTube Transcript API. Get any public video's transcript as JSON, text, SRT, VTT, CSV or Markdown, in 150+ languages, with AI transcription when a video has no captions. Requests run through rotating proxies, so they keep working from cloud servers where YouTube blocks direct scraping.
pip install transcriptyt
Get a free API key (100 credits) at transcript-yt.com/dashboard/keys.
Usage
from transcriptyt import TranscriptYT
client = TranscriptYT() # reads TRANSCRIPTYT_API_KEY, or pass api_key="ts_live_..."
t = client.transcript("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(t["title"], t["language"])
print(t["text"])
for seg in t["segments"][:3]:
print(seg["timestamp"], seg["text"])
# Other formats return a string
srt = client.transcript("dQw4w9WgXcQ", format="srt")
# Translate, or pick a language
client.transcript("dQw4w9WgXcQ", translate_to="es")
client.transcript("dQw4w9WgXcQ", language="de")
# Up to 50 videos per call, or a whole playlist/channel
batch = client.transcripts(["dQw4w9WgXcQ", "jNQXAC9IVRw"], format="text")
batch = client.transcripts(playlist="https://www.youtube.com/@mkbhd", limit=20)
for r in batch["results"]:
print(r["url"], r["ok"])
# Free endpoints
client.search("python tutorial", limit=10)
client.playlist("https://www.youtube.com/playlist?list=...")
client.languages("dQw4w9WgXcQ")
client.usage()
# AI summary, key points and timestamped notes
client.summary("dQw4w9WgXcQ")
Async
from transcriptyt import AsyncTranscriptYT
async with AsyncTranscriptYT() as client:
t = await client.transcript("dQw4w9WgXcQ")
Errors
Every non-2xx response raises TranscriptYTError with .code (e.g. NO_CAPTIONS, VIDEO_UNAVAILABLE, RATE_LIMITED, OUT_OF_CREDITS), .status and .message. Rate-limit and capacity responses (429/503) are retried automatically (max_retries=2).
from transcriptyt import TranscriptYTError
try:
client.transcript("dQw4w9WgXcQ", mode="captions")
except TranscriptYTError as e:
print(e.code, e.message)
Transcript options
| Argument | Description |
|---|---|
language |
BCP-47 code of the track to fetch |
translate_to |
Machine-translate to this language (150+), keeping timing |
format |
json (default), text, srt, vtt, csv, md |
include_segments |
False returns only the full text (JSON) |
timestamps |
Prefix lines with [HH:MM:SS] in text/md |
paragraphs, chunk_size |
Merge segments into paragraphs of up to chunk_size characters |
caption_type |
any, manual, auto |
original_language |
Prefer the spoken language over English |
mode |
auto (captions, then AI), captions (never AI), ai |
start_time, end_time |
Only part of the video, in seconds |
search |
Only lines containing this text |
Full API reference: transcript-yt.com/docs. Using LangChain? See langchain-transcriptyt.
License
MIT
Metadata
Release files for transcriptyt 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| transcriptyt-0.1.0.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| transcriptyt-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.5 kB
Release files / transcriptyt-0.1.0.tar.gz
| Download URL | transcriptyt-0.1.0.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a6fb15364f66762cd7f74023d812b16cbf788085b1c95eca93088fd11c959a14
|
|
BLAKE2b-256 checksum How to use checksums |
5a941fbcacce51403c28c689ac2af5df82d8dd776285d10a68ed4d3958e24719
|
| 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 13, 2026.
Transparency logRelease files / transcriptyt-0.1.0-py3-none-any.whl
| Download URL | transcriptyt-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7787acb2a3b7cc8dc968a4b8c6d199e5d0d3f68e420e429482bfea0a506a81bc
|
|
BLAKE2b-256 checksum How to use checksums |
b14b35055c48bc7f437f7a87c6261730bfaa735449c1af3ece124a308486b5e9
|
| 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 13, 2026.
Transparency log