Loom Video Downloader - Public Stream Links avatar

Loom Video Downloader - Public Stream Links

Pricing

from $3.00 / 1,000 loom video results

Go to Apify Store
Loom Video Downloader - Public Stream Links

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Share

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. downloadUrl is a signed HLS playlist you can hand to a media tool to save the video, with streamFormat set to hls.
  • Metadata in the same row. title, ownerName, thumbnailUrl, durationSeconds, width and height arrive with the link.
  • Respects the owner's choice. requireDownloadPermission keeps results to videos Loom marks downloadable.
  • Clear per-video outcomes. Each input gets a status, such as video_resolved, not_downloadable, access_restricted or not_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?

RequestInput 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"]}

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
}
FieldTypeWhat it controls
loomUrlsarrayPublic Loom share URLs, embed URLs, iframe snippets or video IDs. Required
maxVideosintegerCap on unique videos processed in one run. Default 20, range 1 to 200
requireDownloadPermissionbooleanReturn stream links only for videos Loom marks downloadable. Default true

Duplicate video IDs are processed once.

Output

FieldWhat it contains
videoId, sourceUrlLoom video ID and normalized share URL
statusOutcome for this input, such as video_resolved
downloadUrl, streamFormatTemporary signed HLS playlist URL and its format
downloadable, privacyLoom's download flag and visibility
title, description, ownerNamePublic video metadata
thumbnailUrl, durationSeconds, width, heightPreview image and media details
errorDiagnostic note for inputs that did not resolve, otherwise null
scrapedAtCollection 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 ApifyClient
client = 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 situationHelpful actionExpected outcome
A Loom link from chat or emailPaste the share URL as isOne video_resolved row when downloads are on
A page with an embedded LoomPaste the embed URL or the whole iframe snippetThe same video row
A not_downloadable rowAsk the video owner to enable downloads in Loom, then run againA stream link on the next run
A stream link that has expiredRun the same Loom URL againA fresh signed link
Saving MP4 filesHand downloadUrl to an HLS-capable media tool promptlyA 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

It is an HLS playlist (.m3u8). Most media tools can save it as an MP4 file.

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.