YouTube Shorts Text Extractor avatar

YouTube Shorts Text Extractor

Pricing

from $0.37 / 1,000 short processeds

Go to Apify Store
YouTube Shorts Text Extractor

YouTube Shorts Text Extractor

Extract on-screen text from public YouTube Shorts—overlays, burned-in captions, stickers, hashtags, watermarks, @mentions—with MM:SS timestamps, text type, screen position, language, and confidence. Visual OCR, not audio transcription. No login needed. Structured segments plus fullText.

Pricing

from $0.37 / 1,000 short processeds

Rating

0.0

(0)

Developer

rainminer

rainminer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

The YouTube Shorts Text Extractor is an Apify Actor that reads public YouTube Shorts and returns every piece of visible on-screen text as structured data. Creators and brands burn text, captions, stickers, hashtags, and watermarks directly into their videos — this Actor unlocks that content for search, analysis, and database ingestion without manual review.

This is visual OCR, not audio transcription. Speech-to-text tools give you what was said; this Actor gives you what was shown — the headline card, the price tag, the discount code, the lower-third name badge, the "link in bio" call to action. That text is invisible to every transcript-based tool.

Each Short is processed by AI vision and the results are returned as a structured dataset of text segments — each with its timestamp, type, screen position, language, and confidence rating — plus a combined fullText field for quick search and indexing.


Key Features

  • On-screen text only: Reads text rendered on top of the video, never the audio track.
  • Full coverage: Captures animated overlays, burned-in captions, sticker labels, watermarks, hashtags, and @mentions.
  • Timestamp-aware: Records the MM:SS timestamp when each text element first appears.
  • Type classification: Distinguishes overlay, caption, sticker, watermark, hashtag, mention, and other text types.
  • Combined fullText: All segments joined into a single newline-separated block, ready for full-text search.
  • Multilingual: Detects the ISO 639-1 language code for each segment from the text itself.
  • Position detection: Classifies text placement as top, center, or bottom of screen.
  • Confidence rating: High/medium/low rating based on text clarity in the video frame.
  • Flexible URL input: Accepts youtube.com/shorts/..., youtu.be/..., and youtube.com/watch?v=....
  • No login required: Works with any public YouTube Short.

Why Extract Text from YouTube Shorts?

Shorts are a primary publishing surface for businesses, creators, and brands. Product drops, discount codes, event announcements, hiring notices, and pricing updates are routinely shared only as burned-in video text — never structured, never indexed, and never captured by transcript tools. This Actor makes that content machine-readable for:

  • Content intelligence and brand monitoring tracking what competitors publish on Shorts.
  • Retail and e-commerce indexing product drops, promo codes, prices, and launch dates.
  • Food and hospitality capturing daily specials and seasonal menus announced via video.
  • Event aggregators extracting event names, dates, venues, and lineup text from promo Shorts.
  • Creator and influencer analytics measuring hook text, captions, and call-to-action patterns.
  • Market research tracking pricing, offers, and messaging trends across channels.
  • Accessibility tools converting visual Shorts text to readable formats.

Who Is It For?

  • Marketing and analytics teams monitoring brand or competitor Shorts content at scale.
  • Product and data teams building structured datasets from short-form video.
  • Developers integrating Shorts text extraction into discovery or monitoring pipelines.
  • Researchers studying visual communication trends in short-form video.

Input Schema

{
"shortUrls": [
"https://www.youtube.com/shorts/0uTo-oe2ecA",
"https://www.youtube.com/shorts/MJstrGQT79k"
],
"maxItems": 10
}

shortUrls is required. All other fields are optional.

FieldTypeDefaultDescription
shortUrlsArray of stringsPublic YouTube Shorts URLs (/shorts/..., youtu.be/..., or /watch?v=...)
maxItemsInteger10Maximum number of Shorts to process in a single run
proxyConfigurationObjectResidential onProxy used for downloads — YouTube blocks most datacenter IPs

Output Schema

Each dataset item represents one Short and all the on-screen text found in it:

{
"shortUrl": "https://www.youtube.com/shorts/MJstrGQT79k",
"videoId": "MJstrGQT79k",
"duration": 45,
"textSegments": [
{
"text": "Suffolk wildfires ‘stabilising’, say firefighters",
"timestamp": "00:00",
"type": "overlay",
"position": "top",
"language": "en",
"confidence": "high"
},
{
"text": "At least 12 fire engines remain on scene.",
"timestamp": "00:09",
"type": "caption",
"position": "bottom",
"language": "en",
"confidence": "high"
}
],
"fullText": "Suffolk wildfires ‘stabilising’, say firefighters\nAt least 12 fire engines remain on scene.",
"scrapedAt": "2026-08-01T07:16:28.904Z"
}
FieldDescription
shortUrlNormalized canonical URL of the Short
videoIdYouTube 11-character video ID
durationVideo length in seconds
textSegmentsArray of all on-screen text elements found
textSegments[].textThe visible text content as it appears on screen
textSegments[].timestampMM:SS when the text first appears — null if indeterminate
textSegments[].typeoverlay | caption | sticker | watermark | hashtag | mention | other
textSegments[].positiontop | center | bottom — vertical screen position, null if it moves
textSegments[].languageISO 639-1 language code detected from the text, e.g. "en", "es"null if indeterminate
textSegments[].confidencehigh | medium | low — extraction confidence based on text clarity
fullTextEvery segment's text joined with newlines — convenient for search and indexing
scrapedAtISO timestamp of when this Short was processed

How It Works

  1. Validate inputs — each URL is checked against accepted YouTube URL patterns, the video ID is extracted, and the URL is normalized to a canonical Shorts form.
  2. Fetch (retriable) — each Short is retrieved in a dedicated crawler step. Failed fetches are retried automatically with a fresh proxy (up to 5 attempts).
  3. Process — the video is analyzed by AI vision to extract all visible on-screen text in a single pass.
  4. Structured output — each text segment is classified by type, position, language, and confidence.
  5. Push to dataset — one dataset row is pushed per Short containing all its text segments plus the combined fullText.

Pricing

This Actor uses pay-per-event pricing:

EventCharged
short-processedOnce per Short successfully processed
video-secondPer second of video processed (rounded up, minimum 1)

Shorts that fail to download or contain no on-screen text are not charged.


Notes and Limitations

  • Public Shorts only: Private, unlisted, and age- or login-gated videos are not supported.
  • Video availability: Deleted, region-blocked, or expired videos will fail to fetch and are skipped with a warning.
  • Proxy recommended: YouTube blocks most datacenter IPs. Residential proxy is the default and is strongly recommended.
  • OCR accuracy: Fast-moving, small-font, or low-contrast text may yield lower confidence extractions.
  • Text-free videos: Shorts with no burned-in text return no dataset row — this is expected, not an error.
  • Video size: Very large videos are skipped automatically.
  • Audio not included: Spoken content is intentionally excluded — only text visually rendered on screen is extracted. Use a transcription Actor if you need speech.