Video Transcript Scraper: Youtube, X, Facebook, Tiktok, etc. avatar

Video Transcript Scraper: Youtube, X, Facebook, Tiktok, etc.

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Video Transcript Scraper: Youtube, X, Facebook, Tiktok, etc.

Video Transcript Scraper: Youtube, X, Facebook, Tiktok, etc.

Scrapes transcripts from online video/audio content on multiple platforms (Youtube, X, ..) in any available language. It delivers outputs in both JSON and LLM-ready formats, making it ideal for analytics, and AI-based applications. Perfect for research and building intelligent conversational agents

Pricing

from $10.00 / 1,000 results

Rating

4.4

(24)

Developer

InVideoIQ

InVideoIQ

Maintained by Community

Actor stats

119

Bookmarked

1.6K

Total users

62

Monthly active users

3.3 days

Issues response

a day ago

Last modified

Features

Limited permissions

Share

🎬 Video Transcript Scraper: Extract Subtitles and Captions From Any Video

Extract clean, AI-ready transcripts and captions from videos across YouTube, X (Twitter), TikTok, Facebook, Snapchat, Dailymotion, Vimeo, Loom, and more. Video Transcript Scraper pulls existing subtitle tracks — both manually added and auto-generated — and returns timestamped transcripts with rich video metadata.

Just paste a video URL and get structured data back. No coding required.

💰 $10 per 1,000 results · 🌍 Multi-language · ⚡ Fast batch processing


✨ What is Video Transcript Scraper?

Video Transcript Scraper extracts subtitles and captions from online videos, giving you clean transcripts ready for AI applications, data analytics, and content workflows.

  • Multi-platform support — YouTube, X (Twitter), TikTok, Facebook, Snapchat, Dailymotion, Vimeo, Loom, and more
  • Timestamped transcripts — Every word with precise start/end times, ideal for indexing and AI models
  • Full video metadata — Titles, descriptions, thumbnails, duration, views, likes, channel info, and publish dates
  • LLM-ready output — Pre-cleaned data ready for RAG pipelines, NLP, sentiment analysis, or any ML workflow
  • Multi-language support — Specify a language code, or get the transcript in the video's original language by default (YouTube)
  • Batch processing — Process multiple videos from different platforms in a single run

Note: This actor extracts existing subtitle tracks. Some videos do not provide subtitles/captions. For those cases, use our speech-to-text companion actor: Video Transcriber.


📊 What Data Can You Extract From Video Transcripts?

FieldDescription
titleVideo title
descriptionVideo description
durationVideo length
thumbnailThumbnail image URL
like_countNumber of likes (YouTube only)
view_countNumber of views
published_datePublish date
channelChannel name (YouTube only)
channel_urlChannel URL (YouTube only)
available_languagesList of available transcript languages (YouTube only)
available_captionsEvery caption track of the video: language code, name, auto-generated or not, original language or not (YouTube only)
original_languageLanguage code of the video's original audio, e.g. "en", or null when YouTube doesn't reveal it (YouTube only)
selected_languageLanguage of the returned transcript (YouTube only)
selected_language_codeLanguage code of the returned transcript (YouTube only)
textFull transcript as a single plain string
transcriptTimestamped segments with start/end times

You can download the dataset extracted by Video Transcript Scraper in various formats such as JSON, CSV, Excel, or HTML directly from the Apify dashboard.


🔗 Supported Video Platforms

PlatformNotes
YouTubeLong-form videos, Shorts, auto-generated and manual captions
X (Twitter)Paste the tweet URL containing the video
TikTokPublic videos with available captions
FacebookPublic videos
SnapchatSpotlight videos, public story snaps and Snapchat Shows, when Snapchat provides a transcript. Most short Spotlights have none: use Video Transcriber for those
DailymotionFull support
VimeoFull support
LoomFull support
RumbleFull support

Important: Instagram is not supported in this actor. To transcribe Instagram videos, use Video Transcriber.

The tool may also work on other platforms not listed here, like media websites, though they have not been as thoroughly tested.


🛠️ How To Extract Video Transcripts Using Video Transcript Scraper

  1. Go to Video Transcript Scraper on Apify
  2. Click "Try for free"
  3. Paste one or more video URLs into the video_urls field — you can mix platforms in a single run
  4. (Optional) Set a language code (e.g. "en", "fr") to request a specific transcript language
  5. Click "Start" and wait for the run to finish
  6. Download your transcripts in JSON, CSV, Excel, or HTML from the dataset tab

Run it your way

Because this is an Apify Actor, you also get:

  • API access: Call it programmatically from any language — check the API tab for ready-made code examples
  • Scheduling: Set up recurring runs to monitor new video content automatically
  • Integrations: Connect to Zapier, Make, Google Sheets, webhooks, and more
  • Monitoring: Track run history, costs, and results from the Apify dashboard

📥 Input

ParameterRequiredDescription
video_urlsYesArray of video URLs. Mix platforms freely in a single run
languageNoLanguage code ("en", "fr", "pt-BR") to request a specific transcript language. Leave blank for the video's original language (YouTube)

Advanced YouTube settings (rarely needed)

ParameterDescription
proxy_countryTwo-letter country code for YouTube proxy (default: US). Auto-falls back to US if unavailable
get_yt_original_metadataFetch original (non-localized) title and description via YouTube Data API
youtube_api_keyYour own YouTube Data API v3 key. Optional — a shared default key is provided. See Google's guide to registering an application

Input Example

{
"video_urls": ["https://www.youtube.com/watch?v=example1"],
"language": "en"
}

📤 Output Example

