# Loom Transcript Scraper: Captions, Speakers, SRT and VTT Export (`getascraper/loom-transcript-scraper`) Actor

Loom transcript scraper for public share, embed and iframe links or video IDs. Get text, timestamped segments, speaker labels, SRT, VTT and sentence lines plus 40+ metadata fields. Bulk URLs, scheduled change monitoring with NEW, UPDATED, REMOVED flags. No login needed.

- **URL**: https://apify.com/getascraper/loom-transcript-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** AI, Automation, Videos
- **Features:** Limited permissions
- **Stats:** 32 total users, 9 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 4.00 out of 5 stars

## Pricing

from $0.66 / 1,000 loom video scrape results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## 🎥 Loom Transcript Scraper: Captions, Speakers, SRT and VTT Export

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="2" style="padding:10px 14px;background:#1E4FA3;border:none;border-top:3px solid #1E4FA3;border-left:1px solid #C9D7F2;border-right:1px solid #C9D7F2;color:#FFFFFF;border-radius:10px 10px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">LOOM CONTENT SUITE</span>
<span style="color:#FFFFFF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Turn public Loom videos into transcripts, downloadable media references, and repeatable content workflows.</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:none;border-left:1px solid #C9D7F2;border-bottom:1px solid #C9D7F2;vertical-align:top;width:50.0%;background:#E9EEF9;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-b9USr4ZlgZbNUGyfH-4v56WiDQiR-8022c507-8920-423f-9330-63a14764535d.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/loom-transcript-scraper" style="color:#1E4FA3;text-decoration:none;font-weight:700;font-size:13px">Loom Transcript Scraper</a></span><br>
<span style="color:#1E4FA3;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #C9D7F2;border-right:1px solid #C9D7F2;border-bottom:1px solid #C9D7F2;vertical-align:top;width:50.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-w7wqtN5UptdQYjuZf-zu9lDEV0qu-jNDbFabbVxMhnQNb4-actor-b9USr4ZlgZbNUGyfH-4v56WiDQiR-8022c507-89" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/loom-video-downloader" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Loom Video Downloader</a></span><br>
<span style="color:#57534E;font-size:11px">MP4 retrieval and transcript files</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#E9EEF9;border:1px solid #C9D7F2;border-top:none;color:#1C1917"><span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Turn public Loom recordings into searchable, timestamped text.</span><br><span style="font-size:15px;color:#57534E;line-height:1.6">Paste a batch of links and collect native captions, timestamps, speaker labels, 40+ public metadata fields, and optional NEW, UPDATED, UNCHANGED, or REMOVED change events, without rewatching a single video.</span></td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7F2;vertical-align:top;color:#1C1917;border-top:none;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#1E4FA3">Read captions</span><br>
<span style="font-size:12px;color:#57534E">Export text, timestamps, sentences, SRT, or VTT in bulk.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7F2;border-left:none;vertical-align:top;color:#1C1917;border-top:none">
<span style="font-size:15px;font-weight:800;color:#1E4FA3">Know who spoke</span><br>
<span style="font-size:12px;color:#57534E">Speaker labels and speaker turns whenever Loom supplies them.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7F2;border-left:none;vertical-align:top;color:#1C1917;border-top:none">
<span style="font-size:15px;font-weight:800;color:#1E4FA3">Discover safely</span><br>
<span style="font-size:12px;color:#57534E">Find visible public Loom links from a supplied page.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7F2;border-left:none;vertical-align:top;color:#1C1917;border-top:none;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#1E4FA3">Monitor changes</span><br>
<span style="font-size:12px;color:#57534E">Track new, updated, unchanged, and confirmed removed videos.</span>
</td>
</tr>
</table>

### 🔍 What does this Actor do?

Give it a public Loom share link, embed link, iframe snippet, video ID, or a page to scan for visible Loom links. It returns the native captions Loom already publishes, as plain text, timestamped segments, sentence-level lines, speaker turns, SRT, or VTT, plus over 40 public metadata fields covering ownership, folder, privacy, and access. Paste one link or hundreds in the same run.

Speaker labels come straight from Loom's own captions and appear only when Loom supplies them, so a single-speaker walkthrough shows one speaker and a meeting recording shows each one.

Turn on a named monitor and every repeat run labels each video NEW, UPDATED, UNCHANGED, or REMOVED, so a scheduled check tells you exactly what changed since last time instead of a fresh wall of text to reread.

Everything stays within Loom's public share pages. Login, password, and workspace controls are never bypassed, and a field Loom does not publish is left out rather than guessed.

### 💡 Why use it?

