Loom Video Downloader: MP4, Transcript & Metadata avatar

Loom Video Downloader: MP4, Transcript & Metadata

Pricing

from $1.20 / 1,000 video records

Go to Apify Store
Loom Video Downloader: MP4, Transcript & Metadata

Loom Video Downloader: MP4, Transcript & Metadata

Turn any public Loom share link into a downloadable MP4 URL, full transcript, VTT captions and rich metadata in one run. No login required. Handles share links, embed links, iframe snippets and raw video IDs.

Pricing

from $1.20 / 1,000 video records

Rating

0.0

(0)

Developer

GetAScraper

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

2 days ago

Last modified

Share

📹 Loom Video Downloader: MP4, transcript, metadata and change events

Turn any public Loom link into a signed MP4 URL, a full transcript, subtitles, rich video details, and source-backed knowledge-base change events. No login, no password, no browser extension. Paste a share link, an embed link, an embed snippet, a raw video ID, or an optional public Loom folder/page for discovery.

🔍 What does the Loom Video Downloader do?

The Loom Video Downloader turns a Loom link into structured data and, if you want it, the actual video file. Point it at one or more Loom videos that were shared as "anyone with the link", and for each one you get:

  • A direct signed video link from Loom. Its expiry is exposed when Loom publishes it, and it is not a permanent URL.
  • The full transcript, both as clean readable text and as timestamped lines
  • Subtitles (VTT captions) for editors and subtitle files
  • Title, description, duration, resolution, view count, owner name and avatar, and thumbnails
  • An honest source status for every video: downloadable, private, download disabled, unavailable, or explicit failure, never a guess
  • Optional snapshot or stateful changes monitoring for a knowledge base

Because it runs on the Apify platform, you also get scheduling, ready-made integrations, run monitoring, and exports in JSON, CSV, or Excel.

💡 Why use the Loom Video Downloader?

Most Loom tools do only one job: either they download the video, or they pull the transcript, never both. This one does both, plus the metadata, in a single pass.

  • I am a content creator repurposing my Loom walkthroughs into blog posts and social clips, and I need the transcript and the video file in one step.
  • I am a customer support lead archiving every Loom recording my team sends to customers, so nothing gets lost when a workspace changes hands.
  • I am an AI or automation builder feeding Loom transcripts into a summarizer or knowledge base, and I need clean, timestamped text without manually copying captions.
  • I am an agency or consultant backing up client demo recordings and onboarding videos before a Loom account gets cancelled or a link expires.
  • I am a course creator pulling subtitles and video files from a batch of recorded lessons to publish somewhere else.

🚀 How to use the Loom Video Downloader

  1. Click Try for free at the top of this page.
  2. Paste one or more Loom links into Loom videos. Share links, embed links, embed snippets, and raw video IDs all work.
  3. Choose whether to include the transcript and captions (both on by default).
  4. Enable Discover from public pages only when a supplied Loom folder/page should be scanned for visible links.
  5. Choose snapshot for every current row, or changes with a stable State key for scheduled knowledge-base monitoring.
  6. Turn on Download and store the video file only if you need a run-storage copy, not just the signed link. This takes longer and costs more for large videos.
  7. Set Max items to cap how many videos you want processed, then press Start.
  8. Download the dataset in JSON, CSV, or Excel, or connect it to Google Sheets, Make, Zapier, or your own app.

New here? Try it with a single link first to see the output shape before running a larger batch.

📥 Input

Set these fields in the Console form, or pass them as JSON.

FieldTypeRequiredDescription
Loom videosarray of stringsYesShare links, embed links, embed snippets, or raw video IDs, one per line.
Start URLsarrayNoAlias accepting URL objects with an optional inputId; useful for discovery pages.
Discover from public pagesbooleanNoExtract visible public share/embed links from supplied Loom pages. Default false.
Monitor modesnapshot or changesNosnapshot emits current rows. changes emits NEW, UPDATED, EXPIRED, REAPPEARED, and failures while suppressing unchanged rows.
State keystringRequired for changesStable name for one monitoring scope. Keep it unchanged across scheduled runs.
Max itemsintegerNoMaximum number of videos to process. Leave empty to process every video you listed.
Include full transcriptbooleanNoAttach the clean transcript text and timestamped lines. On by default.
Include captions (VTT)booleanNoAttach subtitle file content and its link. On by default.
Download and store the video filebooleanNoSave the actual video file to this run's storage, not just the link. Off by default, since it takes longer and costs more for large videos.
Proxy configurationobjectNoNetwork settings. The default works for almost everyone.

📤 Output

Every video becomes one row with everything about it in one place. Here is a shortened example:

