Loom Transcript Scraper: API-fast Metadata & Text
Pricing
from $0.66 / 1,000 loom video scrape results
Loom Transcript Scraper: API-fast Metadata & Text
Extract Loom video metadata and full transcripts (plain text, VTT, SRT) at scale. HTTP-only, API-fast, no browser overhead. Drop-in for Zendesk, HubSpot, Slack. Get clean text in seconds. Skip alternatives with high compute cost. $0.01 per video.
Pricing
from $0.66 / 1,000 loom video scrape results
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
6
Monthly active users
5 days ago
Last modified
Categories
Share
Get Loom video transcripts, engagement stats, and full metadata ready for your spreadsheet in under 60 seconds.
Point this scraper at any public Loom share URL. It returns the plain-text transcript, timestamped caption segments, SRT and VTT subtitle files, view counts, comment counts, thumbnail, creator details, and the video download link. No login required.
What does this actor do?
This actor reads public Loom videos and returns everything stored on the page: the native transcript in four formats, rich metadata (title, description, privacy status, thumbnail), and engagement data (views, unique viewers, comments, emoji reactions). It runs fast with no browser, no login, and no AI transcription delays.
If a video has no native transcript, the transcriptStatus field is set to unavailable and the run still completes with all available metadata.
Who uses this?
- I am a customer success manager recording Loom walkthroughs for our clients. I need transcripts to publish as Zendesk help articles without paying a transcription service per video.
- I am a content marketer repurposing 50 product demo Looms into SEO blog posts. I need clean plain text I can paste into my CMS without manually watching each video.
- I am a compliance officer auditing our internal Loom library to confirm every customer-facing video has an accessible caption file (SRT or VTT) before our WCAG audit.
- I am an AI engineer building a Loom-to-knowledge-base pipeline. I need timestamped transcript segments I can chunk and embed into a vector database for semantic search.
- I am a product manager archiving sprint review Looms. I need full metadata (creator, date, view count, description) alongside the transcript so I can cross-reference with Jira tickets.
How to use
- Create a free account at apify.com if you do not have one.
- Open this actor and click Try for free.
- Paste one or more public Loom share URLs into the Loom video URLs field.
- Choose which transcript formats to include (plain text and segments are on by default).
- Click Save & Run.
- Download results from the Output tab in JSON, CSV, or Excel.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | Yes | Public Loom share URLs or bare 32-character video IDs. |
transcriptFormats | array | No | Formats to include: txt, segments, srt, vtt. Defaults to ["txt", "segments"]. |
skipVideosWithoutTranscript | boolean | No | Skip videos with no native captions entirely. Default: false. |
includeEngagementStats | boolean | No | Include view count, unique viewers, comments, and emoji reactions. Default: true. |
includeVideoDownloadUrl | boolean | No | Include a direct MP4 download link when available. Default: true. |
maxVideos | integer | No | Hard cap on videos processed per run. Set to 0 for no limit. |
requestConcurrency | integer | No | Number of videos to fetch in parallel. Default: 5. Decrease if you see rate-limit errors. |
proxyConfiguration | proxy | No | Proxy settings. Datacenter proxies work well for Loom. Default: Apify datacenter. |
Data table
| Field | Type | Description |
|---|---|---|
loomId | string | Unique 32-character Loom video ID. |
url | string | Public Loom share URL. |
title | string | Video title as set by the creator. |
description | string | Creator-written video description. |
privacy | string | Visibility setting: public, team, or private. |
thumbnailUrl | string | Video thumbnail image URL. |
creatorName | string | Display name of the video creator. |
ownerId | string | Creator's Loom user ID. |
ownerEmail | string | Creator's email address, when publicly visible. |
viewCount | integer | Total view count. |
distinctViewCount | integer | Unique viewer count. |
commentCount | integer | Number of comments. |
emojiCount | integer | Number of emoji reactions. |
width | integer | Video width in pixels. |
height | integer | Video height in pixels. |
durationSeconds | number | Video duration in seconds. |
durationISO8601 | string | Duration in ISO 8601 format (e.g. PT5M55S). |
createdAt | string | ISO 8601 timestamp when the video was recorded. |
updatedAt | string | ISO 8601 timestamp of the last update. |
uploadDate | string | Publication date in YYYY-MM-DD format. |
videoDownloadUrl | string | MP4 download URL from page metadata when available. Signed URLs expire after a short period. |
transcriptStatus | string | Whether a native transcript was found: success or unavailable. |
segmentCount | integer | Number of timed caption segments. |
transcript | string | Full transcript as plain text. Included when transcriptFormats contains txt. |
transcriptSegments | array | Timestamped array of {startSeconds, endSeconds, text} objects. Included when transcriptFormats contains segments. |
transcriptSRT | string | Transcript in SubRip subtitle format. Included when transcriptFormats contains srt. |
transcriptVTT | string | Transcript in WebVTT caption format. Included when transcriptFormats contains vtt. |
scrapedAt | string | ISO 8601 timestamp when this record was extracted. |
You can download the dataset in JSON, HTML, CSV, or Excel from the Output tab of any run.
Sample output
{"loomId": "912e89a68ccc42c5ab5096fec7cd63d6","url": "https://www.loom.com/share/912e89a68ccc42c5ab5096fec7cd63d6","title": "Getting Started with Loom","description": "A quick walkthrough for new team members joining the onboarding flow.","privacy": "public","thumbnailUrl": "https://cdn.loom.com/sessions/thumbnails/912e89a6-00001.jpg","creatorName": "Chanel Lovell","ownerId": "a1b2c3d4e5f6","ownerEmail": "chanel@loom.com","viewCount": 3842,"distinctViewCount": 2107,"commentCount": 14,"emojiCount": 23,"width": 1920,"height": 1080,"durationSeconds": 355,"durationISO8601": "PT5M55S","createdAt": "2023-08-19T00:19:41.112Z","updatedAt": "2023-09-02T14:30:00.000Z","uploadDate": "2023-08-19","videoDownloadUrl": "https://cdn.loom.com/sessions/raw/912e89a6.mp4?signature=abc123","transcriptStatus": "success","segmentCount": 87,"transcript": "Hey, Chanel here from the Loom team. I'm going to show you how to get started with Loom...","transcriptSegments": [{ "startSeconds": 1.154, "endSeconds": 4.774, "text": "Hey, Chanel here from the Loom team." },{ "startSeconds": 4.774, "endSeconds": 7.704, "text": "I'm going to show you how to get started with Loom." }],"transcriptSRT": "1\n00:00:01,154 --> 00:00:04,774\nHey, Chanel here from the Loom team.\n\n2\n00:00:04,774 --> 00:00:07,704\nI'm going to show you how to get started with Loom.","transcriptVTT": "WEBVTT\n\n00:00:01.154 --> 00:00:04.774\nHey, Chanel here from the Loom team.\n\n00:00:04.774 --> 00:00:07.704\nI'm going to show you how to get started with Loom.","scrapedAt": "2026-06-29T12:00:00.000Z"}
Pricing
Pricing is pay per result. You are charged only for videos that are successfully written to your dataset. Empty runs and failed requests cost nothing. There are no monthly subscriptions or minimum commitments.
Tips
- Batch large libraries. Paste up to hundreds of URLs at once. Use
maxVideosto run a sample first and confirm results before committing a full run. - LLM pipelines. Use the
segmentsformat to get pre-chunked text with start and end timestamps. Each segment maps cleanly to a vector database chunk without any additional splitting logic. - Subtitle workflows. Add
srtorvtttotranscriptFormatsif you need caption files for video players or accessibility tools. Both formats are included in the same run at no extra cost. - Unavailable transcripts. Loom only generates native transcripts for videos where the creator enables captions. If
transcriptStatusisunavailable, the video likely has captions disabled. The actor still returns all available metadata for that video.
FAQ
Does this actor work on private Loom videos?
No. This actor only reads public Loom share URLs accessible without a login. Videos set to "private" or restricted to a specific workspace return no data.
What happens if a video has no transcript?
The actor still extracts all available metadata (title, creator, views, thumbnail, dates) and sets transcriptStatus to unavailable. You are not charged for runs where the transcript extraction fails.
How fresh is the data?
Every run fetches live data directly from Loom. Results reflect the current state of the video page at the time of the run, including the latest view count, comment count, and any updated description.
Is scraping Loom legal?
This actor only reads publicly accessible Loom pages, the same pages any browser user can open without logging in. You are responsible for complying with Loom's terms of service and applicable data protection laws in your jurisdiction. For questions or custom solutions, contact the author at devanshtiwari365@gmail.com.