- **I manage customer education** and need public Loom walkthroughs in a searchable help centre.
- **I run content operations** and want captions ready for articles, notes, or research.
- **I maintain a knowledge base** and need scheduled checks for new or changed public videos.
- **I build internal tools** and need source-backed transcript rows without manual copying.

### 🚀 How to use it

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td width="33%" style="width:33.333%;padding:14px;background:#E9EEF9;border:1px solid #C9D7F2;border-radius:10px 0 0 10px;color:#1C1917"><span style="color:#1E4FA3;font-size:12px;font-weight:800;letter-spacing:1px">STEP 1</span><br><strong style="color:#1C1917">Add public Loom links</strong><br><span style="color:#44403C">Paste share or embed URLs, iframe snippets, or video IDs.</span></td>
<td width="33%" style="width:33.333%;padding:14px;background:#FFFFFF;border:1px solid #C9D7F2;border-left:none;color:#1C1917"><span style="color:#1E4FA3;font-size:12px;font-weight:800;letter-spacing:1px">STEP 2</span><br><strong style="color:#1C1917">Pick transcript formats</strong><br><span style="color:#44403C">Choose text, segments, subtitles, and optional public engagement data.</span></td>
<td width="33%" style="width:33.333%;padding:14px;background:#E9EEF9;border:1px solid #C9D7F2;border-left:none;border-radius:0 10px 10px 0;color:#1C1917"><span style="color:#1E4FA3;font-size:12px;font-weight:800;letter-spacing:1px">STEP 3</span><br><strong style="color:#1C1917">Export or schedule</strong><br><span style="color:#44403C">Download your dataset, or turn on a named monitor to track changes.</span></td>
</tr>
</table>

### 🧾 Input

| Field | Type | Required | Description |
| --- | --- | :---: | --- |
| `startUrls` | array of URLs | Yes | Public Loom share or embed URLs, iframe snippets, or pages for visible-link discovery. |
| `discoverFromPages` | boolean | No | Discover only visible public share or embed links from supplied Loom pages. |
| `urls`, `videoUrls` | array of text | No | Extra share links, embed links, iframe snippets, or bare 32-character video IDs, one per line. |
| `transcriptFormats` | array of strings | No | Choose `txt`, `segments`, `srt`, `vtt`, `turns` (speaker turns), or `sentences` (sentence-level lines) when captions are available. |
| `skipVideosWithoutTranscript` | boolean | No | Exclude videos that do not have native captions. |
| `includeEngagementStats` | boolean | No | Include public view, viewer, and comment counts when available. |
| `includeVideoDownloadUrl` | boolean | No | Include a temporary MP4 link when Loom provides one. |
| `maxVideos` | integer | No | Maximum videos to process. Use `0` for no limit. Free-plan runs are limited to 25 videos. |
| `monitorMode` | boolean | No | Label successful results as new, updated, or unchanged in a saved monitor. |
| `monitorName` | string | No | Stable name for an independent monitor. |
| `requestConcurrency` | integer | No | Number of videos to process in parallel. |
| `proxyConfiguration` | object | No | Network connection settings. |

### 📦 Output example

Native captions and public metadata vary by video. Missing values remain absent, and protected or password-gated videos are not bypassed.

```json
{
    "loomId": "public-video-id",
    "title": "Published Loom title",
    "transcriptStatus": "success",
    "segmentCount": 53,
    "speakerCount": 1,
    "transcript": "Hey, Chanel here from the Loom team...",
    "url": "https://www.loom.com/share/public-video-id",
    "scrapedAt": "2026-08-10T00:00:00.000Z"
}
```

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `loomId`, `title`, `url` | text and URL | Loom video identity and public source link. |
| `id`, `videoUrl`, `sourceUrl`, `inputId`, `retrievedAt` | text, URL, and date | Compatibility aliases, source provenance, input correlation, and retrieval time. |
| `transcript`, `transcriptSegments`, `transcriptSRT`, `transcriptVTT` | text and array | Native transcript content in the requested formats, when available. |
| `speakers`, `speakerCount`, `speakerTurns` | array and integer | Speaker labels and merged speaker turns, only when Loom labels speakers. |
| `transcriptSentences` | array | Sentence-level lines with start times and speaker, when requested. |
| `chapters` | array | Creator-added chapters exactly as Loom publishes them, when present. |
| `transcriptStatus`, `transcriptAvailability`, `transcriptionStatus`, `captionStatus`, `transcriptLanguage`, `captionLanguage`, `segmentCount` | text and integer | Native caption and transcript availability details. |
| `creatorName`, `description`, `thumbnailUrl`, `durationSeconds` | text, URL, and integer | Public video context. |
| `privacy`, `folderId`, `folderName`, `isArchived`, `isMeetingRecording`, `calendarMeetingGuid` | text, boolean, and ID | Public folder, visibility, archive, and meeting context. |
| `requiresPermission`, `requiresPassword`, `isProtected`, `isTeamShared`, `downloadsEnabled`, `downloadable`, `downloadableBy` | boolean and text | Public access and download markers. |
| `ownerId`, `width`, `height`, `durationISO8601` | text and number | Public creator, dimensions, and duration context when supplied. |
| `createdAt`, `uploadDate` | date and text | Public recording and upload dates. |
| `viewCount`, `distinctViewCount`, `commentCount` | integer | Public engagement data when requested and available. |
| `videoDownloadUrl`, `videoDownloadUrlExpiresAt` | URL and date | Temporary download reference when Loom makes one available. |
| `mediaVariants`, `captionsUrl`, `captionsUrlExpiresAt`, `transcriptUrl`, `transcriptUrlExpiresAt` | object, URL, and date | Public media and caption references, with expiry when available. |
| `changeType`, `changedFields`, `firstSeen`, `lastSeen`, `transcriptHash` | text, array, and date | Named-monitor comparison result and transcript fingerprint. |
| `status`, `errorCode`, `scrapedAt` | text and date | Retrieval outcome and collection time. |

