Loom Scraper avatar

Loom Scraper

Pricing

Pay per event

Go to Apify Store
Loom Scraper

Loom Scraper

Extract Loom video transcripts, metadata, and direct download URLs. All-in-one: transcript with timestamps + owner/view data + MP4 URL. Pure HTTP — fast and cheap. No API key needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Extract transcripts, metadata, and direct download URLs from Loom videos — no API key, no Loom account, no browser needed. Paste any public Loom share URL and get structured data in seconds.

What does Loom Scraper do?

Loom Scraper is an all-in-one data extraction tool for Loom, the async video messaging platform used by millions of B2B teams. It accesses Loom's public GraphQL API directly (pure HTTP — no Playwright, no headless browser) to extract:

  • 📝 Full transcripts with per-segment timestamps (startSeconds, endSeconds, text) and full concatenated plain text for LLM pipelines
  • 📊 Video metadata — title, description, duration, owner, view count, comment count, emoji count, thumbnail URL
  • 🎬 Direct MP4 download URLs (signed CDN URLs, download promptly)
  • 🔒 Works on all public Loom share URLs — no authentication required

Batch-process hundreds of Loom videos in a single run. All competitors are FREE and single-purpose — this actor is the only all-in-one Loom extractor on the Apify Store.

Who is Loom Scraper for?

📚 Documentation & Knowledge Teams

Content teams who receive Loom walkthroughs from engineers, designers, or sales reps and need to convert video narration into written docs, wikis, or SOPs. Instead of watching hours of video, extract all transcripts in bulk and feed them into your documentation workflow.

🤖 AI / LLM Developers

Builders creating RAG pipelines, AI meeting summarizers, or video-to-document converters. Loom Scraper gives you clean, timestamped transcript text ready to pass to GPT-4, Claude, or Gemini without manual copy-paste.

📋 Compliance & Archiving Teams

Legal, HR, and compliance teams that need to archive video communications for audit trails, e-discovery, or regulatory requirements. Extract and store transcript text and metadata for all shared Looms in your organization.

🔁 Workflow Automation Engineers

Engineers building CI/CD workflows that automatically process new Loom videos — trigger on new video URL → extract transcript → post to Slack, create Jira ticket, or update Confluence page.

📈 Sales & Marketing Analysts

Teams analyzing sales demo recordings or marketing explainer videos to extract talking points, review competitor content, or build training datasets from existing video libraries.

Why use Loom Scraper?

  • All-in-one — transcript + metadata + download URL in a single run (no competitor does all three)
  • Pure HTTP — no browser overhead, runs in 256 MB, blazing fast
  • No API key required — works with any public Loom share URL
  • Bulk processing — process hundreds of videos in one run
  • LLM-ready outputtranscriptText field gives plain text ready for AI pipelines
  • Timestamped segmentstranscript array has startSeconds/endSeconds/text for each caption block
  • Apify platform — schedule runs, export to CSV/JSON/Excel, connect to 5,000+ apps via Zapier/Make
  • API access — integrate into any workflow via REST API, Node.js, or Python SDK

What data can you extract?

FieldDescription
idLoom video ID (32-char hex)
urlFull share URL
titleVideo title
descriptionVideo description (if set)
privacyVisibility: public, private, etc.
durationSecondsDuration in seconds
durationMsDuration in milliseconds
createdAtISO 8601 creation timestamp
updatedAtISO 8601 last-updated timestamp
ownerIdOwner's Loom user ID
ownerNameOwner's display name
ownerEmailOwner's email (if publicly visible)
thumbnailUrlThumbnail image URL
viewCountTotal view count
distinctViewCountUnique viewer count
emojiCountTotal emoji reactions
commentCountTotal comment count
widthVideo width in pixels
heightVideo height in pixels
videoUrlSigned MP4 direct download URL
transcriptStatussuccess, unavailable, or null
transcriptArray of {startSeconds, endSeconds, text} segments
transcriptTextFull transcript as a single plain-text string
scrapedAtISO 8601 timestamp of extraction

How much does it cost to scrape Loom videos?

