npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

loom-dl

v1.1.1

Published

Loom Video Downloader is a simple Node.js command-line tool to download videos from loom.com. It retrieves the video download link based on the video ID in the URL and saves the video with a specified filename or, by default, the video ID.

Downloads

384

Readme

🎥 Loom Video Downloader

npm version License: MIT Node.js Version

📥 A simple and powerful Node.js command-line tool to download videos from loom.com

Loom Video Downloader makes it easy to download videos from Loom by simply providing the video URL. It supports both single video downloads and batch downloads from a list of URLs, with customizable output options and rate limiting to avoid getting blocked.

✨ Features

  • 🎯 Single Video Download - Download any Loom video with just the URL
  • 📋 Batch Download - Process multiple videos from a text file
  • Progress Bars - Real-time download progress with ETA
  • ⏯️ Resume Downloads - Smart resume functionality for interrupted downloads
  • 🎥 Quality Selection - Choose video quality with automatic analysis
  • �📁 Custom Output - Specify output directory and filename
  • 🏷️ Filename Prefix - Add custom prefixes for batch downloads
  • ⏱️ Rate Limiting - Built-in timeout to avoid getting blocked
  • ⚙️ Configuration File - Save default settings for consistent usage
  • 🚀 Easy to Use - Simple command-line interface

🚀 Getting Started

Prerequisites

Make sure you have Node.js 12.0.0 or higher installed on your machine.

📦 Installation

Option 1: Global Installation (Recommended)

npm install -g loom-dl

Option 2: Clone Repository

# Clone the repository
git clone https://github.com/EcomGraduates/loom-downloader.git

# Navigate to project directory
cd loom-downloader

# Install dependencies
npm install

# Run the tool
node loom-dl.js --url https://www.loom.com/share/[VideoId]

🔧 Dependencies

| Package | Purpose | |---------|---------| | axios | 🌐 Promise-based HTTP client for API requests | | cli-progress | 📊 Beautiful progress bars for terminal | | fs | 📁 Node.js file system operations | | https | 🔒 HTTPS protocol support | | yargs | ⚙️ Command-line argument parsing |

📖 Usage

🎯 Download a Single Video

Download any Loom video using its URL:

loom-dl --url https://www.loom.com/share/[VideoId]

💡 Example:

loom-dl --url https://www.loom.com/share/abc123def456
# Downloads as: abc123def456.mp4

Custom Output Filename

Specify a custom filename and location:

# Custom filename
loom-dl --url https://www.loom.com/share/[VideoId] --out my-video.mp4

# Custom path and filename
loom-dl --url https://www.loom.com/share/[VideoId] --out path/to/my-video.mp4

📋 Download Multiple Videos

Process multiple videos from a text file:

1. Create a URL list file

Create a text file with one Loom URL per line:

# urls.txt
https://www.loom.com/share/video1-id
https://www.loom.com/share/video2-id
https://www.loom.com/share/video3-id

2. Run batch download

loom-dl --list path/to/urls.txt

3. With custom prefix and output directory

loom-dl --list urls.txt --prefix "tutorial" --out ./downloads

📁 Output: tutorial-1.mp4, tutorial-2.mp4, tutorial-3.mp4

📝 Note: If no output path is specified, files will be saved to your Downloads folder

⏱️ Rate Limiting

Prevent getting blocked by adding delays between downloads:

loom-dl --list urls.txt --prefix download --out ./output --timeout 5000

This adds a 5-second delay between each download. Adjust the timeout value as needed.

📋 Command Reference

| Option | Short | Description | Example | |--------|-------|-------------|---------| | --url | -u | Single video URL | --url https://loom.com/share/abc123 | | --list | -l | File with multiple URLs | --list urls.txt | | --out | -o | Output path/filename | --out ./downloads/video.mp4 | | --prefix | -p | Filename prefix for batch | --prefix "meeting" | | --timeout | -t | Delay between downloads (ms) | --timeout 3000 | | --resume | -r | Resume incomplete downloads | --resume or --no-resume | | --quality | -q | Video quality preference | --quality 720p | | --save-config | | Save current options as defaults | --save-config --quality best | | --show-config | | Display current configuration | --show-config | | --reset-config | | Reset configuration to defaults | --reset-config | | --transcript | | Also download transcript as JSON | --transcript | | --transcript-only | | Download only the transcript | --transcript-only | | --image | | Also download the video thumbnail (JPG) | --image | | --gif | | Also download the video thumbnail as GIF | --gif | | --seek-preview | | Also download seek preview sprite + VTT (scrubber thumbnails) | --seek-preview | | --mcp | | Start as MCP server (for AI assistants) | --mcp |

