Retrieve Video Status (AI CustomURL)
Pick up a video job you walked away from
- video_url
- status
- response_json
Hosted video generation doesn't finish while you watch. You submit a job, get an ID, and the thing renders for minutes in a queue somewhere else. The Generate Video node in this pack already polls for you - but only within its max_wait_time, and only if you leave auto_poll on. When it times out, or when you deliberately turned polling off, you're left holding a video_id and a status of timeout (status: …). This node is the resume button: give it that ID and it checks the job again, whenever you're ready.
How it works
Three inputs, all familiar from the rest of the pack: base_url, api_key, and the video_id from a previous generation. It issues GET /videos/{id} against your provider and translates the response into a readable verdict.
The status mapping is the useful part. A completed response gets scanned for a video URL across several common field names (url, output_url, download_url); if none are found and you're on OpenAI, it constructs the content URL ({base_url}/videos/{id}/content) for you, because OpenAI doesn't return a direct link. processing and queued mean it's still cooking. failed means it's dead - the error detail rides along in response_json.
The outputs
video_url- the finished download URL, or empty if still processing/failed.status-completed,processing,queued,failed,error, orunknown.response_json- the raw API response, which is where you look when the other two don't make sense.
From there it slots back into the same pipeline as the generation node: send video_url to Save Video from URL (with the api_key if it's an OpenAI content URL), and you're done.
Installing it
Part of the ComfyUI-AI-CustomURL pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bowtiedbluefin/ComfyUI-AI-CustomURL
cd ComfyUI-AI-CustomURL
pip install -r requirements.txt
Or ComfyUI Manager → search "AI CustomURL", restart. No model downloads, no special dependencies beyond the pack's requests.
The workflow shape it enables
The intended use is a two-part dance: run Generate Video with auto_poll off (or let it time out), note the video_id, and come back later with this node. That's genuinely useful - a 20-minute render job doesn't need your ComfyUI session alive the whole time. It's also a workaround for a real limitation: no provider endpoint this pack talks to is instant, and waiting is the single most common point of failure in hosted video workflows.
Honest caveats
The main one: video_id must be a real ID from your provider, and nothing here validates it beyond trying the request - a mistyped or stale ID just returns an error in status and a stack trace in response_json. Also note the completion check is a single poll, not a loop: if it returns processing, you run the node again. That's by design (you're the loop now), just don't expect it to wait for you. Small, single-author pack, thin community presence - but for the specific chore of resuming async video work, this is the node that makes the generation node's timeout tolerable.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| base_url | STRING | https://api.openai.com/v1 | — |
| api_key | STRING | — | |
| video_id | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |
| status | STRING | — |
| response_json | STRING | — |