Nodes/ComfyUI-Light-Tool/Light-Tool: Save Video
ComfyUI Node

Light-Tool: Save Video

A downloader wearing a 'Save Video' badge — know what it's not

By ihmily·Created 2 years ago·Updated 4 months ago· 20
Light-Tool: Save Video
      video_url
      server
      save_dir

      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 under ComfyUI/output/ where the file lands. Empty = straight into output/.

      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.
      • server is 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.

      CategoryComfyUI-Light-Tool/Video

      Inputs (3)

      NameTypeDefaultDescription
      video_urlSTRING
      serverSTRING
      save_dirSTRING

      Outputs (0)

      No outputs