This actor uses pay-per-event (PPE) pricing — you pay only for what you extract.

TierPer video (video-extracted)Actor start (flat, once per run)
FREE$0.01035$0.02
BRONZE$0.009$0.02
SILVER$0.00702$0.02
GOLD$0.0054$0.02
PLATINUM$0.0036$0.02
DIAMOND$0.00252$0.02

Real-world cost examples (FREE tier, $0.01035/video + $0.02/run):

TaskVideosRunsApprox. Cost
Quick transcript check11~$0.030
Weekly team video archive201~$0.227
Bulk knowledge base build1001~$1.055

With $5 free credits, you can extract roughly 400–475 videos in batch runs (e.g. 4–5 runs of 100 videos each), or about 164 videos if running one video per run.

How to scrape Loom videos

  1. Go to the Loom Scraper page on Apify Store
  2. Click Try for free
  3. In the Videos section, add one or more Loom share URLs (e.g. https://www.loom.com/share/abc123...)
  4. Choose what to extract: transcript, metadata, and/or video download URL
  5. Click Save & Run
  6. Download results as JSON, CSV, or Excel — or connect directly to your app via API

Example input:

{
"videoUrls": [
"https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4",
"https://www.loom.com/share/0054b03fe58a40ea960ef2e48a333667"
],
"extractTranscript": true,
"extractMetadata": true,
"extractVideoUrl": true,
"includeFullTranscriptText": true
}

Metadata-only mode (fastest):

{
"videoUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"],
"extractTranscript": false,
"extractMetadata": true,
"extractVideoUrl": false
}

Input parameters

ParameterTypeDefaultDescription
videoUrlsArrayrequiredList of Loom share URLs to extract
extractTranscriptBooleantrueExtract timed transcript segments
extractMetadataBooleantrueExtract title, owner, views, duration, etc.
extractVideoUrlBooleantrueExtract signed MP4 download URL
includeFullTranscriptTextBooleantrueInclude full transcript as plain text string

Output examples

Single video with full transcript:

{
"id": "002508e86fde4232bb8de474eb5c65c4",
"url": "https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4",
"title": "Screen and engagement tips",
"description": null,
"privacy": "public",
"durationSeconds": 154,
"durationMs": 154000,
"createdAt": "2022-08-05T21:16:35.487Z",
"ownerName": "Miguel Acero",
"ownerEmail": "",
"thumbnailUrl": "https://cdn.loom.com/sessions/thumbnails/002508e86fde4232bb8de474eb5c65c4-1659734506699.jpg",
"viewCount": 94895,
"distinctViewCount": 88557,
"emojiCount": 5144,
"commentCount": 477,
"width": 1152,
"height": 720,
"videoUrl": "https://cdn.loom.com/sessions/transcoded/002508e86fde...mp4?Policy=...",
"transcriptStatus": "success",
"transcript": [
{ "startSeconds": 0.31, "endSeconds": 4.56, "text": "Hey, Loom community..." },
{ "startSeconds": 4.71, "endSeconds": 9.20, "text": "that supports agents..." }
],
"transcriptText": "Hey, Loom community... that supports agents...",
"scrapedAt": "2026-03-31T03:00:00.000Z"
}

Tips for best results

  • 🔗 Use share URLs — always use https://www.loom.com/share/VIDEO_ID format (32-character hex ID)
  • Start small — test with 1-2 URLs first to verify output before bulk runs
  • 📥 Download video URLs promptly — signed MP4 URLs expire within a few hours
  • 💾 Transcript-only mode — if you only need transcripts, disable extractVideoUrl for slightly faster runs
  • 🤖 LLM integration — use transcriptText for direct GPT/Claude input; use transcript array when you need timestamps
  • 📅 Schedule recurring runs — set up daily runs to archive new Looms automatically via Apify scheduling
  • 🔒 Private videos — this actor only works on public Loom videos. Password-protected or private videos will return null

Integrations

🗂️ Loom → Google Sheets (documentation pipeline)

Connect Loom Scraper to Google Sheets via Zapier. Every time you run the scraper, transcript text and metadata are automatically added as new rows — building a searchable video archive without manual copy-paste.