Use as MCP server (AI assistants)

You can run the tool as an MCP (Model Context Protocol) server so AI assistants (e.g. Cursor, Claude Desktop) can download Loom videos for you via tools.

1. Add to your MCP config (e.g. Cursor settings or claude_desktop_config.json):

{
  "mcpServers": {
    "loom-downloader": {
      "command": "npx",
      "args": ["-y", "loom-dl@latest", "--mcp"]
    }
  }
}

2. Tools exposed to the AI

| Tool | Description | |------|-------------| | download_loom_video | Download a Loom video from a share URL. Optional: output_dir, with_transcript, with_image, with_gif, with_seek_preview. | | get_loom_video_info | Get video info (title, duration, transcript availability) without downloading. |

Example (AI can call):
download_loom_video({ "url": "https://www.loom.com/share/VIDEO_ID", "with_transcript": true })

🚀 Quick Start Examples

# Download single video
loom-dl --url https://www.loom.com/share/abc123def456

# Download with custom name
loom-dl --url https://www.loom.com/share/abc123def456 --out "my-presentation.mp4"

# Batch download with prefix
loom-dl --list videos.txt --prefix "course" --out ./downloads

# Batch download with rate limiting
loom-dl --list videos.txt --timeout 3000 --prefix "meeting"

⚙️ Configuration Management

📁 Save Default Settings

Save your preferred settings to avoid repeating them:

# Save preferred quality and timeout settings
loom-dl --save-config --quality best --timeout 2000 --prefix "MyVideos_"

# Now all future downloads will use these defaults
loom-dl --url https://www.loom.com/share/abc123def456

📋 View Current Configuration

Check your current default settings:

loom-dl --show-config

Example output:

{
  "quality": "best",
  "resume": true,
  "timeout": 2000,
  "outputDir": "downloads",
  "prefix": "MyVideos_"
}

🔄 Reset to Defaults

Reset all settings back to the original defaults:

loom-dl --reset-config

📝 Configuration File

Settings are stored in .loomrc.json in the project directory. You can also edit this file directly:

{
  "quality": "720p",
  "resume": true,
  "timeout": 1000,
  "outputDir": "downloads",
  "prefix": ""
}

Available Settings:

  • quality: Video quality preference (auto, 480p, 720p, 1080p, best)
  • resume: Enable/disable resume functionality (true/false)
  • timeout: Delay between downloads in milliseconds
  • outputDir: Default output directory
  • prefix: Default filename prefix

🤝 Contributing

We welcome contributions from the community! Whether it's bug fixes, new features, documentation improvements, or any other enhancements, your help is appreciated.

🤝 Please read our Contributing Guide for detailed information on:

  • How to set up the development environment
  • Coding standards and best practices
  • How to submit pull requests
  • Reporting issues and requesting features

Quick start: Fork → Create branch → Make changes → Test → Submit PR

👥 Contributors

We appreciate all contributors who have helped improve this project:

| Contributor | Contribution | |-------------|--------------| | @lestercoyoyjr | 📁 Added output folder functionality | | @werkamsus | ⏯️ Added resume functionality | | @juansilvadesign | ⚙️ Added configuration file support, progress bars & quality selection |

🔒 Security

Security is important to us. If you discover a security vulnerability, please report it responsibly.

📋 Please read our Security Policy for:

  • How to report security vulnerabilities
  • Our response timeline and process
  • Supported versions and security updates
  • Security best practices for users

🚨 Do not report security vulnerabilities through public issues!

🐛 Issues & Support

Found a bug or need help? We're here to assist!

📄 License

This project is open source and available under the MIT License.


⭐ If this tool helped you, please give it a star! ⭐

Made with ❤️ by the community