Video Transcript & Summary — YouTube, TikTok, Instagram, X avatar

Video Transcript & Summary — YouTube, TikTok, Instagram, X

Pricing

from $5.00 / 1,000 transcript (captions)s

Go to Apify Store
Video Transcript & Summary — YouTube, TikTok, Instagram, X

Video Transcript & Summary — YouTube, TikTok, Instagram, X

Transcripts with timestamps for YouTube, TikTok, Instagram Reels and X videos, from captions or speech recognition. Arabic dialects and English, optional translation and AI summary with chapters and keywords.

Pricing

from $5.00 / 1,000 transcript (captions)s

Rating

0.0

(0)

Developer

Al Moutasem Nabil

Al Moutasem Nabil

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Transcripts with timestamps for YouTube, TikTok, Instagram Reels and X videos, from captions or speech recognition. Arabic dialects and English, optional translation and AI summary with chapters and keywords.

تفريغ الفيديو وترجمة وملخص — يوتيوب، تيك توك، إنستغرام، إكس. يدعم اللهجات الخليجية والشامية والمصرية، والملخص يُكتب بالعربية الفصحى مع الحفاظ على اللهجة كما نُطقت في النص الأصلي.

Who it's for

  • Content teams repurposing long videos into clips, posts and newsletters.
  • Researchers and analysts who need searchable text from many videos at once.
  • Marketers studying hooks and calls to action across competitors' short-form video.
  • AI agents and automations that need a transcript as a synchronous API call (see Standby below).

What makes it different

  • Four platforms in one schema. YouTube, TikTok, Instagram Reels and X return the same fields.
  • Captions first, speech recognition second. When a platform already publishes captions the Actor uses them: exact, already timed, and far cheaper than transcribing audio.
  • Arabic as a first-class language. Dialect is preserved verbatim in the transcript; summaries are written in Modern Standard Arabic. Keyword extraction normalizes alef, yaa, taa marbuta and tashkeel so "أحمد" and "احمد" count as one word.
  • Clean sentences, not caption fragments. Auto-captions arrive as an overlapping rolling window ("so today", "so today we're", "so today we're building"); the Actor merges them back into sentences while keeping the start time of the first fragment, so timestamps stay accurate.
  • Nothing is stored or rehosted. Audio is extracted at 16 kHz mono only for transcription and deleted immediately, on failures too. The output is text.

Input

{
"videoUrls": [
"https://www.youtube.com/watch?v=aircAruvnKk",
"https://www.tiktok.com/@user/video/7137723462233444614"
],
"language": "auto",
"includeTimestamps": true,
"translateTo": "ar",
"summarize": true,
"maxDurationMinutes": 60,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

YouTube channel and playlist URLs are expanded to their most recent videos (maxVideosPerSource).

Output

One dataset item per video. Every field is documented in .actor/dataset_schema.json, and the Console shows three views: Transcripts, Summaries and Errors.

{
"platform": "youtube",
"videoId": "aircAruvnKk",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network?",
"author": "3Blue1Brown",
"publishedAt": "2017-10-05T00:00:00.000Z",
"durationSec": 1134,
"language": "en",
"transcriptSource": "captions",
"asrProvider": null,
"segments": [{ "startSec": 12.4, "endSec": 15.8, "text": "This is a 3, and it's sloppily written." }],
"text": "This is a 3, and it's sloppily written.\nBut it's still recognisable.",
"wordCount": 1842,
"translation": null,
"summary": null,
"processingMs": 4210,
"scrapedAt": "2026-09-07T01:20:00.000Z"
}

transcriptSource tells you what you paid for: captions and auto-captions are the cheap path, asr means the audio was transcribed per minute.

Videos that produce no transcript are stored as error items with the failing stage — and are never charged.

Pricing

Pay-per-event. You pay for finished work, never for a video the Actor could not read.

EventPriceWhen
Video processed$0.002Per video whose metadata was fetched.
Transcript from captions$0.005Per video transcribed from the platform's own captions.
Transcript minute (speech recognition)$0.005Per audio minute, rounded up, only after it succeeds.
Translation$0.01Per video translated.
AI summary$0.02Per video summarized.

Worked examples:

  • 100 YouTube videos that have captions: 100 × $0.002 + 100 × $0.005 = $0.70.
  • One 10-minute TikTok without captions, plus a summary: $0.002 + 10 × $0.005 + $0.02 = $0.072.

Apify's own apify-actor-start fee and platform compute are billed separately by your plan. Default memory is 1024 MB, which is enough for every path including audio extraction.

Scheduling and integrations

  1. Fill in the input and Save as task.
  2. Add a Schedule to the task for a recurring pull.
  3. Under Integrations, send results to Slack, Google Sheets, a webhook, Make or Zapier on Run succeeded.
  4. From n8n or Make, call the Apify node with this Actor and read the dataset, or use Standby below for a synchronous single-video call.

Use as an API / MCP tool

With Standby enabled the Actor stays warm and answers one video per HTTP request, which is what an AI agent wants instead of starting a run and polling:

GET https://<your-actor>.apify.actor/?url=https://youtu.be/aircAruvnKk&summarize=1&translateTo=ar

Query parameters mirror the input fields (url, language, translateTo, summarize, summaryLanguage, includeTimestamps, forceAsr, maxDurationMinutes). The response is JSON with items and errors. GET /health returns {"ok":true}.

Limitations, honestly

  • YouTube requires residential proxies. From datacenter IPs YouTube answers "Sign in to confirm you're not a bot" and serves neither captions nor audio. Set proxyConfiguration to {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}. Even then YouTube's bot checks vary by IP and by video; the caption path is the part most likely to need a yt-dlp bump (see Dockerfile, YT_DLP_VERSION).
  • Instagram and X are off by default (enableInstagram, enableX). Neither publishes captions, so every video costs speech recognition, and both block datacenter traffic aggressively.
  • Speech recognition needs a provider key set on the Actor (GROQ_API_KEY, DEEPGRAM_API_KEY or OPENAI_API_KEY). Without one, videos that have no captions produce an error item rather than a transcript. Summaries and non-YouTube translation need OPENROUTER_API_KEY or OPENAI_API_KEY.
  • maxDurationMinutes is the cost control. Longer videos are skipped with an error item instead of running up a per-minute bill.
  • Heavy dialect reduces accuracy. Naming the language ("ar") instead of auto measurably helps; auto-captions on dialect-heavy content are often worse than forceAsr.
  • Live streams are rejected — there is no finished transcript to return.

The Actor reads publicly available videos and their published captions. It never logs in and sends no cookies. Audio is downloaded only as a temporary intermediate for transcription and deleted immediately; no media is stored or rehosted, and the output is text. Only public channel names and handles are recorded — no viewer names, no comments, no personal contact details. Use the output in line with each platform's terms and the copyright that applies to the source video. YouTube, TikTok, Instagram and X are trademarks of their owners; this Actor is not affiliated with them.