Instagram Reel Text Extractor
Pricing
from $1.00 / 1,000 reels
Instagram Reel Text Extractor
AI-powered on-video text from Instagram Reels. Full-screen, timestamped, multilingual OCR for Instagram Reels that classifies every visible text element (overlays, captions, stickers, watermarks, hashtags, mentions), including screen position and confidence, with no login required.
Pricing
from $1.00 / 1,000 reels
Rating
0.0
(0)
Developer
rainminer
Maintained by CommunityActor stats
1
Bookmarked
20
Total users
11
Monthly active users
a month ago
Last modified
Categories
Share
The Instagram Reel Text Extractor is an Apify Actor that reads public Instagram Reels and returns every piece of visible on-screen text as structured data. Businesses overlay text, captions, stickers, hashtags, and watermarks directly onto their videos — this Actor unlocks that content for search, analysis, and database ingestion without manual review.
Each reel is processed by AI vision and the results are returned as a flat, structured dataset of text segments — each with its timestamp, type, screen position, language, and confidence rating.
Key Features
- Full on-screen text extraction: Captures animated overlays, editor captions, Instagram stickers, 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.
- 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.
- No login required: Works with any public Instagram Reel.
Why Extract Text from Reels?
Instagram Reels have become a primary publishing surface for businesses, creators, and brands. Menu specials, product drops, event announcements, hiring notices, and pricing updates are routinely shared only as Reel overlays — never structured or indexed. This Actor makes that content machine-readable for:
- Content intelligence and brand monitoring tracking what competitors publish in Reels.
- Food and hospitality capturing daily specials and seasonal menus announced via video.
- Event aggregators extracting event names, dates, and lineup text from promotional Reels.
- Retail and e-commerce indexing product drops, discount codes, and launch dates.
- Market research tracking pricing, offers, and messaging trends across accounts.
- Accessibility tools converting visual Reel text to readable formats.
Who Is It For?
- Marketing and analytics teams monitoring brand or competitor Reel content at scale.
- Product and data teams building structured datasets from Instagram video content.
- Developers integrating Reel text extraction into discovery or monitoring pipelines.
- Researchers studying visual communication trends in short-form video.
Input Schema
{"reelUrls": ["https://www.instagram.com/reel/DY8NM9WJfM8/"],"maxItems": 10}
reelUrls is required. All other fields are optional.
| Field | Type | Default | Description |
|---|---|---|---|
reelUrls | Array of strings | — | Public Instagram Reel URLs (/reel/... or /p/...) |
maxItems | Integer | 10 | Maximum number of reels to process in a single run |
Output Schema
Each dataset item represents one reel and all the on-screen text found in it:
{"reelUrl": "https://www.instagram.com/reel/DY8NM9WJfM8/","shortcode": "DY8NM9WJfM8","textSegments": [{"text": "POV: Getting robbed at gunpoint but you're fat","timestamp": "00:00","type": "overlay","position": "top","language": "en","confidence": "high"}],"scrapedAt": "2026-06-01T08:15:42.000Z"}
| Field | Description |
|---|---|
reelUrl | Normalized canonical URL of the reel |
shortcode | Instagram shortcode (e.g. ABC123) |
textSegments | Array of all on-screen text elements found |
textSegments[].text | The visible text content as it appears on screen |
textSegments[].timestamp | MM:SS when the text first appears — null if indeterminate |
textSegments[].type | overlay | caption | sticker | watermark | hashtag | mention | other |
textSegments[].position | top | center | bottom — vertical screen position, null if it moves |
textSegments[].language | ISO 639-1 language code detected from the text, e.g. "en", "es" — null if indeterminate |
textSegments[].confidence | high | medium | low — extraction confidence based on text clarity |
scrapedAt | ISO timestamp of when this reel was processed |
How It Works
- Validate inputs — each URL is checked against accepted Instagram Reel URL patterns and normalized to a canonical form.
- Fetch video — the Reel is retrieved without requiring a browser or login session.
- AI text extraction — the video is analyzed by AI vision to extract all visible on-screen text in a single pass.
- Structured output — each text segment is classified by type, position, language, and confidence.
- Push to dataset — one dataset row is pushed per reel containing all its text segments.
Notes and Limitations
- Public reels only: Private accounts and reels that require login to view are not supported.
- Video availability: Deleted or expired reels will fail to download and are skipped with a warning.
- OCR accuracy: Fast-moving, small-font, or low-contrast text may yield lower confidence extractions.
- Rate limiting: Instagram may rate-limit requests at high volume. Reduce concurrency or add delays between runs if you encounter failures.
- Video size: Very large Reels are skipped automatically.
- Audio not included: Spoken content is intentionally excluded — only text visually rendered on screen is extracted.