BulkTranscripts Bulk YouTube transcripts, AI-ready

Free tool

YouTube transcript API

Straightforward HTTP endpoints for transcripts — including a streaming bulk endpoint for whole channels.

Open the app

No sign-up. No credit card. Works on channels, playlists, and single videos.

Single video

POST /api/transcript with {"url": "…"} returns the video's metadata, the full plain text, and a segments array of {text, start, duration} objects. Accepts a watch URL, a youtu.be link, a Shorts URL, or a bare 11-character video ID.

Bulk, as a stream

POST /api/bulk takes a channel or playlist URL and streams Server-Sent Events: one metadata event with the video count, a video event per transcript as it completes, and a final done event with totals. Streaming matters here — a 200-video job should not be a single request you wait minutes for.

Exports

GET /api/export/<video_id>?format=srt returns a single file in any supported format. POST /api/export/bundle takes a list of video IDs and returns either a ZIP or one combined document.

Errors are specific

Failures return a code you can branch on rather than a generic message — no_transcript for a video without captions, invalid_input for a malformed URL, resolution_failed when the video cannot be reached. In a bulk run, a failed video is reported inline and the job continues.

Questions

Do I need an API key?

Not for normal use. Requests without a key run against the free allowance; a license key raises the limit and is sent as an X-License-Key header.

Is there a rate limit?

Bulk jobs run up to 300 videos each with server-side concurrency control. Be reasonable and you will not hit anything.

Does it return timestamps?

Yes — every segment carries a start time and duration in seconds, and SRT/VTT exports are timestamped by definition.

Related

Open the app