🤖 Loom → OpenAI/Claude (AI summarization)

Feed transcriptText output directly into a Make.com or n8n scenario that calls GPT-4 or Claude API. Generate summaries, action items, or key points from Loom walkthroughs automatically.

📬 Loom → Slack (team digest)

Schedule a daily Apify run on a batch of Loom URLs, then post a digest of titles + transcript excerpts to your team's Slack channel. Great for async standups and knowledge sharing.

🗄️ Loom → Notion/Confluence (knowledge base)

Use webhooks: when a Loom run completes, a webhook triggers a Make scenario that creates a Notion page or Confluence article with the transcript, title, and thumbnail — turning every Loom into a searchable text document.

♻️ Scheduled archiving workflow

Set up a scheduled Apify run (daily or weekly) with a list of Loom share URLs. Combined with Apify's dataset export, this builds an automatic rolling archive of all your shared Looms.

Using the Apify API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/loom-scraper').call({
videoUrls: [
'https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4',
],
extractTranscript: true,
extractMetadata: true,
extractVideoUrl: true,
includeFullTranscriptText: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].transcriptText);

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_API_TOKEN")
run = client.actor("automation-lab/loom-scraper").call(run_input={
"videoUrls": [
"https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4",
],
"extractTranscript": True,
"extractMetadata": True,
"extractVideoUrl": True,
"includeFullTranscriptText": True,
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(items[0]["transcriptText"])

cURL

curl -X POST https://api.apify.com/v2/acts/automation-lab~loom-scraper/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"videoUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"],
"extractTranscript": true,
"extractMetadata": true,
"extractVideoUrl": true
}'

Use with AI agents via MCP

Loom Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/loom-scraper to extract the transcript from https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4 and summarize the key points"
  • "Get all the metadata from this Loom video and tell me how many people watched it"
  • "Extract the transcripts from these 5 Loom videos and compile them into a single document"

Learn more in the Apify MCP documentation.

Loom Scraper only accesses publicly shared videos — videos that the owner explicitly made available via a share link. It does not bypass any authentication, access private workspaces, or circumvent any access controls.

Web scraping of publicly accessible content is generally legal in most jurisdictions. The hiQ v. LinkedIn ruling and similar cases have established that scraping publicly available data does not violate the Computer Fraud and Abuse Act (CFAA).

Always ensure you have permission to collect and use the video content and transcripts you extract. Respect intellectual property rights. This actor is intended for legitimate business use cases such as documentation, archiving, and AI pipeline development.

FAQ

How fast is the scraper? Very fast — pure HTTP, no browser. Each video takes 2-5 seconds to process (metadata + transcript). A batch of 100 videos typically completes in 3-5 minutes.

How much does it cost per video? On the FREE tier: ~$0.030 per video ($0.02 actor-start fee + $0.01035 per video). Lower tiers get cheaper per-video rates — down to $0.00252 on DIAMOND. See the pricing section above for full tier details.

Does it work without a Loom account? Yes. No account or API key required. The actor uses Loom's public GraphQL API which accepts anonymous requests for public videos.

Is this faster than competitor scrapers? Yes. Most competitor Loom scrapers use Playwright (headless browser), which adds 30-60 seconds of startup time and 512-1024 MB memory. This actor uses pure HTTP and runs in 256 MB in 2-5 seconds per video.

Why are some transcripts missing? Some Loom videos do not have transcripts — either because the owner disabled transcription, the video was recorded before Loom added AI transcription, or the transcription failed during processing. The transcriptStatus field will show unavailable in these cases. Metadata (title, duration, views, etc.) is still extracted.

Why is the videoUrl empty for some videos? Signed CDN URLs are generated fresh each run. If a video has restricted downloads (owner disabled downloading), videoUrl may return null. The downloadable property in the underlying Loom API controls this per video.

My video URL returned no results — what's wrong? Check that the URL is in the format https://www.loom.com/share/VIDEO_ID where VIDEO_ID is a 32-character hex string. Videos must be publicly shared (not password-protected or private). If a public video returns no results, the video may have been deleted.

Other video and media scrapers