[
{
"title": "Video Title 1",
"description": "Video Description 1",
"duration": "180",
"thumbnail": "https://example.com/thumbnail.jpg",
"like_count": 200,
"view_count": 1000,
"published_date": "2025-08-10",
"channel": "Example",
"channel_url": "https://example.com/video-id=example",
"channel_id": "A123456789",
"available_languages": ["English", "French"],
"available_captions": [
{ "language_code": "en", "language": "English", "is_auto_generated": false, "is_original_language": true },
{ "language_code": "fr", "language": "French", "is_auto_generated": false, "is_original_language": false },
{ "language_code": "en", "language": "English (auto-generated)", "is_auto_generated": true, "is_original_language": true }
],
"original_language": "en",
"selected_language": "English",
"selected_language_code": "en",
"text": "Hello, world! Welcome to our channel.",
"transcript": [
{ "text": "Hello, world!", "start": 0.0, "end": 1.5 },
{ "text": "Welcome to our channel.", "start": 1.5, "end": 3.0 }
]
}
]

Note: The fields like_count, channel, channel_url, available_languages, available_captions, original_language, selected_language, and selected_language_code are only available for YouTube videos.


🚀 Quick Start Code Examples

cURL

curl -X POST "https://api.apify.com/v2/acts/invideoiq~video-transcript-scraper/run-sync?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM", "https://www.youtube.com/watch?v=4czjS9h4Fpg"]}'

Python

import requests
import json
url = "https://api.apify.com/v2/acts/invideoiq~video-transcript-scraper/run-sync?token=YOUR_TOKEN"
data = {"video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM", "https://www.youtube.com/watch?v=4czjS9h4Fpg"]}
response = requests.post(url, json=data, headers={"Content-Type": "application/json"})
print(json.dumps(response.json(), indent=4, ensure_ascii=False))

JavaScript

const data = {
video_urls: [
"https://www.youtube.com/watch?v=vl6jn-DdafM",
"https://www.youtube.com/watch?v=4czjS9h4Fpg"
]
};
fetch("https://api.apify.com/v2/acts/invideoiq~video-transcript-scraper/run-sync?token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
})
.then(response => response.json())
.then(json => console.log(json))
.catch(error => console.error("Error:", error));

💰 How Much Does Video Transcript Scraper Cost?

Video Transcript Scraper uses pay-per-event pricing: you pay a fixed price per video.

$10 per 1,000 results ($0.01 per result)

1 video = 1 result, also when the video has no transcript: the video is still looked up for you. There is no monthly rental and no subscription, and you are not billed separately for platform compute. The only other charge is a negligible Actor start fee of $0.00005 per run.

VideosPrice
100$1
1,000$10
10,000$100

Try it on the Apify free plan: runs are limited to 10 videos (a limit of the free Apify plan, not of the Actor), enough to check the output. Any paid Apify plan removes the limit.

Learn more about pay-per-event pricing


📈 Use Cases for Video Transcript Extraction

  • RAG pipelines and AI agents — Feed video transcripts into retrieval-augmented generation systems for LLM-powered search and Q&A
  • Content repurposing — Turn YouTube videos, tweets, and TikToks into blog posts, newsletters, or social media threads
  • Market research — Monitor what competitors, influencers, or thought leaders say across video platforms at scale
  • Accessibility and compliance — Generate text versions of video content for accessibility requirements
  • Media monitoring — Track brand mentions across video platforms
  • Dataset building — Build training datasets from video content across multiple platforms
  • Sentiment analysis — Process transcripts through NLP pipelines for opinion mining and brand perception tracking

❓ FAQ

This actor extracts publicly available subtitle tracks and does not access private user data such as email addresses, gender, or location — only information that users and platforms have chosen to share publicly. However, results may contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not extract personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

What if a video has no subtitles?

This actor relies on embedded subtitle tracks (manual or auto-generated). If no subtitles exist, the transcript cannot be extracted, and the video still counts as one result. For videos without captions, use our speech-to-text companion actor: Video Transcriber.

Can I specify a transcript language?

Yes. Pass a language code like "en" or "fr" in the language field. Case doesn't matter, and "pt" also finds "pt-BR". If that language isn't available for a given video, the error lists the languages that are.

Leave it empty to get YouTube videos in their original language, even when the video is dubbed into other languages. Every YouTube result lists its caption tracks in available_captions and gives the original language in original_language.

Why is my URL returning an error?

Make sure the video URL is complete and valid — the actor supports only direct links from YouTube, X (tweets), TikTok, Facebook, Snapchat, Vimeo, Dailymotion, and Loom. Shortened, embedded, or private URLs are not supported.


Combine it with the rest of the suite:

  • Video Transcriber — Speech-to-text for videos that do not already have captions or subtitles.
  • TikTok LIVE Scraper — TikTok LIVE streams broadcasting now by keyword in 110+ countries, live status checks, chat comments and top gifters. $3 per 1,000 LIVE streams.
  • TikTok Search Scraper — Find TikTok videos by keyword, with views, likes, comments and creator data. $0.40 per 1,000 videos.
  • TikTok Profile Scraper — Every video from any public TikTok creator, with engagement stats. $0.20 per 1,000 videos.
  • Tweet Claim Analyzer — What a tweet really claims, including its quoted tweet, video and images. $0.02 per tweet.

Workflow idea: find videos with TikTok Search Scraper or TikTok Profile Scraper, then send the video_url list to Video Transcript Scraper to get everything the creators said.


💬 Support

Found a bug or have a feature request? Open an issue and we'll get back to you.

Need a custom workflow or integration? Reach out through the Issues tab — we're happy to help tailor the actor to your use case.

⌂ 换网址