π₯ 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.
- π― 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
Make sure you have Node.js 12.0.0 or higher installed on your machine.
npm install -g loom-dl
# Clone the repository
git clone https://github.com/EcomGraduates/loom-downloader.git
# Navigate to project directory
cd loom-downloader
# Install dependencies
npm install
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 |
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
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
Process multiple videos from a text 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
loom-dl --list path/to/urls.txt
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
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.
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 |
# 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"
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
Check your current default settings:
loom-dl --show-config
Example output:
{
"quality": "best",
"resume": true,
"timeout": 2000,
"outputDir": "downloads",
"prefix": "MyVideos_"
}
Reset all settings back to the original defaults:
loom-dl --reset-config
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 millisecondsoutputDir
: Default output directoryprefix
: Default filename prefix
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
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 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!
Found a bug or need help? We're here to assist!
- π Report a Bug
- π‘ Request a Feature
- π¬ Ask a Question
- π Report Security Issue
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