{
"videoId": "230fc263c6784be7a0a4840a8c8f6216",
"canonicalUrl": "https://www.loom.com/share/230fc263c6784be7a0a4840a8c8f6216",
"title": "Loom 101 Webinar",
"durationSeconds": 3224,
"width": 2400,
"height": 1350,
"totalViews": 109,
"ownerName": "Brittany Soinski",
"thumbnailUrl": "https://cdn.loom.com/sessions/thumbnails/230fc263...jpg",
"mediaUrl": "https://cdn.loom.com/sessions/transcoded/230fc263...mp4?Policy=...",
"mediaUrlExpiresAt": "2026-07-03T04:14:40.000Z",
"mediaFormat": "mp4",
"transcriptText": "All right everybody, let's go ahead and get started...",
"captionsUrl": "https://cdn.loom.com/mediametadata/captions/230fc263...vtt",
"downloadable": true,
"status": "ok",
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-07-03T03:59:40.417Z",
"lastSeenAt": "2026-07-03T03:59:40.417Z",
"retrievedAt": "2026-07-03T03:59:40.417Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has three ready-made views: Videos, Transcripts, and Downloads.

📊 Data table

Main fields returned for every video. Empty fields are dropped, so every value you see is real.

FieldTypeDescription
videoIdstringThe Loom video ID resolved from your input.
sourceUrlstringThe supplied public share URL or discovery page used for this observation, when available.
inputIdstringYour supplied source identifier, when provided.
retrievedAtstringUTC time the source was retrieved.
stateKeystringThe selected monitoring scope, when provided.
monitorModestringsnapshot or changes for the run.
canonicalUrlstringDirect share link to the video on Loom.
titlestringVideo title.
descriptionstringVideo description, when the owner added one.
durationSecondsnumberVideo length in seconds.
width / heightnumberVideo resolution in pixels.
totalViewsnumberTotal view count, when available.
ownerNamestringDisplay name of the person who recorded the video.
ownerAvatarUrlstringLink to the owner's profile picture.
thumbnailUrlstringStatic thumbnail image.
animatedThumbnailUrlstringAnimated preview thumbnail, when available.
mediaUrlstringDirect, ready-to-download video link.
mediaUrlExpiresAtstringExpiry decoded from Loom's signed URL policy, when available. Signed media URLs can expire.
mediaFormatstringFile format of the video link, typically mp4.
transcriptTextstringFull transcript as clean, readable text.
transcriptPhrasesarrayTranscript broken into timestamped lines.
captionsVttstringRaw subtitle file content.
captionsUrlstringDirect link to the subtitle file.
downloadablebooleanWhether a video link was found for this video.
privacy / availabilitystringLoom fields returned by the public source, only when Loom publishes them.
statusstringok, private, download_disabled, not_found, failed, or monitor-generated expired.
statusReasonstringPlain-language explanation when status is not ok.
errorCodestringStable code for explicit source/input failures, when present.
changeTypestringNEW, UPDATED, EXPIRED, REAPPEARED, or UNCHANGED.
changedFieldsarraySource fields that changed since the prior successful observation. Signed URLs are excluded.
firstSeenAt / lastSeenAtstringState-backed lifecycle timestamps for the stable videoId.
savedFileobjectStored file details, only present when file download was turned on.
scrapedAtstringWhen this row was collected, in ISO 8601 UTC.

💰 Pricing

This Actor uses pay per result, so you only pay for the videos you actually receive data for. Runs that return nothing cost nothing, and there are no monthly subscriptions or hidden fees. Turning on file download costs more per video since it moves the actual video file, and is billed separately from the standard result. Start with a small batch to preview the data before scaling up.

⭐ Enjoying Loom Video Downloader?

⭐ ⭐ ⭐ ⭐ ⭐
If this is saving you from stitching together separate download and transcription tools, tell us about it.
A 5-star rating takes 10 seconds and helps other content creators and support teams find this Actor. Your feedback also tells us what to build next.
★  Rate this Actor on Apify

❓ FAQ

Does this work on private or password-protected videos?

No, and it should not. This Actor only resolves videos that were shared as "anyone with the link", the same access level Loom itself gives any visitor holding that link. Private, workspace-only, and password-protected videos are reported with a clear status instead of being bypassed.

Some video owners turn off downloads, or the video may no longer be publicly shared. When that happens, the row still comes back with a clear download_disabled, private, not_found, or failed status and a plain-language reason, instead of a broken or fake link.

Do I need a Loom account or API key?

No. The Actor needs no login, no password, and no account connection. Just paste a link and press start.

Can I get both the transcript and the video file in the same run?

Yes. Every video's metadata, transcript, captions, and signed video link come back together in one row, and you can additionally turn on file storage if you want a copy in run storage. Loom signed URLs can expire, so the Actor never claims that mediaUrl is permanent.

Why is savedFile missing on a very long recording?

Unusually long recordings, well beyond a typical Loom clip, can be too large to safely store in one run. When that happens, you still get the full metadata, transcript, captions, and signed video link, just not a stored copy. This is a deliberate safety limit, not a bug.

🛟 Support

Found a bug, or need an extra field? Open an issue on the Issues tab of this Actor and it will be reviewed. Custom versions and larger batch runs are available on request.

🔗 Other actors