KIE • Download Video
Getting an MP4 Back Into the Graph and Out of Temp
- config
- video
Video is where API nodes hurt the most. A render that took three minutes and real money produces a file, and historically that file lived in ComfyUI's temp folder and quietly evaporated. This node turns a URL back into a VIDEO object ready for the next step, and - the part that actually matters - archives the bytes somewhere durable on the way through.
When you need it
You usually don't, if the generation happened inside the pack: every video model node returns a native VIDEO. You need this node when the file arrived some other way. A render you kicked off in KIE's playground. A URL in a workflow you inherited. A clip whose temp file is already gone but whose URL is still live. Or a hand-off: the URL came from somewhere else and you want it inside ComfyUI to preview, upscale, or extract frames from.
How it works
url is a required string widget, with an optional config input you can ignore in the normal case.
Two-stage fetch: the client does a plain GET on your URL (no auth - so non-KIE URLs work too), and if that fails it asks KIE's Common API to mint a short-lived direct download URL and retries. Then the bytes are written to disk and wrapped as a ComfyUI VIDEO object.
Disk, specifically: results are archived under output/KIE-Results/videos/ with a content-addressed filename, so re-downloading the same URL is idempotent and a successful download outlives temp-folder cleanup and app restarts. That archive is one of the more thoughtful things in this pack - the release notes are explicit that it exists because temp-only results could disappear after a restart. If ComfyUI's output directory happens to be unwritable, it falls back to a temp file rather than failing.
Output: video, a native ComfyUI VIDEO object. Wire it into a video preview, a frame-extraction chain, or a video upscaler.
The ComfyUI version dependency
Wrapping the download as a VIDEO object uses comfy_api.latest.InputImpl.VideoFromFile. If your ComfyUI build predates that, the node raises a plain "update ComfyUI" error instead of doing something confusing. It's the one real gotcha here: a stale install. Update and retry.
Install
ComfyUI Manager → ComfyUI-KIE-Nodes-Next. Per the README, Registry publishing is prepared but not shipped:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart. This node is in the pack's base mappings, so it's available immediately - no waiting on the live catalog sync. Python 3.10+, no GPU work, nothing to download.
Common issues
"Update ComfyUI." Literally that: the video-object API isn't in your build. This is a genuinely common failure on older portable installs.
404 or an expired link. KIE's generated URLs are temporary. The archived copy under output/KIE-Results/videos/ is the durable thing; grab it while the link is alive or re-run the generation.
Fails on a URL that opens fine in a browser. Some hosts block scripted GETs or need headers; the KIE fallback converter only helps when the host is KIE's. Download it by other means and load it with a local video loader.
Big files time out. The HTTP timeout defaults to 90 seconds (adjustable through the advanced connection override). A long 4K clip over a slow link can exceed it - that's a transport limit, not a corruption in the file.
You're about to re-download instead of re-generating - good. The whole point of this node is not paying for the same render twice. Video jobs are the expensive half of the API-node trade-off, so a durable archive plus a cheap way back in is exactly what you want in place before a batch, not after.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — | |
| configopt | KIE_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |