Audio and video · Edition No. 5 · 30 Aug 2026

jdepoix/youtube-transcript-api

Fetches the subtitles of a public YouTube video as text, with no key and no browser.

← Audio and videoRead the whole edition →
Subtitles of any public video, as text. No key, no account and no browser needed.

8.2k stars · MIT · v1.2.4 (2026-01-29) · Track this in Rising ↗

Fetches any YouTube video's subtitles with no API key and no quota — competitor research as plain text, tonight.

Verified26 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 20 Oct 2026, 7 days before this check.

Releases50

Latest release v1.2.4 on 29 Jan 2026.

Maturity100

Public since April 2018, a little over 8 years.

Adoption79

8,510 stars and 855 forks.

Activity25

2 commits and 1 new issues in the last 90 days.

Community60

27 contributors. No pull requests merged in 90 days; changes go in directly.

Security40

No security policy file says how to report a problem. No published security advisories.

Licence MIT: permissive: use it for anything, keep the noticeSetup effort 1 of 5Payoff 4 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 26 Oct 2026 from the repository on GitHub. Covered in Edition 5.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You give it a video identifier and it returns the subtitle track as a list of lines, each with a start time and a duration. It handles automatically generated subtitles as well as written ones, lists the languages a video offers, and can request a translated version. There is a command-line tool as well as the Python interface, and output can be written as JSON, plain text or the common subtitle formats. It needs no API key, no OAuth consent screen and no headless browser, which is why one install is the whole setup. It works on any public video that has subtitles at all. What it does not do is work reliably from a rented server: the README says YouTube "has started blocking most IPs that are known to belong to cloud providers", and cookie-based sign-in is currently broken, so age-restricted videos may be out of reach.

Why it matters

Who it suits. Anyone deciding what to make next in a crowded subject. The spoken text of the fifty most-watched videos in a niche, read together, shows what has been explained to death and what nobody has covered properly, and that is a decision made from evidence rather than instinct. It also suits anyone wanting the text of their own back catalogue for subtitles, articles or search. Skip it if the work must run on a rented server without a residential proxy, because the blocking will stop it. And skip it if view counts and watch time are what is needed, because those come from the official interface instead.

Verdict. Worth twenty minutes today, and the cheapest item in the whole edition. One pip install and one command produces a file. Three limits to hold in mind. It relies on an undocumented part of YouTube, which the README says plainly, so it can break and need an update. Running it from a home or office connection works; running it from a datacentre usually does not, and the proxy that fixes that is a paid service. And the newest release, 1.2.4, is dated 29 January 2026 with code landing on 19 May 2026, so it is quieter than most things on this page, though well inside what this report calls current. For video with no subtitles at all, openai/whisper transcribes the audio instead, at the cost of a download and a lot of processor time.

Stars8.2k
LicenceMIT
Latestv1.2.4 (2026-01-29)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Summary (Key Points)from the README
Key features
  • No headless browser: Retrieves transcripts without a Selenium-style headless browser.
  • Auto-generated subtitles: Works for automatically generated subtitles as well as manually created ones.
  • Translation: Transcript objects offer a translate() method that uses YouTube's automatic translation.
  • Language priority list: The languages parameter takes codes in descending priority, defaulting to English, for example ['de', 'en'].
  • Formatting preservation: preserve_formatting=True keeps HTML elements such as italics and bold.
  • Transcript listing and selection: list() returns a TranscriptList that can be filtered, and find_manually_created_transcript and find_generated_transcript let you choose the transcript type.
  • Built-in formatters: JSONFormatter, PrettyPrintFormatter, TextFormatter, WebVTTFormatter and SRTFormatter are included, and you can write custom ones by inheriting from the Formatter base class.
  • Command-line interface: The CLI prints transcripts, accepts preferred languages, can exclude generated or manual subtitles, outputs JSON and can translate.
  • Proxy support: Built-in Webshare rotating residential proxy configuration, plus GenericProxyConfig for HTTP, HTTPS and SOCKS proxies.
Ways to install
Platform or methodWhat it needsEffort
pip install, integrated into an existing Python applicationpipLow
pip install, used via the CLI scriptpip and a terminalLow
Local development setup from the repositoryPoetryModerate
Important
  • Video ID, not URL: You must pass the video ID; the full URL will not work.
  • IP blocking: YouTube blocks most cloud-provider IPs, so requests from AWS, Google Cloud, Azure and similar hosts often raise RequestBlocked or IpBlocked.
  • Proxies are not a guarantee: Static proxies get banned after extended use, and even rotating proxies can be blocked, so rotating residential proxies are the recommended option.
  • Webshare package choice: Only purchase "Residential" packages, not "Proxy Server" or "Static Residential".
  • Referral links: The README's Webshare links are referral links, and purchases through them support the project.
  • Age-restricted videos: These cannot be accessed, because cookie authentication is currently broken and unavailable.
  • Undocumented API: The code relies on an undocumented YouTube web-client API, so it could stop working at any time.
  • CLI hyphen IDs: Video IDs starting with a hyphen must be escaped with a backslash so the CLI does not read them as an argument name.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
1 / 5
Payoff
4 / 5
Good
  • No key, no account, no quota and no browser: one install and it works.
  • Automatically generated subtitles and translated versions are both supported, so other languages are in scope.
  • MIT licence, 8,076 stars, 18 open issues, and a small dependency list that drops into an existing project without a fight.
Watch for
  • It uses an undocumented part of YouTube and can stop working without warning until the library is updated.
  • Addresses belonging to cloud providers are widely blocked, so a rented server needs a paid residential proxy.
  • Cookie-based sign-in is broken at the moment, which puts age-restricted videos out of reach; the newest release is from 29 January 2026.
Install
python3 -m venv venv
source venv/bin/activate
pip install youtube-transcript-api
# One video, two preferred languages, as JSON
youtube_transcript_api VIDEO_ID --languages en de --format json
Screenshots
jdepoix/youtube-transcript-api: GitHub preview cardjdepoix/youtube-transcript-api: Screenshot 1jdepoix/youtube-transcript-api: Screenshot 2

On Stack Radar: Design & Creative › Video Creation & Editing › YouTube Research & Ideation.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.