Facebook Reel Transcript & Caption Scraper [NO LOGIN] ✅ avatar

Facebook Reel Transcript & Caption Scraper [NO LOGIN] ✅

Pricing

$5.00 / 1,000 results

Go to Apify Store
Facebook Reel Transcript & Caption Scraper [NO LOGIN] ✅

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

Unseen User

Maintained by Community

Actor stats

7

Bookmarked

57

Total users

16

Monthly active users

7 hours ago

Last modified

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

  1. Click Try for free.
  2. Paste a Facebook reel URL (or a Facebook page URL, or a mix). Example: https://www.facebook.com/reel/1114235920664408.
  3. Click Start.
  4. 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

PropertyValue
Public Name (Apify Title)📝 Facebook Video & Reel Transcript Scraper (No Login)
Apify SlugUnseenUser/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 ProviderScrape Creators
API Base URLhttps://api.scrapecreators.com
Endpoints Wrapped2 endpoints (transcript core + optional post-context)
Endpoints List/v1/facebook/post/transcript (core) + /v1/facebook/post (optional context)
Authenticationx-api-key header -> environment variable SCRAPECREATORS_API_KEY
API Cost1 credit per request; one URL = one transcript call; post-context billed separately
Effective DateMay 5, 2026
Keywordsfacebook transcript scraper, reel captions, video to text, short form transcription, caption extraction, no login facebook

Endpoints Wrapped

EndpointPurposeCreditsOfficial Documentation
GET /v1/facebook/post/transcriptCaption text for a public reel / short video (under 2 minutes)1 credit / requesthttps://docs.scrapecreators.com (Facebook section)
GET /v1/facebook/postOptional post context (author, view count, description, length)1 credit / requesthttps://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

  1. Click Try for free on this Actor's page
  2. Enter the required identifier (see Inputs Overview below)
  3. Run the Actor
  4. Download results as JSON, CSV, or XLSX, or pull via Apify API

⚙️ Inputs Overview

InputTypeRequiredDescriptionExample/Allowed Values
startUrlsarray of stringsOne or more public Facebook video / reel URLs (under 2 minutes)https://www.facebook.com/reel/1114235920664408
includePostContextboolean⚠️ COST WARNING: billed add-on. Adds author, view count, description and creation time via the post endpoint.false
skipOverTwoMinutesbooleanIf post context is on, skip videos over 2 minutes before calling transcript to avoid empty results. Default truetrue

💰 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-key header
  • 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-check
Behavior:
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 for
videos 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 row
with 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

HeaderValueRequired
x-api-keyYour Scrape Creators key✅ Required

Query Parameters

ParameterTypeRequiredDescriptionExample
urlstringPublic 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.

TierTriggerSuggested Apify PriceRationale
Transcript returneda successful transcript only$3/1kBetween the cheap cross-platform anchor and the $10 STT tools; caption-only is lighter
Post context (add-on)includePostContext$5/1kOnly 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

  1. Never log the API key in error messages or run logs
  2. Emit failed requests as dataset rows with error field - do NOT crash the whole run
  3. Include _metadata field per row: { fetched_at, video_url, transcript_available, post_context_fetched }
  4. For batch mode (multiple URLs per run), process sequentially with per-URL error isolation
  5. 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.
  6. One URL = one transcript call - no pagination.
  7. Graceful empty handling + NO billing for empty / over-2-minute results (this is a hard rule).
  8. Optional pre-check: when includePostContext and skipOverTwoMinutes are on, read length_in_second from /post and skip long videos before the transcript call.
  9. Convenience fields: emit transcript (raw), plus transcriptText (spaces) and lines[] (array) - light post-process, no extra API cost.
  10. 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:

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.

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

VersionDateSummary
1.0May 5, 2026Initial publication
2.0May 5, 2026Hardened (over-broad - treated User as data broker)
3.0May 5, 2026Architecturally accurate - Publisher as software vendor
4.0May 5, 2026Anonymous 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

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-key header from SCRAPECREATORS_API_KEY env 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 error field - 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 skipOverTwoMinutes pre-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=true with skipOverTwoMinutes - long video is skipped before the transcript call
  • Verify transcript, transcriptText and lines[] 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 + replies
  • UnseenUser/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.


Limitations

  • 2-minute cap. The upstream transcript endpoint only processes videos under approximately 2 minutes. Videos over this cap return transcriptAvailable: false with a note field 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: true to see post_context.length_in_second and 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_context with 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 the run_summary enrichment 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_code on failure rows classifies the failure (network, timeout, rate limit, auth, upstream 5xx / 4xx).
  • Dataset views: Overview (compact) and Full 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 Actors section 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.

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 Scraper
  • UnseenUser/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 equivalent
  • UnseenUser/igscraping - Instagram Profile Scraper
  • UnseenUser/Youtube-all-in-one-scraper - YouTube Transcript Scraper
  • UnseenUser/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

  1. Get an OpenAI API key at https://platform.openai.com/api-keys. The key must start with sk-.
  2. 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).
  3. Paste your OpenAI API key into the OpenAI API key field (marked as a Secret; not logged).
  4. 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-mini for a typical Facebook reel caption (~500 characters).
  • This Actor emits a translation-charged pay-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: false have translations: null.
  • Language quality varies. gpt-4o-mini is 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>.error field.
  • Translations of copyrighted content remain subject to the creator's rights. See Addendum G and H.