### 💰 Pricing

Pricing is pay per result: each video saved to your dataset is one result, and volume tiers lower the per-result rate on higher Apify plans. Retrievals that fail are not saved and cost nothing, and empty runs cost nothing. There are no subscriptions and no login to set up.

### ⭐ Enjoying Loom Transcript Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#E9EEF9;border:1px solid #C9D7F2;border-left:5px solid #1E4FA3;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run just turned a public Loom recording into text you can search.</span><br>
<span style="font-size:14px;color:#44403C">A 5-star rating takes 10 seconds and helps other teams find their Loom knowledge base. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1E4FA3;border:1px solid #1E4FA3;border-left:5px solid #1E4FA3;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/loom-transcript-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🔧 Tips

- Start with one video and check the transcript formats before turning on `monitorMode` for a schedule.
- Give each recurring monitor its own `monitorName` so separate feeds do not share a baseline.
- Turn on `discoverFromPages` to pull every visible public Loom link off a page instead of pasting each one.
- Request only the formats you need in `transcriptFormats` to keep rows small for downstream tools.
- Add `sentences` when you feed transcripts to an AI tool: sentence-level lines are cleaner than caption fragments.
- Videos that could not be retrieved are listed in the run's `FAILED_VIDEOS` record so you can retry just those.
- Use `skipVideosWithoutTranscript` to keep a feed focused on videos you can actually search.

### ❓ FAQ

#### Can this Actor transcribe a Loom video with no captions?

No. It returns native captions Loom makes public. Videos without them can still return available metadata unless you choose to skip them.

#### What makes this different from a basic Loom transcript tool?

Most tools return only plain text. This one adds speaker labels, sentence-level lines, SRT and VTT in the same run, bulk link lists, and optional change tracking across runs, plus over 40 public metadata fields, so one dataset can support content, compliance, and knowledge base workflows at once.

#### Does it show who is speaking?

Yes, whenever Loom labels speakers in its captions. Each segment carries a speaker label and you can request merged speaker turns. Names are not invented: you get the label Loom supplies.

#### Can I monitor a public Loom library?

Yes. Use the same monitor name on scheduled runs. Failed requests do not erase prior monitoring state.

#### Does it access private Loom videos?

No. It does not bypass login, password, permission, or workspace controls.

#### Why did my download link expire?

Loom download links are temporary. Run the Actor again to request a fresh link when one is publicly available.

### 🛡️ Limits and data boundaries

This Actor only reads captions and metadata Loom already publishes on a public share page. It does not log in, guess passwords, bypass workspace permissions, or access private or restricted videos. A video with no native captions returns available metadata instead of a fabricated transcript.

Signed download and caption links expire on Loom's own schedule. A field the source does not publish is left out of the row rather than filled with a placeholder.

### 🔗 Other actors

