Loom Scraper
Pricing
Pay per event
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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 output —
transcriptTextfield gives plain text ready for AI pipelines - ✅ Timestamped segments —
transcriptarray hasstartSeconds/endSeconds/textfor 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?
| Field | Description |
|---|---|
id | Loom video ID (32-char hex) |
url | Full share URL |
title | Video title |
description | Video description (if set) |
privacy | Visibility: public, private, etc. |
durationSeconds | Duration in seconds |
durationMs | Duration in milliseconds |
createdAt | ISO 8601 creation timestamp |
updatedAt | ISO 8601 last-updated timestamp |
ownerId | Owner's Loom user ID |
ownerName | Owner's display name |
ownerEmail | Owner's email (if publicly visible) |
thumbnailUrl | Thumbnail image URL |
viewCount | Total view count |
distinctViewCount | Unique viewer count |
emojiCount | Total emoji reactions |
commentCount | Total comment count |
width | Video width in pixels |
height | Video height in pixels |
videoUrl | Signed MP4 direct download URL |
transcriptStatus | success, unavailable, or null |
transcript | Array of {startSeconds, endSeconds, text} segments |
transcriptText | Full transcript as a single plain-text string |
scrapedAt | ISO 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.
| Tier | Per 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):
| Task | Videos | Runs | Approx. Cost |
|---|---|---|---|
| Quick transcript check | 1 | 1 | ~$0.030 |
| Weekly team video archive | 20 | 1 | ~$0.227 |
| Bulk knowledge base build | 100 | 1 | ~$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
- Go to the Loom Scraper page on Apify Store
- Click Try for free
- In the Videos section, add one or more Loom share URLs (e.g.
https://www.loom.com/share/abc123...) - Choose what to extract: transcript, metadata, and/or video download URL
- Click Save & Run
- 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
| Parameter | Type | Default | Description |
|---|---|---|---|
videoUrls | Array | required | List of Loom share URLs to extract |
extractTranscript | Boolean | true | Extract timed transcript segments |
extractMetadata | Boolean | true | Extract title, owner, views, duration, etc. |
extractVideoUrl | Boolean | true | Extract signed MP4 download URL |
includeFullTranscriptText | Boolean | true | Include 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_IDformat (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
extractVideoUrlfor slightly faster runs - 🤖 LLM integration — use
transcriptTextfor direct GPT/Claude input; usetranscriptarray 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 ApifyClientclient = 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.
Is it legal to scrape Loom?
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
- YouTube Scraper — scrape YouTube videos, channels, comments
- Vimeo Scraper — extract Vimeo video data and metadata
- TikTok Scraper — scrape TikTok profiles, videos, hashtags
- Instagram Scraper — extract Instagram posts, reels, profiles