# Facebook Transcript & Subtitle scraper (`alpha-scraper/facebook-transcript-subtitle-scraper`) Actor

Extract transcripts and subtitles from public Facebook videos with the Facebook Transcript & Subtitle Scraper. Process one or multiple video URLs or share links and get timestamped transcripts, text, one-line text, and video metadata in structured Apify dataset results.

- **URL**: https://apify.com/alpha-scraper/facebook-transcript-subtitle-scraper.md
- **Developed by:** [Alpha Scraper](https://apify.com/alpha-scraper) (community)
- **Categories:** Videos, Social media, Other
- **Features:** Limited permissions
- **Stats:** 29 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Facebook Transcript & Subtitle Scraper

The Facebook Transcript & Subtitle Scraper is an Apify Actor that extracts available transcript and subtitle data from public Facebook videos using Facebook video URLs or share links. It accepts one or multiple sources and returns structured transcript content with basic video metadata.

For each successful video, the Actor can return the URL, title, description, thumbnail URL, timestamped transcript events, transcript segments, and a single-line transcript. You can keep all transcript representations or select a specific format.

It is useful for content research, video analysis, transcript collection, dataset creation, and text-based workflows. Results are pushed to an Apify dataset.

Transcript availability depends on whether suitable English subtitle or caption data can be extracted from the supplied video.

### What Is the Facebook Transcript & Subtitle Scraper?

This Facebook Transcript & Subtitle Scraper turns available subtitle or caption information from Facebook videos into structured text data. Provide source URLs and collect the transcript in an Apify dataset.

The Actor accepts Facebook video URLs and share links, with multiple sources per run.

The transcript has three representations. `transcript` stores speech segments with start and end times. `transcript_text` stores those segments as text strings. `one_line_text` combines the extracted segments into one continuous string.

### Key Features

| Feature                     | Description                                                                      | User Benefit                                   |
| --------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------- |
| Facebook video input        | Accepts one or multiple Facebook video URLs or share links.                      | Process multiple sources in one run.           |
| English subtitle extraction | Looks for available English subtitle or caption data.                            | Collect supported English transcript text.     |
| Multiple output formats     | Supports all formats, timestamped transcript, transcript text, or one-line text. | Choose the structure needed for your workflow. |
| Video metadata              | Returns URL, title, description, and thumbnail URL.                              | Keep transcript data with source context.      |
| Timestamped events          | Transcript items contain start, end, and text.                                   | Relate spoken text to video timing.            |
| Dataset output              | Successful results are pushed to the Apify dataset.                              | Review and reuse structured records.           |

### What Data Can You Extract?

Video metadata includes `url`, `title`, `description`, and `thumbnail_url`.

The `transcript` field is an array of timestamped events. Each event includes `start`, `end`, and `text`, with times in seconds. `transcript_text` contains the segments as an array of strings, while `one_line_text` combines them into one string.

Depending on `outputFormat`, some transcript representations are removed from the final item. Metadata fields remain available.

### Why Use This Actor?

This Actor automates transcript collection for the Facebook video URLs you provide and stores successful results in a structured dataset.

Selectable formats reduce cleanup: timestamped data supports time-based review, while text-only formats suit search and analysis.

### Benefits

- Automates transcript and subtitle collection from supplied Facebook videos.
- Supports multiple video URLs in one run.
- Keeps video metadata with transcript information.
- Provides timestamped and text-only representations.
- Produces structured Apify dataset records.

### How to Use the Facebook Transcript & Subtitle Scraper

1. Add one or more Facebook video URLs or share links to `videoUrls`.
2. Select the required `outputFormat`.
3. Start the Actor run.
4. Review the resulting dataset items.
5. Use the selected format in your workflow.

For an initial test, use a public Facebook video with English subtitles or captions.

### Input

Input is a JSON object with `videoUrls` and `outputFormat`. Both are required in the supplied schema, and `all_type` is the default.

### Input Fields

| Field          | Type             | Required | Default    | Description                                                   |
| -------------- | ---------------- | -------- | ---------- | ------------------------------------------------------------- |
| `videoUrls`    | Array of objects | Yes      | —          | Facebook video URLs or share links. Each item contains `url`. |
| `outputFormat` | String           | Yes      | `all_type` | Controls which transcript representation is kept.             |

Supported `outputFormat` values:

- `all_type` — keeps `transcript`, `transcript_text`, and `one_line_text`.
- `transcript_timesup` — keeps `transcript`.
- `transcript_text` — keeps `transcript_text`.
- `one_line_text` — keeps `one_line_text`.

Each `videoUrls` item should be an object containing a `url` value. Entries without a usable URL value are skipped.

### Input Example

```json
{
  "videoUrls": [
    {
      "url": "https://www.facebook.com/watch?v=1152968962664538"
    },
    {
      "url": "https://www.facebook.com/share/v/17jekeg46H/"
    }
  ],
  "outputFormat": "all_type"
}
```

### Output

Each successfully processed video produces a dataset item. `all_type` keeps all transcript representations; other selections remove unrequested transcript fields.

A timestamped event looks like:

```json
{
  "start": 0.0,
  "end": 2.5,
  "text": "Example spoken text."
}
```

The timing values are seconds. `transcript_text` stores event text as an array, while `one_line_text` joins the segments into one string.

### Output Fields

| Field             | Description                                               |
| ----------------- | --------------------------------------------------------- |
| `url`             | Original Facebook video URL or share link.                |
| `title`           | Extracted video title, when available.                    |
| `description`     | Extracted video description, when available.              |
| `thumbnail_url`   | Extracted thumbnail URL, when available.                  |
| `transcript`      | Timestamped events containing `start`, `end`, and `text`. |
| `transcript_text` | Transcript event text as an array of strings.             |
| `one_line_text`   | Transcript text combined into one string.                 |

Transcript fields may be empty when no suitable English subtitle or caption data is available.

### Output Example

```json
{
  "url": "https://www.facebook.com/watch?v=1152968962664538",
  "title": "Example Facebook Video",
  "description": "Example video description.",
  "thumbnail_url": "https://example.com/thumbnail.jpg",
  "transcript": [
    {
      "start": 0.0,
      "end": 2.5,
      "text": "Welcome to this video."
    },
    {
      "start": 2.5,
      "end": 5.8,
      "text": "Today we will discuss the topic."
    }
  ],
  "transcript_text": [
    "Welcome to this video.",
    "Today we will discuss the topic."
  ],
  "one_line_text": "Welcome to this video. Today we will discuss the topic."
}
```

### Use Cases

- Content research — collect searchable text from public Facebook videos.
- Video analysis — review spoken content without manually copying each segment.
- Transcript datasets — build structured collections of Facebook video text.
- Media research — combine video metadata with extracted transcript content.
- Text processing — use transcript arrays or one-line text in downstream workflows.
- Timestamp review — inspect speech segments alongside video timing.
- Research automation — process multiple Facebook video sources in one run.

### Competitive Advantages

The Actor provides a focused Facebook-video transcript workflow: submit sources, choose a format, and receive structured dataset records.

Its practical strengths include multiple inputs, timestamped events, separate text representations, and basic video metadata in the same item.

### Pros and Cons

| Pros                                                         | Cons                                                                        |
| ------------------------------------------------------------ | --------------------------------------------------------------------------- |
| Supports one or multiple Facebook video URLs or share links. | Transcript extraction depends on suitable English subtitle or caption data. |
| Provides timestamped and text-based transcript formats.      | A source may be skipped when extraction fails.                              |
| Includes basic video metadata with transcript content.       | The schema does not document a maximum URL count.                           |
| Lets users choose the transcript representation.             | The language focus is English subtitle or caption data.                     |

### Comparison With Alternative Approaches

| Capability                     | This Actor | Manual / Typical Alternative         |
| ------------------------------ | ---------- | ------------------------------------ |
| Multiple Facebook video inputs | Supported  | Often handled one source at a time   |
| Structured transcript events   | Supported  | Usually requires manual formatting   |
| Metadata with transcript       | Supported  | May require separate collection      |
| Selectable transcript format   | Supported  | Often requires post-processing       |
| Apify dataset output           | Supported  | Requires a separate storage workflow |

This table describes workflow differences.

### Limitations

The Actor is designed for Facebook video URLs and share links. Its transcript logic looks for English subtitle or caption tracks; there is no input for choosing another language.

Not every public Facebook video will return transcript text. A source may have no suitable extractable English captions or may fail during processing, leaving transcript fields empty or causing the source to be skipped.

The schema does not define a maximum URL count; test a small sample first.

### Best Practices

- Test a small group of public Facebook videos before a larger batch.
- Use complete Facebook video URLs or share links in `videoUrls`.
- Choose `all_type` when you want all transcript representations.
- Choose `transcript_timesup` when timing is important.
- Choose `transcript_text` for transcript segments as an array.
- Choose `one_line_text` when a single text value is more convenient.
- Validate important extracted content before final analysis or publication.
- Recheck failed URLs and rerun when appropriate.

### Troubleshooting

**Invalid input:** Confirm that `videoUrls` is an array of objects containing `url`, and that `outputFormat` matches one of the four documented values.

**Empty transcript:** Check whether the public video has an English subtitle or caption track that can be extracted.

**Partial results:** Review each dataset item separately. Different sources in the same batch can have different outcomes.

**Missing metadata:** `title`, `description`, or `thumbnail_url` can be empty when the corresponding source value is unavailable.

**No results:** Ensure at least one usable video URL was supplied. An empty `videoUrls` list causes the Actor to stop without producing results.

### Frequently Asked Questions

**What does the Facebook Transcript & Subtitle Scraper do?**
It extracts available English subtitle or caption data from supplied public Facebook video URLs or share links and returns transcript information with basic video metadata.

**What input does the Facebook transcript scraper accept?**
It accepts `videoUrls`, an array of objects where each object contains a Facebook video URL or share link.

**Can I process multiple Facebook videos in one run?**
Yes. The `videoUrls` field accepts multiple source objects.

**Which transcript formats are available?**
The Actor supports `all_type`, `transcript_timesup`, `transcript_text`, and `one_line_text`.

**What is included in a timestamped transcript?**
Each event contains `start`, `end`, and `text`, with timing values expressed in seconds.

**Does the Actor support every language?**
The current logic searches for English subtitle or caption tracks. There is no documented language-selection input for other languages.

**What happens if a video has no usable transcript?**
Transcript fields may be empty, or the source may be skipped if it cannot be extracted successfully.

**Can I get video metadata with the transcript?**
Yes. Successful items include URL, title, description, and thumbnail URL fields when available.

**Which format is useful for text analysis?**
`transcript_text` provides an array of segments, while `one_line_text` combines them into a single string.

**Is this Facebook transcript scraper suitable for batch research?**
Yes. Multiple Facebook video URLs or share links can be submitted in a single run.

### NLP Keywords

- Facebook transcript scraper
- Facebook subtitle scraper
- Facebook video transcript extraction
- Facebook video subtitles
- Facebook caption extraction
- Facebook video data extraction
- public Facebook video scraper
- Facebook video text extraction
- Facebook transcript data
- timestamped Facebook transcript
- Facebook video speech text
- English Facebook subtitles
- Facebook video metadata
- Facebook video transcript dataset
- Facebook content research
- Facebook video analysis
- structured transcript data
- subtitle text extraction
- video transcript automation
- Apify Facebook scraper

### Related Keywords

- scrape Facebook video transcript
- extract subtitles from Facebook videos
- Facebook video transcript extractor
- Facebook caption scraper
- collect Facebook video captions
- Facebook video text scraper
- scrape public Facebook videos
- Facebook subtitle data extraction
- Facebook video research tool
- transcript dataset from Facebook
- Facebook video content scraper
- extract Facebook video text
- Facebook video metadata scraper
- timestamped video transcript
- Facebook video transcript automation
- bulk Facebook transcript scraping
- Facebook video caption extraction
- public video transcript collection
- Apify Facebook video scraper
- Facebook video transcript collection

### Final Overview

The Facebook Transcript & Subtitle Scraper provides a focused way to collect available transcript and subtitle information from public Facebook videos through video URLs or share links. It supports multiple inputs, selectable transcript formats, timestamped events, text representations, and basic video metadata.

The workflow is straightforward: provide Facebook video sources, select the format, run the Actor, and review the Apify dataset. Because transcript availability depends on extractable English subtitle or caption data, testing representative URLs before a larger collection is recommended.

*Contact me:* <Alphascraper69@gmail.com>

# Actor input Schema

## `videoUrls` (type: `array`):

List of one or more Facebook video URLs or share links to scrape Transcript & Subtitle from

## `outputFormat` (type: `string`):

Select the format of the transcript in the output dataset.

## Actor input object example

```json
{
  "videoUrls": [
    {
      "url": "https://www.facebook.com/watch?v=1152968962664538"
    },
    {
      "url": "https://www.facebook.com/share/v/17jekeg46H/"
    },
    {
      "url": "https://www.facebook.com/100044280796927/videos/4141502542759187"
    }
  ],
  "outputFormat": "all_type"
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "videoUrls": [
        {
            "url": "https://www.facebook.com/watch?v=1152968962664538"
        },
        {
            "url": "https://www.facebook.com/share/v/17jekeg46H/"
        },
        {
            "url": "https://www.facebook.com/100044280796927/videos/4141502542759187"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("alpha-scraper/facebook-transcript-subtitle-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "videoUrls": [
        { "url": "https://www.facebook.com/watch?v=1152968962664538" },
        { "url": "https://www.facebook.com/share/v/17jekeg46H/" },
        { "url": "https://www.facebook.com/100044280796927/videos/4141502542759187" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("alpha-scraper/facebook-transcript-subtitle-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "videoUrls": [
    {
      "url": "https://www.facebook.com/watch?v=1152968962664538"
    },
    {
      "url": "https://www.facebook.com/share/v/17jekeg46H/"
    },
    {
      "url": "https://www.facebook.com/100044280796927/videos/4141502542759187"
    }
  ]
}' |
apify call alpha-scraper/facebook-transcript-subtitle-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alpha-scraper/facebook-transcript-subtitle-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hMNe1QYDOtcTc95qI/builds/DsxYK23m1mydLddxd/openapi.json
