Loom Video Downloader - Public Stream Links
Pricing
from $3.00 / 1,000 loom video results
Loom Video Downloader - Public Stream Links
Resolve downloadable public Loom share and embed URLs into expiring HLS stream links with metadata. It only returns videos that Loom marks downloadable; no login, password bypass, or private-video access.
Pricing
from $3.00 / 1,000 loom video results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
What is Loom Video Downloader - Public Stream Links?
Loom Video Downloader resolves public Loom share and embed links into a dataset of video records, one row per unique video, each with a temporary HLS stream URL, title, owner name, thumbnail, duration, resolution, privacy and a clear status. It honors Loom's own download setting, so a stream link is returned when the video's owner allows downloads. Training teams, content archivists, media pipelines and AI agents use it to save and process Loom recordings they are entitled to keep.
Why teams use this Loom downloader
- Paste the link you already have. Share URLs, embed URLs, iframe snippets and bare 32-character video IDs all work in
loomUrls. - A stream ready for your tools.
downloadUrlis a signed HLS playlist you can hand to a media tool to save the video, withstreamFormatset tohls. - Metadata in the same row.
title,ownerName,thumbnailUrl,durationSeconds,widthandheightarrive with the link. - Respects the owner's choice.
requireDownloadPermissionkeeps results to videos Loom marks downloadable. - Clear per-video outcomes. Each input gets a
status, such asvideo_resolved,not_downloadable,access_restrictedornot_found.
Best fit for this Actor
- Designed for public Loom videos that you own or are authorized to save, such as onboarding walkthroughs, product demos and team updates.
- Use it to build a searchable archive of your team's Loom library or to feed recordings into a media pipeline.
- For the spoken words instead of the video file, continue with Loom Transcript Scraper - Captions to Text.
- When your list mixes Loom with YouTube, Vimeo or social video links, pass the other links to Media Downloader - All-in-One Video, Audio and Metadata.
What people and AI agents ask this Actor to do
Give me a download link for this Loom video. Archive these twenty Loom walkthroughs with titles and durations. Which of these Loom links allow downloads?
| Request | Input to send |
|---|---|
| One video link | {"loomUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"]} |
| A batch of team recordings | {"loomUrls": ["...", "..."], "maxVideos": 50} |
| An embed snippet from a web page | {"loomUrls": ["https://www.loom.com/embed/002508e86fde4232bb8de474eb5c65c4"]} |
Example workflow: from a folder of Loom links to an archive
An enablement lead starts with a spreadsheet of forty Loom links from last quarter's onboarding course. She pastes them into loomUrls with maxVideos set to 50. The dataset returns a row per video with title, ownerName, durationSeconds and a downloadUrl. She exports the rows, then passes each downloadUrl to her media tool right away to save MP4 copies, since the signed links expire. Rows with not_downloadable go to a short list of owners she asks to enable downloads, and the transcripts come next from the transcript Actor.
Input
{"loomUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"],"maxVideos": 20,"requireDownloadPermission": true}
| Field | Type | What it controls |
|---|---|---|
loomUrls | array | Public Loom share URLs, embed URLs, iframe snippets or video IDs. Required |
maxVideos | integer | Cap on unique videos processed in one run. Default 20, range 1 to 200 |
requireDownloadPermission | boolean | Return stream links only for videos Loom marks downloadable. Default true |
Duplicate video IDs are processed once.
Output
| Field | What it contains |
|---|---|
videoId, sourceUrl | Loom video ID and normalized share URL |
status | Outcome for this input, such as video_resolved |
downloadUrl, streamFormat | Temporary signed HLS playlist URL and its format |
downloadable, privacy | Loom's download flag and visibility |
title, description, ownerName | Public video metadata |
thumbnailUrl, durationSeconds, width, height | Preview image and media details |
error | Diagnostic note for inputs that did not resolve, otherwise null |
scrapedAt | Collection time |
{"videoId": "002508e86fde4232bb8de474eb5c65c4","sourceUrl": "https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4","status": "video_resolved","downloadUrl": "https://luna.loom.com/id/002508e86fde4232bb8de474eb5c65c4/rev/8ef8623f/resource/hls/playlist-multibitrate.m3u8?Policy=...&Signature=...&Key-Pair-Id=...","streamFormat": "hls","downloadable": true,"title": "Screen and engagement tips (2:30)","description": null,"ownerName": "Alex Rivera","thumbnailUrl": "https://cdn.loom.com/sessions/thumbnails/002508e86fde4232bb8de474eb5c65c4-1659734506699.jpg","durationSeconds": 151,"width": 1152,"height": 720,"privacy": "public","error": null,"scrapedAt": "2026-10-04T14:37:42.681Z"}
The Actor also writes an OUTPUT record and a RUN_SUMMARY record to the default key-value store with the run's outcome and counts.
Pricing
This Actor uses Pay per event plus Apify platform usage. Each run charges one Actor Start event and one Loom Video Result event for each resolved video saved to the dataset. Diagnostic rows for restricted or missing videos carry no video charge. Platform usage is billed on top at Apify's standard rates and stays small, since the Actor makes one public page request per video. The live Pricing tab on this page shows the current event prices.
Worked example: forty Loom links where thirty-six resolve cost thirty-six Loom Video Result events plus one Actor Start event and the run's platform usage. maxVideos caps how many videos one run can bill.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~loom-video-downloader/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"loomUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"]}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/loom-video-downloader").call(run_input={"loomUrls": ["https://www.loom.com/share/002508e86fde4232bb8de474eb5c65c4"],"maxVideos": 20,})for video in client.dataset(run["defaultDatasetId"]).iterate_items():print(video["status"], video["title"], video["downloadUrl"])
Use with AI agents (MCP)
Connect the Actor through Apify MCP in Claude, ChatGPT or Cursor and ask:
Resolve these three Loom links. Tell me which ones allow downloads, and give me the title, duration and stream link for each downloadable video.
The agent passes the links in loomUrls, reads rows with get-dataset-items, and reports status, title, durationSeconds and downloadUrl. It should cite sourceUrl and scrapedAt, and mention that downloadUrl is a signed link to use soon after the run. Each resolved video is one event, so the cost scales with the number of downloadable videos in scope.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A Loom link from chat or email | Paste the share URL as is | One video_resolved row when downloads are on |
| A page with an embedded Loom | Paste the embed URL or the whole iframe snippet | The same video row |
A not_downloadable row | Ask the video owner to enable downloads in Loom, then run again | A stream link on the next run |
| A stream link that has expired | Run the same Loom URL again | A fresh signed link |
| Saving MP4 files | Hand downloadUrl to an HLS-capable media tool promptly | A local video copy |
Builder's note
I designed this Actor to follow Loom's own download setting by default, because the people who use it are archiving their team's recordings and want a result they can stand behind. I chose to return the HLS playlist Loom serves instead of re-encoding video inside the run, which keeps runs light and lets each team save files in the format their tools prefer.
FAQ
Is the download link an MP4?
It is an HLS playlist (.m3u8). Most media tools can save it as an MP4 file.
How long does a link last?
Loom signs the link for a limited time. Use it soon after the run, or run the same Loom URL again for a fresh link.
Which videos does it resolve?
Public Loom videos that the owner has marked downloadable. Private, password-protected and named-share videos stay with their owners.
Responsible use
Process only Loom videos you own or are authorized to download. The Actor respects Loom's public download setting and works with public pages without a login. Video titles and owner names can be personal data under laws such as the GDPR and CCPA, so store them with care and respect Loom's terms of service. Loom is a trademark of its owner, and this independent Actor is not affiliated with it. For questions, open a ticket in the Issues tab.