- [Loom Video Downloader: MP4 URL, Transcript, Captions & Metadata](https://apify.com/getascraper/loom-video-downloader) ↗ - Save public Loom MP4 files and captions when available.
- [Fathom Transcript Exporter: No Login, Public Share Link to Data](https://apify.com/getascraper/fathom-transcript-exporter) ↗ - Export transcripts from public Fathom share links.
- [Streamable Video Downloader: MP4 Links & Metadata](https://apify.com/getascraper/streamable-video-downloader) ↗ - Resolve downloadable links from public Streamable videos.
- [Kick Downloader: Stream Archive for Clips & VODs as MP4 Files](https://apify.com/getascraper/kick-video-downloader) ↗ - Save public Kick clips and VODs as MP4.
- [Mixcloud Scraper: Show & Creator Monitor](https://apify.com/getascraper/mixcloud-media-monitor) ↗ - Track public Mixcloud shows and creator uploads.
- [Google Lens OCR API: Image to Text with Word Boxes and Standby](https://apify.com/getascraper/google-lens-ocr) ↗ - Extract visible text from images on demand.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/loom-transcript-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

Public Loom share URLs, embed URLs, or iframe snippets. Paste as many as you need. Bare video IDs go in the Video URLs or IDs field below. When discovery is enabled, a public Loom page can contribute only the share or embed links it visibly contains.

## `discoverFromPages` (type: `boolean`):

When enabled, a supplied public Loom page that is not itself a video is read only for visible public share or embed links. It does not guess folder membership or bypass access controls.

## `urls` (type: `array`):

Extra Loom share links, embed links, iframe snippets, or bare 32-character video IDs, one per line. Combined with Loom Video URLs above.

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

Compatibility alias for Loom Video URLs, useful for generic video workflows.

## `transcriptFormats` (type: `array`):

Formats to include in the output. Plain text (txt) and timestamped segments (segments) are on by default. Add srt or vtt for subtitle files, turns for speaker turns, or sentences for sentence-level lines with start times.

## `skipVideosWithoutTranscript` (type: `boolean`):

When enabled, videos with no native captions are excluded from the dataset entirely. By default, they are included with metadata only and a transcriptStatus of unavailable.

## `includeEngagementStats` (type: `boolean`):

Include view count, unique viewer count, comment count, and emoji reactions in the output.

## `includeVideoDownloadUrl` (type: `boolean`):

Include a direct MP4 download link when one is available from the video page. Download links are temporary and expire after a short period.

## `maxVideos` (type: `integer`):

Maximum number of videos to process per run. Set to 0 for no limit. Free-plan runs are limited to 25 videos per run.

## `monitorMode` (type: `boolean`):

Persist a named snapshot and label each successful result as NEW, UPDATED, or UNCHANGED. A source HTTP 404 is labeled REMOVED only when Loom explicitly returns that response. Failed requests never erase prior state.

## `monitorName` (type: `string`):

Optional stable name for an independent saved monitor. Leave blank to use the default monitor.

## `requestConcurrency` (type: `integer`):

Number of videos to fetch in parallel. Increase for faster runs on large batches. Decrease if you see rate-limit errors.

## `proxyConfiguration` (type: `object`):

Datacenter proxies work well for Loom and are included by default. Switch to Residential only for very high-volume runs where you see blocks.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.loom.com/share/912e89a68ccc42c5ab5096fec7cd63d6"
    }
  ],
  "discoverFromPages": false,
  "transcriptFormats": [
    "txt",
    "segments"
  ],
  "skipVideosWithoutTranscript": false,
  "includeEngagementStats": true,
  "includeVideoDownloadUrl": true,
  "maxVideos": 0,
  "monitorMode": false,
  "requestConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `files` (type: `string`):

No description

## `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 = {
    "startUrls": [
        {
            "url": "https://www.loom.com/share/912e89a68ccc42c5ab5096fec7cd63d6"
        }
    ],
    "discoverFromPages": false,
    "transcriptFormats": [
        "txt",
        "segments"
    ],
    "skipVideosWithoutTranscript": false,
    "includeEngagementStats": true,
    "includeVideoDownloadUrl": true,
    "maxVideos": 0,
    "monitorMode": false,
    "requestConcurrency": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/loom-transcript-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 = {
    "startUrls": [{ "url": "https://www.loom.com/share/912e89a68ccc42c5ab5096fec7cd63d6" }],
    "discoverFromPages": False,
    "transcriptFormats": [
        "txt",
        "segments",
    ],
    "skipVideosWithoutTranscript": False,
    "includeEngagementStats": True,
    "includeVideoDownloadUrl": True,
    "maxVideos": 0,
    "monitorMode": False,
    "requestConcurrency": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/loom-transcript-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 '{
  "startUrls": [
    {
      "url": "https://www.loom.com/share/912e89a68ccc42c5ab5096fec7cd63d6"
    }
  ],
  "discoverFromPages": false,
  "transcriptFormats": [
    "txt",
    "segments"
  ],
  "skipVideosWithoutTranscript": false,
  "includeEngagementStats": true,
  "includeVideoDownloadUrl": true,
  "maxVideos": 0,
  "monitorMode": false,
  "requestConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/loom-transcript-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/loom-transcript-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/b9USr4ZlgZbNUGyfH/builds/6Oodb0YVfEahSvgHr/openapi.json
