Skip to content

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.

License

Notifications You must be signed in to change notification settings

EcomGraduates/loom-downloader

🎥 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

🔧 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

🚀 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

About

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.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •