YouTube Transcript Scraper
Pricing
from $0.37 / 1,000 transcripts
YouTube Transcript Scraper
Search public YouTube videos and save spoken captions as transcripts. Enter any phrase, then export titles, channels, watch links, and timed caption text. For research, quotes, notes, and monitoring. No YouTube login.
Pricing
from $0.37 / 1,000 transcripts
Rating
0.0
(0)
Developer
rainminer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
The YouTube Transcript Scraper turns a YouTube search into transcripts. Type any phrase and get public videos with the spoken caption text, timed segments, channel, and title. No YouTube login.

Use it when you need the words from a video without watching it: notes, quotes, research, subtitles, or a searchable archive of a topic.
Key features
- Search in, transcripts out — one query returns several videos and their caption text
- Timed segments — each caption line keeps a start time and duration
- Manual captions first — automatic captions are used when you allow them and no manual track exists
- Per-query limit —
maxItemscaps transcripts for each search phrase - Schedule it — run the same query daily from an Apify schedule and send new rows to a dataset, webhook, or spreadsheet
- Residential proxies included — every run uses Apify residential proxies. There is no proxy setting to turn off
- No login — public videos only
Why scrape YouTube transcripts?
Videos are slow to scan. The caption text is what you can search, quote, and compare.
- Research — collect what several videos say about the same topic
- Notes and quotes — pull the spoken lines with timestamps
- Monitoring — schedule a query and collect new transcripts as videos appear
- Exports — download JSON, CSV, or Excel, or read the dataset from the Apify API
Who is it for?
- Researchers comparing how different videos cover one topic
- Writers and editors who need quotes with a link back to the video
- Analysts turning a search into a text dataset
- Developers sending transcripts into their own app with a scheduled Actor run
How much does it cost?
You pay Apify for the run. This Actor does not keep platform costs on the developer account.
- Transcript — $0.49 per 1,000 transcripts on the free Store tier ($0.00049 each). Bronze, Silver, and Gold discounts apply.
- Actor start — $0.00005 per run at 1 GB of memory.
- Platform usage — compute, residential proxy traffic, and storage are billed to the account that starts the run. For the first 14 days after pricing is turned on, that usage is charged as a pass-through event at Apify's cost plus Apify's 20% commission. After that, Apify bills the same usage directly on your account and the pass-through event stops.
A short test of one video is usually well under $0.05 before the transcript fee.
How to use it
- Open the Actor in Apify Console.
- Enter one or more search queries.
- Set maximum videos per query (start with 3).
- Leave caption language on
en, or switch it to another code such asde. - Click Start. Residential proxies are applied automatically.
- Open the dataset. Each row is one video.
transcriptis the full caption text.segmentskeeps the timestamps.
Input
{"searchQueries": ["how to change a tire"],"maxItems": 3,"language": "en","includeAutoCaptions": true}
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | — | YouTube search phrases. One dataset group per phrase. |
maxItems | integer | 3 | Maximum transcripts saved for each phrase. |
language | string | en | Caption language code. |
includeAutoCaptions | boolean | true | Use automatic captions when a manual track is missing. |
A search reads the first page of video results and keeps going until it has saved maxItems transcripts. Age-restricted, private, and members-only videos are skipped. Runs always use Apify residential proxies.
Output
{"imageUrl": "https://i.ytimg.com/vi/VIDEO_ID/hqdefault.jpg","query": "how to change a tire","videoId": "VIDEO_ID","videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID","title": "How to Change a Tire","channelName": "Example Channel","authorAvatarUrl": "https://yt3.ggpht.com/example=s240-c-k-c0x00ffffff-no-rj","durationSeconds": 420,"language": "en","captionKind": "manual","transcript": "Full caption text…","segments": [{ "startSec": 1.2, "durationSec": 2.4, "text": "This is the first line." }],"failureReason": null,"scrapedAt": "2026-10-28T16:00:00.000Z"}
| Field | Meaning |
|---|---|
imageUrl | Video thumbnail |
authorAvatarUrl | Channel avatar image. null when the search result has none |
query | Search phrase that found the video |
videoUrl | Public watch link |
captionKind | manual or asr (automatic) |
transcript | Caption text |
segments | Caption lines with startSec and durationSec |
failureReason | null on a saved transcript |
Tips
- Use the words you would type into YouTube. A narrower phrase returns a tighter set of videos.
- Only videos with caption text are saved. A video with no captions is skipped.
- Pair a scheduled run with a webhook when you want new transcripts in another tool.
- Residential proxy traffic is part of every run, including small tests.
Image credit
YouTube icon: Wikimedia Commons