Light-Tool: Save Video
A downloader wearing a 'Save Video' badge — know what it's not
Before you wire this into a video pipeline, get the name straight: this node does not encode videos. It downloads them. Give it a video_url and it fetches that file and saves it to your ComfyUI output directory. It's the "grab a video from the internet and keep a local copy" node - useful, but a different thing entirely from the frame→mp4 export nodes in packs like VHS, which is what most people expect from the label "Save Video."
What you set
Three inputs:
video_url- the URL to download. This is the whole point.server- a server address string. It's not used for downloading; it's used to build a preview URL that's returned to the UI so a video player can point at the saved file ({server}/api/view?filename=...). Leave it empty and you get a relative path that works if your front-end serves the output directory.save_dir- a subfolder underComfyUI/output/where the file lands. Empty = straight intooutput/.
Under the hood it streams the file down with httpx (using a browser-style user agent so pickier CDNs don't reject it), names it with a random UUID + .mp4, and reports the saved path back to the UI as a preview URL. There are no wire outputs - it's an output node that returns only UI data.
Where it fits
If you have a recurring list of video URLs to pull into your ComfyUI output folder for downstream work, or you want to keep a generated video's source around, this is a clean way to do it inside a graph. It also sits naturally next to the pack's Load Video and Preview Video nodes, which share the same URL-centric philosophy. But if your goal is "take my generated frames and write an mp4," you want the video-encode nodes, not this. The pack itself has no frame-combining node - this family assumes the video already exists somewhere as a file.
Installing it
Part of ComfyUI-Light-Tool by Hmily. ComfyUI Manager → search "ComfyUI-Light-Tool" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ihmily/ComfyUI-Light-Tool
pip install -r requirements.txt
# restart ComfyUI
Needs network access at runtime (httpx is a pack dependency); no models.
Where people get burned
- Expecting frame encoding. The #1 confusion. If your "video" is a tensor of frames inside ComfyUI, this node has nothing to download - you need a proper video encoder.
- URLs that need auth or headers. It uses a browser UA but no cookies/tokens, so gated or signed URLs will fail.
- No filename control. UUID names mean you can't predict the output filename; grab it from the UI preview path.
serveris cosmetic for the preview link. Set it wrong and the UI player 404s even though the file saved fine. For a quick local check, empty is fine.
Right mental model: it's a downloader with a preview callback, and it's fine at that job. Reach for it accordingly.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | — | |
| server | STRING | — | |
| save_dir | STRING | — |
Outputs (0)
No outputs