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

  •  
  •  
  •  
  •