Facebook Reel Transcript & Caption Scraper [NO LOGIN] ✅
Pricing
$5.00 / 1,000 results
Facebook Reel Transcript & Caption Scraper [NO LOGIN] ✅
Bulk-extract captions and transcripts from public Facebook reels and short videos. Every URL returns clean text or a plain-language reason (over 2 min / no captions / wrong URL). No login, no cookies, no speech-to-text bill. >99% success rate. Free tier: 50 results per run, unlimited on paid.
Pricing
$5.00 / 1,000 results
Rating
5.0
(3)
Developer
Unseen User
Maintained by CommunityActor stats
7
Bookmarked
57
Total users
16
Monthly active users
7 hours ago
Last modified
Categories
Share
📝 Facebook Video & Reel Transcript Scraper (No Login)
Convert public Facebook Reels and short videos to text in bulk. Fast caption extraction, no login, no cookies. Built for short-form clips under 2 minutes. Tier: Tier 3 - Suite Completer / Cheap Entry Hook
🚀 Get started in 30 seconds
- Click Try for free.
- Paste a Facebook reel URL (or a Facebook page URL, or a mix). Example:
https://www.facebook.com/reel/1114235920664408. - Click Start.
- When the run finishes, open the Dataset tab to see the transcript text. Export as JSON, CSV, or Excel.
That's it. Everything else on the input form is optional. See the ./examples folder for ready-to-run recipes covering translations, comment analysis, whole-page batching, and MP4 downloads.
What this Actor does: returns Facebook's existing caption text for public reels and short videos (under 2 minutes). It is not a speech-to-text engine; if a reel has no captions, the row will say so.
What this Actor doesn't do: Instagram, TikTok, YouTube, Reddit, X - those URLs are flagged with a note pointing to the correct portfolio Actor. See the Related Actors section below.
📋 Quick Reference
| Property | Value |
|---|---|
| Public Name (Apify Title) | 📝 Facebook Video & Reel Transcript Scraper (No Login) |
| Apify Slug | UnseenUser/facebook-transcript-scraper |
| Short Description (160 chars) | Convert public Facebook Reels and short videos to text in bulk. Fast caption extraction, no login, no cookies. Built for short-form clips under 2 minutes. |
| API Provider | Scrape Creators |
| API Base URL | https://api.scrapecreators.com |
| Endpoints Wrapped | 2 endpoints (transcript core + optional post-context) |
| Endpoints List | /v1/facebook/post/transcript (core) + /v1/facebook/post (optional context) |
| Authentication | x-api-key header -> environment variable SCRAPECREATORS_API_KEY |
| API Cost | 1 credit per request; one URL = one transcript call; post-context billed separately |
| Effective Date | May 5, 2026 |
| Keywords | facebook transcript scraper, reel captions, video to text, short form transcription, caption extraction, no login facebook |
Endpoints Wrapped
| Endpoint | Purpose | Credits | Official Documentation |
|---|---|---|---|
GET /v1/facebook/post/transcript | Caption text for a public reel / short video (under 2 minutes) | 1 credit / request | https://docs.scrapecreators.com (Facebook section) |
GET /v1/facebook/post | Optional post context (author, view count, description, length) | 1 credit / request | https://docs.scrapecreators.com (Facebook section) |
📦 Part 1: Public-Facing README (paste into Apify Store listing)
⚡ Why This Actor?
Single-purpose atomic actor: paste public Facebook Reel or short-video URLs, get clean caption text back fast - no login, no cookies, no speech-to-text compute. This wraps Facebook's existing caption text and is optimized for short-form content. It is honest about scope: the transcript endpoint only works for videos under 2 minutes and returns Facebook's own captions, not a general speech-to-text engine. That is a feature for the right buyer - cheap, fast bulk reel captions - not a flagship long-form transcription tool. You receive caption text; you do NOT receive a Whisper-grade transcription of arbitrary-length video.
🎯 Use Cases
- Bulk reel captioning - turn a list of short-video URLs into clean text fast
- Content repurposing - feed caption text into repurposing and summarization workflows
- Search indexing - make reel content searchable by its caption text
- Accessibility - surface caption text for downstream accessibility uses
- AI/LLM pipelines - supply short-form text to your own pipelines (subject to the licensing rules in Part 4)
- Reels workflow - pair with a Reels scraper: scrape a profile's reels, then transcribe the short ones
🚀 Quick Start
- Click Try for free on this Actor's page
- Enter the required identifier (see Inputs Overview below)
- Run the Actor
- Download results as JSON, CSV, or XLSX, or pull via Apify API
⚙️ Inputs Overview
| Input | Type | Required | Description | Example/Allowed Values |
|---|---|---|---|---|
startUrls | array of strings | ✅ | One or more public Facebook video / reel URLs (under 2 minutes) | https://www.facebook.com/reel/1114235920664408 |
includePostContext | boolean | ❌ | ⚠️ COST WARNING: billed add-on. Adds author, view count, description and creation time via the post endpoint. | false |
skipOverTwoMinutes | boolean | ❌ | If post context is on, skip videos over 2 minutes before calling transcript to avoid empty results. Default true | true |
💰 Pricing
Pay-per-event model on Apify. One URL equals one transcript call (1 credit). The post-context add-on is a separate billed event.
Pricing tier hint: Anchor near the cheap end of the short-form transcription market. Because this is caption extraction (no speech-to-text compute), it sits below full STT tools. Bill only on a successful transcript - never charge for empty or over-length results.
⚠️ Honest limitation: videos over 2 minutes, or videos without captions, return no transcript. The Actor handles this gracefully and does not bill for empty results. Do not expect long-form or podcast transcription here.
See exact per-event pricing on the Actor's Apify page.
❓ FAQ
Q: Is this legal? A: This Actor wraps Scrape Creators endpoints that handle the underlying data collection. Your downstream use of the data is your responsibility - see the full Terms of Service and the Actor-Specific Addendum (Part 4) for details.
Q: Do I need a Scrape Creators account? A: No. UnseenUser holds the Scrape Creators credentials. You only need an Apify account.
Q: What about Facebook's anti-scraping enforcement? A: Meta's Terms restrict automated extraction. Scrape Creators handles the data collection - they bear the responsibility for their architecture's lawfulness. Your downstream use must comply with Meta's Terms.
Q: What if Meta sends a cease-and-desist? A: Notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease using this Actor immediately.
Q: Can I use this data to train AI? A: NO. Meta's Terms prohibit AI training on Facebook data, and transcript text is third-party content the creator holds rights in. See Part 4, Section H.
Q: What about minors? A: Facebook has many under-18 users, and reels may be created by minors. This Actor's Terms strictly prohibit using data of users you know or suspect are minors. See Part 4 for details.
Q: Why did I get no transcript for some videos?
A: The endpoint only works for videos under 2 minutes and only when captions exist. Over-length or caption-less videos return transcriptAvailable: false - and you are not billed for them.
Q: Is this real speech-to-text? A: No. It returns Facebook's existing caption text, not a speech-to-text transcription. For long-form or any-length STT, this is not the right tool.
Q: What format is the transcript in?
A: The raw API returns a single newline-delimited string. The Actor also emits a convenience transcriptText (spaces instead of newlines) and a lines[] array - a light post-process at no extra API cost.
🔧 Technical Details
- API: Scrape Creators (
https://api.scrapecreators.com) - Auth:
x-api-keyheader - Output: streamed via Apify dataset
- Format: JSON, CSV, XLSX, or via Apify API
- Retries: 3 with exponential backoff on 429/502/503/504
- No rate limit stated by Scrape Creators ("scrape as fast as you want")
- No pagination: one URL = one transcript call
- Empty/over-length results handled gracefully and not billed
🛠️ Part 2: Build Specification (for Claude Code)
Build Specification
Build an Apify actor in Node.js (TypeScript) called "facebook-transcript-scraper".Core: /v1/facebook/post/transcript (+ optional context: /v1/facebook/post)Auth: x-api-key header -> loaded from environment variable SCRAPECREATORS_API_KEY.INPUT_SCHEMA.json:- startUrls (array of strings, REQUIRED) - public video / reel URLs (under 2 minutes)- includePostContext (boolean, default false) - billed add-on- skipOverTwoMinutes (boolean, default true) - when context on, skip long videos pre-checkBehavior:1. Validate input - fail fast with helpful error messages (startUrls non-empty).2. STEP 0 (optional pre-check): If includePostContext=true and skipOverTwoMinutes=true,call /v1/facebook/post first and read length_in_second; skip the transcript call forvideos over 120 seconds (emit a row noting "skipped: over 2 minutes").3. STEP 1 (transcript): For each URL, call /v1/facebook/post/transcript (one call per URL).4. Handle empty results gracefully: if no transcript (over 2 minutes or no captions), emit a rowwith transcriptAvailable=false, transcript=null, note explaining why. DO NOT bill empty results.5. Post-process: emit `transcript` (raw newline-delimited), plus convenience `transcriptText`(newlines -> spaces) and `lines[]` (split on newline). No extra API cost.6. Stream one row per URL via Actor.pushData().7. Include _metadata field per row: { fetched_at, video_url, transcript_available, post_context_fetched }8. Process startUrls sequentially with per-URL error isolation.Retries: 3 with exponential backoff (1s, 2s, 4s) on 429, 502, 503, 504.Concurrency: 3-5 across URLs.User-Agent: OpusScale-Apify/1.0
📡 API Reference - Verified from Official Documentation
Endpoint facts sourced from docs.scrapecreators.com (Facebook section). The transcript response is sample-verified; the optional post endpoint follows the documented pattern.
📡 Endpoint: Post Transcript ✅ VERIFIED
GET https://api.scrapecreators.com/v1/facebook/post/transcript - 1 credit
Authentication
| Header | Value | Required |
|---|---|---|
x-api-key | Your Scrape Creators key | ✅ Required |
Query Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
url | string | ✅ | Public video / reel URL (under 2 minutes) | https://www.facebook.com/reel/1114235920664408 |
Response 200 - Sample (verified from official docs)
{"source": "https://www.facebook.com/reel/1114235920664408","url": "https://www.facebook.com/reel/1114235920664408","success": true,"transcript": "We're fishing\nbite x2\nBest bait\non this pole\n...\nthank you very much","transcriptAvailable": true,"note": null}
When no transcript is available (over 2 minutes or no captions): transcriptAvailable: false, transcript: null, note: "No transcript (video over 2 minutes or no captions)".
Important: only works for videos under ~2 minutes. Returns empty / none otherwise. Handle gracefully and do not bill for empty results.
📡 Endpoint: Post (optional context) ✅ VERIFIED (endpoint pattern)
GET https://api.scrapecreators.com/v1/facebook/post - 1 credit
Source: https://docs.scrapecreators.com (Facebook section)
Get a single public post or reel by URL. Used here only when includePostContext=true to add author, view_count, description, creation_time, and video.length_in_second (used for the skip-over-2-minutes pre-check). For the complete schema, refer to the official Scrape Creators documentation.
Pricing Strategy (pay-per-event)
Configure pay-per-event in Apify console. Anchor near the cheap end of the short-form transcription market; do not try to out-claim full STT tools on length or quality.
| Tier | Trigger | Suggested Apify Price | Rationale |
|---|---|---|---|
| Transcript returned | a successful transcript only | $3/1k | Between the cheap cross-platform anchor and the $10 STT tools; caption-only is lighter |
| Post context (add-on) | includePostContext | $5/1k | Only when context is enabled |
Important: do NOT bill for empty or over-length results - it is the fastest route to one-star reviews in the transcript category. Keep the start fee near zero.
Tags (actor.json)
categories: ["SOCIAL_MEDIA", "AI"]keywords: ['facebook transcript scraper', 'reel captions', 'video to text', 'short form transcription', 'caption extraction', 'no login facebook']
Important Notes for Claude Code
- Never log the API key in error messages or run logs
- Emit failed requests as dataset rows with
errorfield - do NOT crash the whole run - Include
_metadatafield per row:{ fetched_at, video_url, transcript_available, post_context_fetched } - For batch mode (multiple URLs per run), process sequentially with per-URL error isolation
- Log a one-line acceptance notice at start of every run:
ℹ️ This Actor is governed by UnseenUser's Terms of Service V4.0.ℹ️ Running this Actor constitutes binding acceptance.
- One URL = one transcript call - no pagination.
- Graceful empty handling + NO billing for empty / over-2-minute results (this is a hard rule).
- Optional pre-check: when
includePostContextandskipOverTwoMinutesare on, readlength_in_secondfrom/postand skip long videos before the transcript call. - Convenience fields: emit
transcript(raw), plustranscriptText(spaces) andlines[](array) - light post-process, no extra API cost. - State the 2-minute cap plainly in the README, up top - it sets correct expectations and avoids refund/review damage.
Apify Actor - Terms of Service
Version: 4.0 Effective Date: May 5, 2026
0. ACCEPTANCE BY USE - IMPORTANT
Read this section first.
These Terms of Service ("Terms") form a binding legal agreement between you ("User," "you," "your") and UnseenUser, the Publisher of this Apify actor ("UnseenUser," "the Publisher," "we," "us," "our").
0.1 How You Accept These Terms
You accept these Terms by any of the following actions, each of which constitutes a clear, affirmative act of acceptance:
- (a) Running the Actor - Initiating any execution of the Actor on the Apify platform
- (b) Using any output returned by the Actor for any purpose
- (c) Continuing to access the Actor's listing or documentation after these Terms are visible
0.2 Continuing Acceptance
Each time you run the Actor or use its outputs, you reaffirm your acceptance of the then-current Terms. If you do not agree to these Terms or any subsequent update, you must stop using the Actor immediately.
0.3 No Anonymous Acceptance
You cannot disclaim acceptance by:
- Failing to read these Terms before running the Actor
- Running the Actor through automated systems
- Sharing your Apify account with others who may not have read these Terms
By the act of running the Actor on Apify, you bind yourself, your organization (if applicable), and any individuals or systems acting on your behalf or under your authority.
0.4 If You Do Not Accept
If you do not agree to these Terms, you must not run the Actor. No use is authorized without acceptance.
PREAMBLE - UNDERSTANDING THE ARCHITECTURE
Before using the Actor, please understand the technical architecture of the service:
The Data Flow
You (User) -> Apify Platform -> Actor (software) -> Third-Party API -> Source Platform You (User) <- Apify Platform <- Actor (software) <- Third-Party API
What Each Party Does
- You (the User): Run the Actor on the Apify platform with input parameters you choose
- Apify: Operates the cloud infrastructure that hosts and executes Actors. Apify is a Czech-incorporated company (Apify Technologies s.r.o.) governed by its own Terms of Service.
- The Publisher (us): Publishes software code (the Actor) on Apify's platform. The Actor is a thin wrapper that translates your input into requests to a third-party API and returns the API's responses to you. The Publisher does not operate scraping infrastructure. The Publisher does not store or retain data returned by the Actor. The Publisher does not see, log, or process the personal data of any individuals returned in the Actor's outputs beyond what is incidental to passing the data through.
- Third-Party API Provider: HarvestAPI (https://harvest-api.com) or Scrape Creators (https://scrapecreators.com). These are independent third-party companies that operate scraping infrastructure and return data from source platforms.
- Source Platform: LinkedIn, TikTok, YouTube, Reddit, Linktree, etc. These are the platforms whose publicly visible data is accessed by the Third-Party API Providers.
Why This Matters
Your relationship with the Publisher is that of a software user to a software vendor. The Publisher has the responsibilities of a software vendor (functional code, accurate documentation) and the limits of one (the Publisher is not responsible for how you use the data you obtain).
These Terms operate alongside but do not replace:
- Apify's Terms of Service and Acceptable Use Policy (governing your relationship with Apify)
- HarvestAPI Terms of Service and Scrape Creators Terms of Service (governing the underlying data infrastructure)
- Source Platform terms (LinkedIn, TikTok, etc.) governing the public data accessed
- Applicable law in your jurisdiction and the jurisdictions of data subjects
These Terms incorporate the actor-specific addendum published in each Actor's individual listing ("Addendum"). In the event of a conflict, the more restrictive provision applies.
1. NATURE OF THE SERVICE
1.1 What the Actor Is
The Actor is a software program published on the Apify platform. Each Actor:
- (a) Accepts structured input from you on the Apify platform
- (b) Translates that input into HTTP requests to a third-party API operated by HarvestAPI or Scrape Creators
- (c) Receives HTTP responses from that third-party API
- (d) Returns the response data to you in a structured format on the Apify platform
The Actor's source code is hosted on Apify's infrastructure. The Actor runs in Apify's cloud, not on the Publisher's servers. The Publisher operates no servers running the Actor.
1.2 What the Actor Is Not
The Actor is not:
- (a) A scraping tool - the Publisher does not operate scraping infrastructure, proxies, headless browsers, or fake accounts
- (b) A direct connection to any source platform - connections to source platforms are made by HarvestAPI / Scrape Creators
- (c) A data storage or data retention service - the Publisher does not maintain a database of any data the Actor returns
- (d) A licensed access channel to LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta, Linktree, or any other source platform
- (e) Affiliated with, endorsed by, sponsored by, or authorized by any source platform
1.3 The Publisher's Limited Role
The Publisher's role is limited to:
- (a) Designing and writing the Actor's source code
- (b) Publishing the Actor on the Apify Store
- (c) Maintaining the Actor (updating it when API providers change schemas)
- (d) Providing documentation and customer support via Apify's contact mechanism
The Publisher is a software vendor, similar to a developer who publishes an app on the Apple App Store or Google Play Store. The Publisher is not a data provider, data broker, data processor, or data controller for purposes of GDPR, CCPA, Israel's Privacy Protection Law, or equivalent.
1.4 The Third-Party API Providers' Role
HarvestAPI (https://harvest-api.com) and Scrape Creators (https://scrapecreators.com) are independent third-party companies. They:
- (a) Operate the actual data scraping infrastructure
- (b) Maintain relationships with source platforms (or accept the operational risk of accessing public data without such relationships)
- (c) Are themselves Apify publishers (HarvestAPI publishes 9+ actors directly; Scrape Creators publishes 10+)
- (d) Provide their own Terms of Service governing their operations
- (e) Are responsible for compliance obligations relating to the data collection itself
The Publisher is a customer of these providers. The Publisher is not their agent, partner, or representative.
2. WHO MAY USE THE ACTOR
2.1 Eligibility
You may use the Actor only if:
- (a) You are at least 18 years old or the age of majority in your jurisdiction
- (b) You have legal capacity to enter into binding contracts
- (c) You are not located in or resident of a country subject to comprehensive sanctions by the United States, European Union, United Kingdom, or Israel
- (d) You are not on any prohibited persons list
2.2 User Representations
By using any Actor, you represent and warrant that:
- (a) Truthful identity: Information you provide about your identity and intended use is accurate
- (b) Lawful intent: Your intended use complies with applicable law in your jurisdiction
- (c) Source platform compliance: You will independently comply with the Terms of Service of any source platform whose data you obtain through the Actor
- (d) Data subject rights: Where Actor outputs include personal data, you will respect data subject rights under applicable law
- (e) No prohibited use: You will not use the Actor for any of the purposes prohibited in Section 4
These representations are continuous - they must remain true throughout your use.
3. PERMITTED USES
The Actor may be used for any lawful purpose, including:
- Market research and competitive analysis
- Academic research
- Journalism and investigative reporting
- Internal business intelligence
- Brand monitoring
- Recruitment research where consistent with applicable employment law
- Building products that further process publicly available information lawfully
Specific permitted uses for each Actor are described in that Actor's individual listing and Addendum.
4. PROHIBITED USES
You may not use the Actor for any of the following:
4.1 Illegal Activity
Activity illegal under the law of your jurisdiction, the User's jurisdiction, or the jurisdiction of any data subjects.
4.2 Harassment, Stalking, and Personal Targeting
- Compiling profiles for harassment, stalking, or doxxing
- Tracking individuals' movements or activities without their knowledge
- Building profiles of journalists, activists, dissidents, or vulnerable populations for retaliatory purposes
4.3 Discrimination
- Using outputs for discriminatory employment, lending, housing, or insurance decisions based on protected characteristics
- Building lists for discriminatory purposes
4.4 Spam and Unsolicited Commercial Communication
- Sending unsolicited marketing in violation of CAN-SPAM, CASL, GDPR, PECR, Israeli Anti-Spam Law (Section 30A of the Communications Law), or equivalent laws
- Building "lead lists" from scraped contacts without proper consent infrastructure
- Reselling contact data for spam purposes
4.5 Fraud and Deception
- Identity theft or impersonation
- Generation of fake reviews, testimonials, or coordinated inauthentic behavior
- Election interference or political disinformation
- Securities fraud
4.6 Source Platform Abuse
- Using outputs to circumvent technical protection measures of source platforms
- Creating fake accounts on source platforms based on Actor outputs
- Vote manipulation, engagement manipulation, or platform algorithm gaming
- Building services that competitively substitute for source platforms
4.7 Reselling the Actor's Service
- Reselling raw Actor outputs as your own data product or scraping-as-a-service
- Sharing your Apify credentials to provide third parties indirect access
- Building competing API services using Actor outputs
4.8 AI Training Without Authorization
- Using Actor outputs as training data for commercial AI/ML models without separate licensing authority from the source platform
4.9 Sensitive Targeting
- Specifically targeting or profiling based on health conditions, sexual orientation, religious beliefs, political opinions, or other sensitive characteristics
- Targeting children under 16 (or local age of consent for data processing)
4.10 Privacy Law Violations
- Processing personal data of EU/UK/California/Israeli residents without complying with applicable privacy law
- Failing to honor data subject access, deletion, or objection requests
- Processing data for purposes incompatible with its publication context
5. SOURCE PLATFORM TERMS - YOUR RESPONSIBILITY
5.1 Acknowledgment
The Actor accesses publicly visible data on third-party platforms ("Source Platforms") through the Third-Party API Providers (HarvestAPI / Scrape Creators). Source Platforms include LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta/Facebook, Linktree, Komi, Pillar, Linkbio, Linkme, and Amazon.
5.2 Your Sole Responsibility
You acknowledge:
- (a) You are solely responsible for ensuring your downstream use of data obtained through the Actor complies with the Source Platform's Terms of Service
- (b) The Publisher makes no representation that any specific use is permitted under any Source Platform's terms
- (c) The Third-Party API Providers, not the Publisher, bear responsibility for the lawfulness of the data collection itself
- (d) You should review Source Platform terms before commercial use:
- LinkedIn: https://www.linkedin.com/legal/user-agreement
- TikTok: https://www.tiktok.com/legal/page/global/terms-of-service/en
- YouTube: https://www.youtube.com/static?template=terms
- X: https://twitter.com/en/tos
- Reddit: https://www.redditinc.com/policies/user-agreement
- Meta: https://www.facebook.com/legal/terms
- Linktree: https://linktr.ee/s/terms/
5.3 Cease-and-Desist Compliance
If you receive a cease-and-desist letter or other legal demand from a Source Platform regarding your use of Actor outputs, you must:
- (a) Cease the contested use immediately
- (b) Notify UnseenUser within 48 hours via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser)
- (c) Cooperate with the Publisher as needed to mitigate
- (d) Not assert against the Publisher any claim arising from your inability to use the Actor for that Source Platform
6. DATA PROTECTION - REFLECTING ACTUAL ARCHITECTURE
6.1 Roles Under Privacy Law
For purposes of GDPR, UK GDPR, CCPA, Israel's Privacy Protection Law (PPL) including Amendment 13, and equivalents:
- You (the User) are the Data Controller of any personal data you obtain through the Actor and subsequently process for your own purposes
- HarvestAPI and Scrape Creators are the entities that collect data from source platforms - they bear the responsibilities of data processors or controllers (depending on context) for the collection itself
- The Publisher acts solely as a software vendor, not as a data controller or processor, because the Publisher does not store, retain, or substantively process personal data - the Actor merely passes API responses through
6.2 No Data Retention by the Publisher
The Publisher confirms:
- (a) The Publisher does not maintain a database of personal data obtained through the Actor
- (b) The Actor passes data from the Third-Party API directly to you on the Apify platform - data does not flow through the Publisher's infrastructure
- (c) Apify's standard execution and operational logging may include limited information about Actor runs (input parameters, run duration, data volume) - this is governed by Apify's own privacy practices
- (d) The Publisher does not access, view, or analyze your Actor outputs except as needed for technical support if you specifically share them with the Publisher
6.3 Your Obligations as Data Controller
Where your use of the Actor involves processing personal data, you are responsible for:
- (a) Establishing a lawful basis for your processing (consent, legitimate interest with documented balancing test, contract, etc.)
- (b) Providing transparent notice to data subjects as required by applicable law
- (c) Honoring data subject access, rectification, erasure, restriction, and portability requests
- (d) Implementing appropriate security measures
- (e) Conducting Data Protection Impact Assessments where required
- (f) Appointing a Data Protection Officer if your operations require one
- (g) Registering databases with applicable supervisory authorities
- (h) Honoring opt-out requests for direct marketing
- (i) Cross-border transfer safeguards where data crosses borders
6.4 Israel's Amendment 13 - User Compliance
If your use of the Actor involves Israeli residents' personal data, you must comply with the Privacy Protection Law as amended (Amendment 13, effective August 14, 2025). These obligations are yours as the data controller, not the Publisher's as the software vendor.
6.5 Sensitive Data Targeting Restrictions
You will not use the Actor to specifically target, profile, or build datasets focused on:
- Health or medical conditions
- Religious beliefs
- Political opinions
- Sexual orientation or gender identity
- Genetic or biometric data
- Criminal history
- Children under 16
7. INTELLECTUAL PROPERTY
7.1 Actor Code
The Actor's source code, schemas, documentation, and branding are owned by the Publisher. You receive a limited, non-exclusive, non-transferable, revocable license to use the Actor for permitted purposes during your active subscription/run with Apify.
7.2 Output Data
The Publisher claims no ownership over the public data the Actor returns. Source Platforms may have copyright, database rights, or other rights in their data; data subjects may have copyright in user-generated content. Your use of output data must respect these rights independently.
7.3 Restrictions
You may not reverse engineer, decompile, or reuse the Actor's code in a competing actor.
7.4 Feedback
Feedback you provide may be used by the Publisher to improve products without compensation to you.
8. PRICING AND PAYMENT
8.1 Apify Platform Billing
Pricing is administered through Apify's pricing models. Apify processes all payments. Apify's payment terms govern refunds and disputes.
8.2 Pricing Changes
The Publisher may change Actor pricing with at least 14 days' notice via the Actor's Apify listing.
8.3 No Refunds for Misuse
If your access is suspended or terminated for breach of these Terms, you forfeit any unused balance and are not entitled to refunds.
9. SERVICE AVAILABILITY AND CHANGES
9.1 No Uptime Guarantee
The Actor depends on:
- (a) The Apify platform
- (b) Underlying API providers (HarvestAPI, Scrape Creators)
- (c) Source Platforms' continued public accessibility
Any of these may change behavior, restrict access, or become unavailable without notice. The Publisher makes no uptime guarantees.
9.2 Service Discontinuation
The Publisher may discontinue any Actor at any time. Reasonable notice will be provided when feasible.
10. DISCLAIMERS
10.1 "AS IS" Service
THE ACTOR IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR PURPOSE, NON-INFRINGEMENT, OR ACCURACY OF DATA.
10.2 No Representation of Lawfulness
The Publisher makes no representation that your specific use of the Actor or the data it returns is lawful in your jurisdiction or under any Source Platform's terms. The burden of determining lawfulness for your use case is yours.
10.3 No Endorsement of Source Content
Content returned by the Actor was created by third parties. The Publisher does not endorse, verify, or take responsibility for it.
11. LIMITATION OF LIABILITY
11.1 Aggregate Liability Cap
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF THE PUBLISHER FOR ALL CLAIMS RELATING TO THE ACTOR EXCEED THE GREATER OF:
- (a) ONE HUNDRED U.S. DOLLARS (US $100), OR
- (b) THE AMOUNTS YOU PAID THROUGH APIFY FOR USE OF THE ACTOR IN THE THREE (3) MONTHS IMMEDIATELY PRECEDING THE EVENT
11.2 Excluded Damages
THE PUBLISHER IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFITS, REVENUE, OR DATA, EVEN IF ADVISED OF THE POSSIBILITY.
11.3 Time Limit
Any claim must be brought within one (1) year of the event.
12. INDEMNIFICATION
12.1 Your Indemnification of the Publisher
You agree to defend, indemnify, and hold harmless the Publisher from any:
- Claims arising from your use of the Actor
- Claims arising from your violation of these Terms
- Claims arising from your violation of any law (including privacy law)
- Claims arising from your violation of any Source Platform's Terms of Service
- Claims arising from your processing of personal data obtained through the Actor
- Reasonable attorneys' fees and costs of defending such claims
12.2 Defense
The Publisher may assume defense at your expense. You will cooperate with the Publisher's defense.
12.3 Scope
The indemnification covers reasonable, foreseeable third-party claims arising from your use. It does not extend to:
- Claims arising from the Publisher's gross negligence or willful misconduct
- Claims regarding the Actor's source code itself (those are the Publisher's responsibility)
- Claims regarding the Third-Party API Provider's data collection (those are their responsibility)
13. SUSPENSION AND TERMINATION
13.1 Termination by the Publisher
The Publisher may terminate your access for material breach, illegal use, breach of warranty, or upon credible legal demand.
13.2 Effects of Termination
Your license ends, you must cease use, and applicable provisions survive.
13.3 Termination by You
You may stop using the Actor at any time on Apify.
14. DISPUTE RESOLUTION
14.1 Informal Resolution First
Send a detailed written description of the dispute via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) and wait 60 days for resolution attempt before any formal claim.
14.2 Governing Law
These Terms are governed by the substantive laws of the State of Israel, without regard to conflict of law principles.
14.3 Exclusive Jurisdiction
Any dispute shall be brought exclusively in the competent civil courts of Tel Aviv-Jaffa, Israel.
14.4 No Class Actions
You agree to bring claims only in your individual capacity.
14.5 Attorneys' Fees
The prevailing party recovers reasonable attorneys' fees.
15. MISCELLANEOUS
15.1 Entire Agreement
These Terms (with Addendum and incorporated documents) are the entire agreement.
15.2 Severability
Unenforceable provisions are reformed to the minimum extent or severed.
15.3 Assignment
You may not assign without the Publisher's consent. The Publisher may assign to affiliates, successors, or acquirers.
15.4 Force Majeure
Neither party is liable for failure due to events beyond reasonable control, including changes by Source Platforms or Third-Party API Providers, or actions by Apify.
15.5 Third-Party Beneficiaries
Apify, HarvestAPI, and Scrape Creators are intended third-party beneficiaries of Sections 4 (Prohibited Uses), 5 (Source Platform Compliance), and 12 (Indemnification).
15.6 Survival
Sections 0 (Acceptance), 4, 5, 6, 7, 10, 11, 12, 14, and 15 survive termination.
15.7 Language
English controls. Translations are for convenience only.
15.8 Publisher Identification for Legal Process
The Publisher operates on the Apify platform under the username UnseenUser (apify.com/UnseenUser). The Publisher is a registered legal entity. Upon receipt of valid legal process (subpoena, court order, or equivalent) directed through Apify's official channels, the Publisher's full legal identity may be disclosed as required by law. This Section ensures that you have a valid path to legal recourse if needed.
16. ACKNOWLEDGMENT
By using any Actor, you acknowledge that:
- (a) You have read these Terms
- (b) You understand the architecture: you are using software (the Actor) on Apify's platform that calls third-party APIs
- (c) You accept responsibility for your use, including for compliance with Source Platform terms
- (d) Your indemnification obligations cover third-party claims arising from your use
- (e) Disputes are resolved in Israeli courts
- (f) The Publisher's identity, while not publicly disclosed in this listing, can be obtained through valid legal process via Apify
For questions, use UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) before running the Actor.
APPENDIX - Document Version History
| Version | Date | Summary |
|---|---|---|
| 1.0 | May 5, 2026 | Initial publication |
| 2.0 | May 5, 2026 | Hardened (over-broad - treated User as data broker) |
| 3.0 | May 5, 2026 | Architecturally accurate - Publisher as software vendor |
| 4.0 | May 5, 2026 | Anonymous Publisher. All personally identifying information removed. Acceptance-by-Use mechanism formalized. |
These Terms reflect best practices for anonymous Apify actor publishing as of May 2026. Not a substitute for legal advice. Consult qualified Israeli commercial counsel before deploying.
🛡️ Part 4: Actor-Specific Terms of Service Addendum
🛡️ Actor-Specific ToS Addendum - 📝 Facebook Video & Reel Transcript Scraper
This addendum supplements the Master Terms of Service V4.0. By running this Actor, you accept both the Master ToS and this addendum.
A. Architectural Disclosure
This Actor is a software wrapper. It accepts your input parameters, calls the Scrape Creators /v1/facebook/post/transcript endpoint for each video (and, only when you enable it, the /v1/facebook/post endpoint for context), and returns the response data to you on the Apify platform. UnseenUser does not store, log, or substantively process the data returned. The data flows from Scrape Creators through Apify's runtime directly to you.
B. Nature of Data Returned
This Actor returns Facebook video caption text (the platform's existing captions for reels and short videos under 2 minutes), plus a success flag and an availability note. When post context is enabled it also returns the author, view count, description and creation time.
Caption text may contain personal data - names, statements, and information about identifiable people speaking or referenced in the video. Where the output includes such data, it is subject to GDPR, CCPA, Israeli Privacy Protection Law (including Amendment 13), and equivalent privacy laws in your downstream processing - but only in your hands as the data controller, not in UnseenUser's hands as the software vendor.
C. Permitted Use Cases
You may use this Actor for the following purposes (non-exhaustive list):
- Bulk reel captioning - turn short-video URLs into clean text
- Content repurposing - feed caption text into repurposing and summarization workflows
- Search indexing - make reel content searchable by caption text
- Accessibility - surface caption text for downstream accessibility uses
- AI/LLM pipelines - supply short-form text to your own pipelines, subject to Section H
- Reels workflow - pair with a Reels scraper to transcribe short clips
D. Specifically Prohibited Uses
In addition to Master ToS Section 4 prohibitions, you may NOT:
- Republish substantial portions of transcript text in commercial products without licensing
- Train commercial AI/ML models on transcript text without separate licensing authority (Meta's Terms restrict this)
- Use transcripts to clone or mimic a specific creator's voice, style or scripts at scale
- Strip creator attribution and pass transcript content off as your own
- Use transcript content to harass, defame, or build profiles of identifiable individuals
E. Platform Terms of Service Considerations
Meta's Terms of Service prohibit automated extraction. Meta has aggressively litigated against scrapers (Meta v. BrandTotal - settled with permanent injunction; Meta v. Octopus Data; Meta v. Bright Data - pending). Facebook's Terms of Service prohibit automated extraction. This Actor accesses publicly visible caption data via Scrape Creators - Scrape Creators bears responsibility for the lawfulness of the data collection. Your downstream use must independently comply with Meta's Terms of Service.
If Meta issues a cease-and-desist regarding data obtained via this Actor, notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease your use immediately.
F. Caption-Only Scope and the 2-Minute Cap
This Actor returns Facebook's existing caption text and only works for videos under approximately 2 minutes. It is not a speech-to-text engine, does not guarantee a transcript exists, and does not cover long-form content. This is a documented limitation, not a defect. You must:
- Set correct expectations in any product you build on top of it
- Handle empty / unavailable results gracefully
- Not represent its output as a complete or verbatim transcription of arbitrary-length video
G. Transcript Copyright - Third-Party Content
Transcript text is the creator's content. Spoken words and scripts in a video are authored works in which the creator (and possibly others) hold copyright. You may analyze transcripts and quote short excerpts with attribution (typically fair use). You may NOT republish substantial portions in commercial products without licensing, translate and republish without authorization, or build a competing "Facebook reel transcript library." If your downstream use is anything beyond analysis or attributed quotation, get explicit licensing from the creator and any other rights holders.
Where includePostContext=true exposes post_context.video.hd_url and post_context.video.sd_url, buyers are reminded that the underlying video file is the creator's copyrighted work. Downloading these URLs for personal review is generally permissible; redistributing them in commercial products, republishing them on other platforms, or including them in AI training corpora is not authorized by this Actor and requires separate licensing directly from the creator (and, where applicable, the music rights holders per Section H).
When the optional downloadVideo input is enabled, this Actor writes the MP4 file to your Apify key-value store as VIDEO-<post_id_or_video_id>-<hd|sd>.mp4 (the row's video_download.kv_key field points to the exact key). That file is stored inside your Apify account, is not retained by the Publisher, and is subject to the same copyright rules as the direct CDN URL. Fair-use personal review of individual downloaded files is generally permissible; large-scale collection, redistribution, publication on other platforms, model-training use, and any commercial republication require separate licensing directly from the creator and, where applicable, from the music rights holders per Section H. Buyers who enable downloadVideo on a large batch (thousands of reels) should treat the resulting file set as a rights-restricted archive, not as a licensed content library.
H. AI Training - Special Notice
Meta's Terms of Service explicitly prohibit using Facebook data to train AI/ML models without authorization. Transcript text is no exception, and "AI/LLM pipelines" is listed as a use case precisely because it is the highest-risk one. The Publisher (UnseenUser) does NOT authorize, and has no ability to authorize, AI training use. Recent litigation (NYT v. OpenAI, Andersen v. Stability AI, multiple class actions) shows AI training on platform content is contested. If a video contains music, music rights holders (Universal Music Group, Sony Music, Warner Music) enforce copyright more aggressively than any other category. Get proper licensing or do not train on this data. Your AI training use is your own legal exposure.
I. Personal Data in Transcripts
Captions can name or describe identifiable people. Where a transcript contains personal data, your obligations as data controller apply: establish a lawful basis, apply data minimization (store only what you need), honor data subject rights (access, deletion, objection, rectification) with a typical 30-day SLA, and do not use transcript content to build profiles of, or target, identifiable individuals.
J. Minor Protection - CRITICAL
Facebook has a significant under-18 user population, and reels may be created by or feature minors. You MUST:
- NOT use this Actor to transcribe content of users you know or suspect are minors
- NOT use this Actor for any product or service targeted at minors without parental-consent mechanisms compliant with COPPA (US), GDPR Article 8 (EU), and Israeli Privacy Law (heightened sensitivity for minors)
- DELETE any data you discover relates to a minor unless you have valid parental consent
If a video's content or context suggests the creator or subject is under 18, treat the data as belonging to a minor by default. This restriction is non-negotiable.
If a data subject contacts YOU directly demanding deletion, honor it promptly, do NOT route them to UnseenUser (the software vendor is not the data controller), you may suggest they contact Meta directly since the data originates there, and document the request and your response.
✅ Part 5: Implementation Checklist for Claude Code
When building this Actor, ensure:
- Code is written in Node.js (TypeScript preferred)
- Authentication uses
x-api-keyheader fromSCRAPECREATORS_API_KEYenv variable (never hardcoded) - All endpoints are implemented with proper error handling
- Input validation: required fields fail fast with clear error messages
- Pagination respects max_* inputs strictly
- Retry logic: 3 retries with exponential backoff (1s, 2s, 4s) on 429/502/503/504
- Output uses
Actor.pushData()to stream each result - Each row includes
_metadata:{ fetched_at, video_url, transcript_available, post_context_fetched } - Failed requests emitted as dataset rows with
errorfield - don't crash on individual failures - User-Agent header set to:
OpusScale-Apify/1.0 - INPUT_SCHEMA.json includes all input fields with proper validation
- README.md (matching Part 1 + Part 3 + Part 4 content) is committed
- actor.json includes categories and keywords per Part 2
- Pricing per-event configured in Apify console with appropriate margin
- Acceptance-by-Use notice logged at start of every run
- No personal information about UnseenUser in code or output
- All references use "UnseenUser" or "the Publisher" (V4 anonymous framing)
- One URL = one transcript call; no pagination
- Graceful empty handling and NO billing for empty / over-2-minute results (hard rule)
- Optional
skipOverTwoMinutespre-check via/post(length_in_second) when context is on - Convenience fields emitted:
transcript(raw),transcriptText(spaces),lines[] - 2-minute cap stated plainly at the top of the README
- Per-URL error isolation in batch mode
🚀 Part 6: Pre-Publish Checklist on Apify
Before clicking "Publish":
- Test runs succeed with default inputs (try a short public reel, e.g.
https://www.facebook.com/reel/1114235920664408) - Test with invalid inputs - clear error messages, no crash
- Test a video over 2 minutes - returns
transcriptAvailable: false, is NOT billed, does not crash - Test a video with no captions - same graceful empty handling
- Test
includePostContext=truewithskipOverTwoMinutes- long video is skipped before the transcript call - Verify
transcript,transcriptTextandlines[]all appear in output - Output schema matches what the README documents
- Pricing per-event configured in Apify console (bill only on successful transcript; context tier separate)
- Apify "Title" field set to:
📝 Facebook Video & Reel Transcript Scraper (No Login) - Apify "Short Description" set to:
Convert public Facebook Reels and short videos to text in bulk. Fast caption extraction, no login, no cookies. Built for short-form clips under 2 minutes. - Apify "README" tab populated with content from Part 1 + Part 3 + Part 4
- Cover image uploaded (1920x1080 PNG, no Publisher branding)
- Categories and keywords entered per Part 2
- Tested the Apify contact form on UnseenUser's profile (this is the official legal channel)
Document Version: 4.0 (anonymous Publisher, UnseenUser identified) Last Updated: May 5, 2026 Master ToS Version: 4.0 Document Status: Ready for Claude Code execution
Atomic Actor Note: This is a single-job actor wrapping a core API endpoint (/v1/facebook/post/transcript) with one optional post-context call. The default run is one transcript call per URL, no pagination. This is the lightest of the suite - a cheap entry hook and suite completer, not a flagship.
Facebook Suite Notes: This actor is part of the UnseenUser Facebook actor suite. Companion actors:
UnseenUser/facebook-posts-scraper(planned) - wraps/v1/facebook/profile/posts+/v1/facebook/group/posts+/v1/facebook/profile/reels(scrape reels, then transcribe the short ones here)UnseenUser/facebook-comments-scraper- wraps/v1/facebook/post/comments+ repliesUnseenUser/facebook-pages-scraper- wraps/v1/facebook/profile(+ page add-ons)UnseenUser/facebook-profile-scraper- wraps/v1/facebook/profile(person framing)UnseenUser/facebook-marketplace-scraper- wraps the Marketplace endpoints
This is the complete safety + build specification for this Actor. It can be pasted into Claude Code to build the Actor on Apify.
Example tasks
Ready-to-run task presets for the most common workflows. Click any task to open the public task page; you can run it on demand or copy it into your own account.
- Bulk Transcribe Facebook Reels for Content Repurposing - drop a list of public Facebook reel URLs and pull caption text in bulk for repurposing into scripts, summaries, and short-form repackaging.
- Get Facebook Reel Caption Text From a Single URL - paste any one public reel URL and get caption text instantly for quick quote checks and fact-finding.
- Transcribe Only Short Facebook Reels Under 2 Minutes - filter a mixed list automatically: detect length and skip clips over 2 minutes before extracting captions.
- Index Facebook Reels With Captions, Author, and Stats - build a searchable reel library: caption text plus author, view count, description, and creation date in one pass.
- Get Facebook Reel Captions for LLM Summarization - feed reel captions into your summarization, translation, or topic-tagging pipelines as clean text and per-line arrays.
- Pull Facebook Reel Captions for Accessibility Work - extract caption text from public reels so accessibility and compliance teams can review, translate, or augment short-form video.
Limitations
- 2-minute cap. The upstream transcript endpoint only processes videos under approximately 2 minutes. Videos over this cap return
transcriptAvailable: falsewith anotefield explaining. This is a hard scope of the underlying API, not this Actor's choice. - Captions-only. This Actor extracts Facebook's existing caption text. It is not a speech-to-text engine. If a video has audible speech but no Facebook-authored captions, the response is
transcriptAvailable: false. For general STT of any-length video, use a dedicated STT service. - Public content only. URLs must be publicly accessible. Private posts, page-following-required content, region-locked videos, and login-required content return an error row.
- URL format matters. Reel URLs in the canonical form
https://www.facebook.com/reel/<id>work most reliably.watch?v=URLs may not return transcripts even for videos that are otherwise short enough. Use the reel URL for the same video where possible. - Language coverage depends on Facebook. If Facebook did not caption a video in a given language, no scraper can produce captions. This Actor returns whatever language Facebook stored.
- Free plan cap. Free Apify users receive up to 50 results per run. Paying users are uncapped. See the "Free plan limit" section for details.
Worked Example
Input JSON:
{"startUrls": ["https://www.facebook.com/reel/1114235920664408"],"includePostContext": false,"skipOverTwoMinutes": false}
Output dataset - transcript success case:
{"video_url": "https://www.facebook.com/reel/1114235920664408","transcript": "We're fishing\nbite x2\nBest bait\non this pole\n...\nthank you very much","transcriptText": "We're fishing bite x2 Best bait on this pole ... thank you very much","lines": ["We're fishing", "bite x2", "Best bait", "on this pole", "...", "thank you very much"],"transcriptAvailable": true,"note": null,"success": true,"post_context": null,"_metadata": {"fetched_at": "2026-09-09T12:00:00.000Z","video_url": "https://www.facebook.com/reel/1114235920664408","transcript_available": true,"post_context_fetched": false}}
Output for a video over 2 minutes or without captions:
{"video_url": "https://www.facebook.com/watch?v=EXAMPLE_LONG_VIDEO_ID","transcript": null,"transcriptText": null,"lines": [],"transcriptAvailable": false,"note": "No transcript (video over 2 minutes or no captions)","success": true,"post_context": null,"_metadata": {"fetched_at": "2026-09-09T12:00:00.000Z","video_url": "https://www.facebook.com/watch?v=EXAMPLE_LONG_VIDEO_ID","transcript_available": false,"post_context_fetched": false}}
The row still emits so downstream code can iterate uniformly. transcriptAvailable: false plus the note field explain the outcome.
Output for includePostContext: true:
{"video_url": "https://www.facebook.com/reel/1114235920664408","transcript": "We're fishing\n...","transcriptText": "We're fishing ...","lines": ["We're fishing", "..."],"transcriptAvailable": true,"note": null,"success": true,"post_context": {"author": {"id": "100064027242849","name": "The Copper Kettle Restaurant","is_verified": false,"url": "https://www.facebook.com/copperkettleyqr","image": "https://scontent.fsjc1-3.fna.fbcdn.net/..."},"view_count": 900,"description": "#globetheatreregina #GrandOpeningGlobeTheatre #yqrfood","creation_time": 1757796688,"length_in_second": 22.035},"_metadata": {"fetched_at": "2026-09-09T12:00:00.000Z","video_url": "https://www.facebook.com/reel/1114235920664408","transcript_available": true,"post_context_fetched": true}}
Troubleshooting
Common questions users hit, and what to do about them.
"I got transcriptAvailable: false on a video that clearly has captions."
- Check the URL format.
www.facebook.com/reel/<id>is the canonical form./watch?v=<id>and other formats sometimes return empty even for videos with captions. - Confirm the video is public. Log into Facebook and view the URL. If you see "This post is not available to you", the video is private or region-locked.
- Confirm the video is under 2 minutes. Enable
includePostContext: trueto seepost_context.length_in_secondand know for sure.
"I pasted an Instagram / TikTok / YouTube URL and got no result."
This Actor only processes Facebook URLs. Use the correct Actor for each platform:
- Instagram:
UnseenUser/igscraping - TikTok:
UnseenUser/Tiktok-transcript-extractor - YouTube:
UnseenUser/Youtube-all-in-one-scraper
"My non-English captions are missing or garbled."
This Actor returns Facebook's own captions in whatever language they were authored in. If Facebook did not caption the video in the target language, no result is possible. If the result exists but text is garbled, encoding is preserved from the upstream. Please open an issue with the offending URL.
"My whole run failed."
Runs do not fail because of individual URL issues. This Actor isolates per-URL errors: one bad URL emits an error row and processing continues. If your run status is FAILED, the cause is usually input schema (e.g., empty startUrls) or upstream availability. Check the run log for the diagnostic line: it names the URL and the reason.
"I want to save on upstream cost for repeat lookups."
Set the cache_max_age input to a window that matches your freshness tolerance ("1d", "3d", "7d", "14d", or "30d"). Cache hits cost zero upstream credits and are returned with cached: true plus a cached_at timestamp on the row. Leave the field empty to always scrape fresh.
"The note field says the upstream returned nothing but there is no explanation of why."
The Actor emits an INFO log line for every empty response listing the upstream response keys, success flag, and note. Read the log to see the raw upstream shape.
Changelog
Chronological. Newest at the top.
1.0 (in this repo, pending rebuild on Apify)
First real release. Everything below is opt-in; a bare-minimum run (paste a URL, click Start) works with no configuration.
Inputs (form rewritten into six short sections):
startUrls- one field that accepts reel URLs, page URLs, or a mix. Reel URLs go straight to the transcript endpoint; page URLs get expanded via a reels-list call and every discovered reel gets transcribed. Non-Facebook URLs are flagged with a note pointing to the correct portfolio Actor.maxReelsPerPage(default 0 = grab everything) - cap per page URL.includePostContext,includeCreatorProfile,skipOverTwoMinutes- reel-detail toggles.includeTopComments,topCommentsLimit,includeCommentReplies,commentRepliesLimit- comment toggles (all limits default to 0 = grab everything one call returns).downloadVideo,downloadVideoQuality,downloadVideoMaxMb- MP4 file downloads to the buyer's Apify KV store.enrichments(multi-select),translateTo(~80 languages),openaiApiKey(buyer's own key, never logged) - AI-powered insights.cache_max_age- reuse recent scrapes for free.
Output fields per row:
- Base:
video_url,transcript,transcriptText,lines,transcriptAvailable,note,note_code,suggested_fix,cached,cached_at,success,error,error_code,_metadata(fetched_at, url_normalized, original_url, source_page_url). - Post context (opt-in):
post_contextwith author, engagement counts, description, music, video URLs, thumbnail, captions URL. - Free-tier extras when captions file is present:
srt_content,vtt_content,segments,detected_language,hashtags,mentions. - Opt-in enrichments:
hook,cta,script_summary,topics,seo_keywords,sentiment,ad_angle,comment_analysis. - Opt-in add-ons:
translations(per-lang { text, error }),creator_profile,top_comments,top_liked_comment,comment_stats,video_download. - Sub-datasets:
segments(per SRT line),comments(per comment). - Key-value store:
RUN-SUMMARY(when therun_summaryenrichment is selected).
Billing (pay-per-event):
transcript.charged- one per successful transcript row.translation-charged- one per successful translation per language.enrichment.<name>- one per successful enrichment per row (hook,cta,summary,topics,seo_keywords,sentiment,ad_angle,comment_analysis,creator_profile,top_comments,comment_replies,download_video,page_reels,run_summary).
Correctness / safety:
- URL classification: reel, watch, page, non-Facebook - each handled explicitly with a
note_code. /watch?v=<id>transparently normalized to/reel/<id>.- Free-plan cap: 50 results per run; paying users uncapped. Cap-blocked rows do not bill.
- Wrong-platform URLs cost zero credits.
error_codeon failure rows classifies the failure (network, timeout, rate limit, auth, upstream 5xx / 4xx).- Dataset views:
Overview(compact) andFull transcript(all fields).
0.0.15 (2026-06-11)
- Initial public build.
What This Actor Does NOT Do
- Speech-to-text. Returns Facebook's existing caption text only. See the FAQ entry "Is this real speech-to-text?" for the difference.
- Long-form videos. The upstream transcript endpoint stops at approximately 2 minutes. Videos over this cap return
transcriptAvailable: false. - Non-Facebook platforms. Instagram, TikTok, YouTube, X, Reddit URLs are not supported. See the
Related Actorssection for the correct tool. - Translation. The transcript is returned in the language Facebook stored it in. This Actor does not translate to a target language.
- Audio-only content. Voice notes, audio clips without accompanying video, and podcast episodes are not in scope.
- Private or restricted content. Login-required posts, page-following-required content, and region-locked videos return an error row.
- AI training. The Publisher does not authorize the use of returned transcripts for training AI/ML models. See the Actor-Specific Addendum, Section H.
Related Actors
Other Actors in the UnseenUser portfolio. Use the linked Actor when the source platform matches:
UnseenUser/fb-reels- Facebook Reels Scraper (bulk reels metadata for a page)UnseenUser/fb-comments- Facebook Comment Scraper (posts and reels)UnseenUser/fb-pages- Facebook Page Details Scraper (lead generation)UnseenUser/fb-profile- Facebook Profile Scraper (personal profiles)UnseenUser/fb-marketplace- Facebook Marketplace Scraper (price and location)UnseenUser/fb-groups- Facebook Groups Scraper (members and posts)UnseenUser/fb-photos- Facebook Photos Scraper (bulk page images)UnseenUser/fb-posts- Facebook Page Posts & Reels ScraperUnseenUser/fb-events- Facebook Events Scraper (search and full details)UnseenUser/fb-followers- Facebook Page Follower Count (growth tracking)
Cross-platform companions:
UnseenUser/Tiktok-transcript-extractor- TikTok caption/transcript equivalentUnseenUser/igscraping- Instagram Profile ScraperUnseenUser/Youtube-all-in-one-scraper- YouTube Transcript ScraperUnseenUser/Reddit-Scraper- Reddit Posts and Ads Library
Common workflow chain: fb-reels (list a page's reels) then fb-transcript (this Actor - transcribe each short reel from the previous step). See the ## Example tasks section for a bulk-repurposing preset.
Translation
This Actor can translate every successful transcript into one or more target languages using OpenAI's gpt-4o-mini model. The feature is opt-in and defaults to off.
How to enable
- Get an OpenAI API key at https://platform.openai.com/api-keys. The key must start with
sk-. - In the Actor's input form, pick one or more target languages under Translate transcripts to (multi-select from ~80 languages including English, Spanish, French, German, Portuguese, Portuguese Brazilian, Russian, Japanese, Korean, Chinese Simplified, Chinese Traditional, Arabic, Hebrew, Hindi, Bengali, Urdu, Turkish, Vietnamese, Thai, Indonesian, and dozens more).
- Paste your OpenAI API key into the OpenAI API key field (marked as a Secret; not logged).
- Run.
If Translate transcripts to is empty, no translation happens and the row's translations field is null. If it is set but the OpenAI API key is empty, a warning is logged and translations are skipped without failing the run.
Output shape
Rows with translations enabled include a translations object:
{"video_url": "https://www.facebook.com/reel/1114235920664408","transcript": "We're fishing\n...","transcriptText": "We're fishing ...","translations": {"es": { "text": "Estamos pescando ...", "error": null },"ja": { "text": "釣りをしています ...", "error": null },"fr": { "text": null, "error": "OpenAI HTTP 401: invalid API key" }}}
Each language returns { text, error }. On success text is the translation and error is null. On failure text is null and error is a short human-readable string. One failed language does not affect the others.
Cost
Cost is split between you and OpenAI:
- You pay OpenAI directly (using your own key) approximately $0.00013 per translation per language on
gpt-4o-minifor a typical Facebook reel caption (~500 characters). - This Actor emits a
translation-chargedpay-per-event billing event for every successful translation delivered. The publisher (unseenuser) configures the per-event price in Apify Console -> Monetization.
Examples of your total cost for translating one transcript into 3 languages:
- OpenAI direct cost: ~$0.00039 (3 × $0.00013), billed to your OpenAI account
- Apify Actor cost: 3 × the publisher's per-event price, billed to your Apify account
Data flow disclosure
When this feature is enabled, the raw transcript text is sent to OpenAI's api.openai.com/v1/chat/completions endpoint over HTTPS. OpenAI's data handling terms apply to that transfer; the publisher (unseenuser) is not a party to the OpenAI transfer and neither stores nor retains the transcript, the translation, or your API key. Your API key is used only for authenticating that specific run's translation calls and is never logged or written to any dataset field.
Buyers are responsible for confirming their intended translation use complies with:
- OpenAI's Terms of Service and usage policies
- Meta's Terms of Service governing the underlying Facebook caption content
- The Actor-Specific Addendum Section G (Transcript Copyright) and Section H (AI Training) for downstream use of translations
Limitations
- Requires a working OpenAI API key. Runs without a key still succeed but do not translate.
- Requires the transcript to be non-empty. Rows with
transcriptAvailable: falsehavetranslations: null. - Language quality varies.
gpt-4o-miniis competent in ~80 major languages; rare or low-resource languages may return lower-quality translations. - OpenAI rate limits apply to your key. If you translate to many languages across many URLs simultaneously, expect occasional 429 errors for individual language calls, which are surfaced in the row-level
translations.<lang>.errorfield. - Translations of copyrighted content remain subject to the creator's rights. See Addendum G and H.