
YouTube Transcript Scraper
hipersoft/youtube-transcript-scraper
Get the full transcript of any YouTube video: clean text plus timestamped segments, in any available language (auto-translation supported). Paste video URLs and export as JSON, CSV or Excel — perfect for summaries, subtitles, research and LLMs.
Total users
2Monthly users
1Total runs
44Per transcript scraped
$0.005Last rebuilt
Oct 28, 2026Overview
Get the full transcript of any YouTube video — clean, readable text plus timestamped segments — in any available language, with auto-translation when your language isn't published natively. Paste video links and export to JSON, CSV or Excel, or pull straight from the API.
Perfect for video summaries, content repurposing, subtitles and captions, SEO, research, accessibility, and feeding transcripts to LLMs and RAG pipelines.
What you get
One row per video:
| Field | Description |
|---|---|
videoId / videoUrl / videoTitle |
The video |
hasTranscript |
Whether a transcript was found |
language / langName |
Transcript language |
isAutoGenerated |
Auto (ASR) captions vs. human-written |
isAutoTranslated |
Whether it was auto-translated to your language |
segmentCount |
Number of caption lines |
durationSeconds |
Length covered by the transcript |
fullText |
The complete transcript as one clean string |
segments |
Timestamped lines: { start, end, dur, text } (when timestamps are enabled) |
availableLanguages |
Languages offered for the video (when no transcript in your language) |
collectedAt |
When the row was scraped |
How to use
1. Add videos
{
"videoUrls": [
"https://www.youtube.com/watch?v=arj7oStGLkU",
"https://youtu.be/dQw4w9WgXcQ"
],
"language": "en",
"includeTimestamps": true,
"maxItems": 200
}
2. Options
- Language — a 2-letter code (
en,es,fr,de,pt,hi,ar,ja, …). If the video has no native track in that language, it's auto-translated. Useautofor the video's default track. - Include timestamped segments — add per-line
{start, end, text}alongside the full text. - Max videos — cap the number processed (0 = no limit).
Example output
{
"videoId": "arj7oStGLkU",
"videoTitle": "Inside the Mind of a Master Procrastinator | Tim Urban | TED",
"hasTranscript": true,
"language": "en",
"isAutoGenerated": false,
"isAutoTranslated": false,
"segmentCount": 315,
"durationSeconds": 842.6,
"fullText": "So in college, I was a government major, which means I had to write a lot of papers…",
"segments": [
{ "start": 12.645, "end": 14.015, "dur": 1.37, "text": "So in college," }
],
"collectedAt": "2026-09-20T09:00:00.000Z"
}
Common use cases
- Summaries & repurposing — turn talks and tutorials into articles, notes or threads.
- Subtitles & captions — export text for translation, editing or reuse.
- SEO & content — mine video transcripts for keywords and quotes.
- Research & analysis — search across many videos' transcripts at once.
- LLMs & RAG — feed clean transcripts into models and knowledge bases.
Frequently asked questions
Do I need any login, account or key? No. Just paste video links and run.
Which languages are supported? Whatever the video offers, plus auto-translation into your chosen language when a native track isn't available.
Does it work for auto-generated captions? Yes — both human-written and auto-generated (ASR) captions are returned; isAutoGenerated tells you which.
What if a video has captions disabled? The row is returned with hasTranscript: false — the run never fails.
Can I process many videos at once? Yes — list multiple videos and set Max videos.
What format is the data? A flat table you can export as JSON, CSV or Excel, or fetch from the Apify API.
Related scrapers
Building a YouTube toolkit? Pair this with our YouTube comments scraper, YouTube channel scraper and YouTube search scraper — all with the same clean, one-row-per-item output.
Input
| Field | Type | Description |
|---|---|---|
videoUrlsYouTube videos | array | One or more YouTube videos to get transcripts for. Paste watch URLs (https://www.youtube.com/watch?v=…), youtu.be links, Shorts URLs, or bare 11-character video IDs. |
languageLanguage | string | Preferred transcript language as a 2-letter code (en, es, fr, de, pt, hi, ar, ja …). If the video has no native track in that language, it is auto-translated. Use 'auto' to take the video's default track. Default: "en" |
includeTimestampsInclude timestamped segments | boolean | Include the per-line timestamped segments (start, end, text) in addition to the full transcript text. Default: true |
maxItemsMax videos | integer | Maximum number of videos to process (0 = no limit). Default: 100 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~youtube-transcript-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"videoUrls": [
"https://www.youtube.com/watch?v=arj7oStGLkU"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/youtube-transcript-scraper").call(run_input={
"videoUrls": [
"https://www.youtube.com/watch?v=arj7oStGLkU"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/youtube-transcript-scraper').call({
"videoUrls": [
"https://www.youtube.com/watch?v=arj7oStGLkU"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Transcript scraped Charged for each video transcript returned. | $0.005 | $0.0025 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Website Contact Scraper
Extract business emails, phone numbers and social media profiles from any list of websites. De-obfuscates emails, reads Organization schema, and optionally crawls contact/about pages. Bulk-ready.
1,576 runs · 69 users · $0.0024 / website scrapedThreads Downloader
Download Threads photos, videos and carousel posts by URL. Paste threads.net or threads.com links and get ready-to-use download links plus direct media URLs, a thumbnail, media type and count — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
799 runs · 4 users · $0.003 / post downloadedTikTok Video Downloader
Download TikTok videos without watermark in bulk. Paste video or photo-slideshow URLs and get a clean HD MP4 download link plus full metadata: caption, author, play/like/comment/share counts, sound and cover — one row per post as JSON, CSV or Excel. For creators, research and n8n.
678 runs · 9 users · $0.0035 / video downloadedReddit Scraper
Scrape Reddit posts and comments by subreddit, keyword, author or thread URL. Get titles, self-text, scores, upvote ratio, comment counts, comment trees and permalinks — one clean row per post or comment. Export as JSON, CSV or Excel.
568 runs · 15 users · $0.0034 / post scrapedSpotify Scraper
Search Spotify and scrape public metadata for tracks, artists, albums and playlists: names, artists, popularity, followers, genres, release dates, duration, ISRC, preview URL and more. No Spotify login or API key required. For music research, catalogs and analytics.
478 runs · 9 users · $0.0034 / item scrapedReddit Video, Image & GIF Downloader
Download Reddit videos, images and GIFs by post URL. Paste reddit.com or redd.it links and get ready-to-use download links — videos as a single playable MP4 with audio, images and galleries as direct links — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
453 runs · 16 users · $0.003 / item scrapedSend the site and the fields. We build it and you get it first.