loom-dl Video Downloader

repository·main·Indexed 41 days ago

https://github.com/ecomgraduates/loom-downloader

A Node.js command-line tool (v1.1.1) to download videos from loom.com. It supports single and batch downloads, quality selection (auto, 480p, 720p, 1080p, best), and the ability to download transcripts, thumbnails, and seek previews. The tool features a configuration system via .loomrc.json and can be operated as a Model Context Protocol (MCP) server for AI assistants.

Tokens
2.8K
Snippets
10
Records
11
Agent score
50%

What's inside loom-dl

  1. Use loom-dl as an MCP server

    main

    You can run loom-dl as a Model Context Protocol (MCP) server to allow AI assistants (like Cursor or Claude Desktop) to download Loom videos.

    Setup Add the following to your MCP configuration (e.g., claude_desktop_config.json):

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

    Exposed Tools

    • download_loom_video: Downloads a video. Supports options: output_dir, with_transcript, with_image, with_gif, with_seek_preview.
    • get_loom_video_info: Retrieves metadata (title, duration, transcript availability) without downloading.
  2. Batch download multiple videos

    main

    To download multiple videos at once, create a text file containing one Loom URL per line, then use the --list (or -l) flag.

    Batch Options

    • --prefix (-p): Add a custom prefix to all filenames in the batch.
    • --out (-o): Specify the output directory for all downloaded files.
    • --timeout (-t): Add a delay (in milliseconds) between downloads to avoid rate limiting/blocking.
    # 1. Create urls.txt with one URL per line
    # 2. Run batch download with prefix and output directory
    loom-dl --list urls.txt --prefix "tutorial" --out ./downloads
    
    # 3. Run batch download with a 5-second delay between videos
    loom-dl --list urls.txt --timeout 5000
  3. Install loom-dl

    main

    You can install the Loom Video Downloader globally via npm or by cloning the repository.

    Prerequisites

    • Node.js 12.0.0 or higher

    Option 1: Global Installation (Recommended)

    npm install -g loom-dl

    Option 2: Clone Repository

    git clone https://github.com/EcomGraduates/loom-downloader.git
    cd loom-downloader
    npm install
  4. Download a single Loom video

    main

    Use the --url (or -u) flag to download a specific video. By default, the video is saved using its ID as the filename in your Downloads folder.

    Custom Filename/Path You can specify a custom filename or a full path using the --out (or -o) flag.

    # Basic download
    loom-dl --url https://www.loom.com/share/abc123def456
    
    # Custom filename
    loom-dl --url https://www.loom.com/share/abc123def456 --out my-video.mp4
    
    # Custom path and filename
    loom-dl --url https://www.loom.com/share/abc123def456 --out path/to/my-video.mp4
  5. Configure loom-dl settings

    main

    You can manage persistent settings in a .loomrc.json file located in the project directory. This allows you to save preferences like video quality, timeouts, and output directories.

    Commands

    • --save-config: Saves current command-line options as your new defaults.
    • --show-config: Displays the current active configuration.
    • --reset-config: Resets all settings to original defaults.

    Configuration Schema (.loomrc.json)

    • 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
    # Save preferred settings
    loom-dl --save-config --quality best --timeout 2000 --prefix "MyVideos_"
    
    # View current settings
    loom-dl --show-config
    
    # Reset to defaults
    loom-dl --reset-config
  6. Configure Loom downloader options

    main

    You can persist your preferred settings by using the --save-config flag. This saves the current command-line options into a .loomrc.json file in the project directory.

    Available configuration keys include:

    • quality: Video quality preference (auto, 480p, 720p, 1080p, best)
    • resume: Whether to resume incomplete downloads (boolean)
    • timeout: Delay (ms) between batch downloads
    • outputDir: Default directory for downloads
    • prefix: Prefix for filenames in batch mode
    • transcript: Whether to download transcripts by default (boolean)
    # Save current quality and output directory as defaults
    node loom-dl.js --quality 1080p --out ./my-videos --save-config
    
    # View current configuration
    node loom-dl.js --show-config
    
    # Reset configuration to defaults
    node loom-dl.js --reset-config
  7. Reference: loom-dl CLI options

    main

    Full list of command-line arguments for loom-dl.

    | 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` |
    | `--use-title` | | Use video title as filename instead of video ID | `--use-title` |
    | `--mcp` | | Start as MCP server (for AI assistants) | `--mcp` |
  8. Reference: CLI Flags for loom-dl

    main

    The following flags are available for the loom-dl CLI:

    FlagAliasTypeDescription
    --url-ustringURL of the video (https://www.loom.com/share/[ID])
    --list-lstringText file containing list of URLs
    --prefix-pstringPrefix for output filenames (batch mode)
    --out-ostringOutput file path or directory
    --timeout-tnumberTimeout (ms) between batch downloads
    --resume-rbooleanResume incomplete downloads
    --quality-qstringVideo quality (auto, 480p, 720p, 1080p, best)
    --transcriptbooleanAlso download transcript as JSON
    --transcript-onlybooleanDownload only the transcript (skip video)
    --imagebooleanAlso download the video thumbnail image (JPG)
    --gifbooleanAlso download the video thumbnail as GIF
    --seek-previewbooleanAlso download the seek preview sprite image and VTT
    --use-titlebooleanUse the video title as the filename
    --save-configbooleanSave current options as defaults
    --show-configbooleanDisplay current configuration
    --reset-configbooleanReset configuration to defaults
    --verbose-vbooleanEnable verbose output
    --mcpbooleanStart as MCP server (for AI assistants)
  9. Download a single Loom video via CLI

    main

    Use the --url (or -u) flag to download a specific Loom video. By default, the video is saved using its ID as the filename in the current directory. You can use --use-title to name the file after the video's title instead.

    # Download a single video
    node loom-dl.js --url https://www.loom.com/share/VIDEO_ID
    
    # Download a single video using its title as the filename
    node loom-dl.js --url https://www.loom.com/share/VIDEO_ID --use-title
  10. Batch download Loom videos from a list

    main

    To download multiple videos at once, provide a path to a text file containing one Loom URL per line using the --list (or -l) flag. The tool will process the list and skip any URLs that have already been recorded in downloaded.log.

    # Download all videos listed in urls.txt
    node loom-dl.js --list urls.txt
  11. Download additional Loom assets (transcripts, images, seek previews)

    main

    In addition to the video, you can request several metadata and asset files using these flags:

    • --transcript: Download the transcript as a .transcript.json file.
    • --transcript-only: Download only the transcript and skip the video file.
    • --image: Download the video thumbnail as a .jpg.
    • --gif: Download the video thumbnail as a .gif.
    • --seek-preview: Download the seek preview sprite image (.jpg) and the corresponding .vtt file used for scrubber thumbnails.
    # Download video, transcript, thumbnail, and seek previews
    node loom-dl.js --url https://www.loom.com/share/ID --transcript --image --seek-preview