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
Maintainers
Readme
🎥 Loom Video Downloader
📥 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-dlOption 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.mp4Custom 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-id2. Run batch download
loom-dl --list path/to/urls.txt3. 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 5000This 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-configExample 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 millisecondsoutputDir: Default output directoryprefix: 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
