Nodes/ComfyUI-JM-MiniMax-API/Check Video Status
ComfyUI Node

Check Video Status

The Node That Babysits Your MiniMax Video Job

By juemingai·Created about a year ago·Updated about a year ago· 6
Check Video Status
    • status
    • file_id
    • video_url
    • cover_image_url
    api_key
    task_id
    check_interval30
    max_wait_time1800

    The name is doing exactly what it says: this node sits between "I submitted a video job" and "I have a video file." MiniMax's video generation is asynchronous - the Video Generation node fires off a request and gets back a task_id, then the actual rendering happens somewhere in MiniMax's cloud. This node polls that job until it's done. It's the middle leg of the three-node pipeline that makes up the whole video side of the ComfyUI-JM-MiniMax-API pack:

    video-generationcheck-video-statusdownload-video

    Without it, you'd be hand-pasting a task_id into a browser every few minutes. With it, the workflow runs end to end and just works.

    How it works

    Under the hood it's an honest while loop, no magic. It sends a GET to https://api.minimaxi.chat/v1/query/video_generation?task_id=... with your API key in the auth header, checks the returned status, and if the job is still processing it time.sleeps for check_interval seconds and tries again. It prints progress to the ComfyUI console as it goes - elapsed time, remaining wait, attempt count, even the video dimensions once they exist.

    That means this node blocks the ComfyUI queue while it waits. You won't run anything else on that queue while a render is pending. That's the trade-off for a linear API pipeline, and it's usually fine - a MiniMax video takes minutes, not hours.

    The inputs that matter

    Only four, and you set three of them:

    • api_key - the same MiniMax key every node in this pack wants.
    • task_id - wire it straight from the Video Generation node's output. That's the whole point.
    • check_interval - seconds between polls, 10–300 (default 30). Lowering it makes the loop feel snappier but burns more API requests, so leave the default unless you're impatient.
    • max_wait_time - total seconds to keep polling, 300–7200 (default 1800 = 30 minutes). This is your timeout protection, and the node will raise a clear error if it's exceeded.

    What comes out

    Four strings, and you mostly care about one:

    • status - processing, success, or failed. The node only returns on success or failure; it doesn't hand you back a mid-render status.
    • file_id - the one you actually wire forward, into the Download Video node. This is what you use to pull the file down through the proper API.
    • video_url - a direct download URL. Handy if you'd rather grab the video some other way or check it in a browser.
    • cover_image_url - the thumbnail MiniMax generated for the job.

    Common issues

    The node maps MiniMax's API error codes to plain English before it raises, so you'll see readable messages like "Authentication failed, please check your API key" (1004), "Insufficient account balance" (1008), or "Rate limit exceeded" (1002). A 404 means the task_id is wrong or the job already expired - double-check you copied it from the Video Generation node.

    The one that trips people up: if max_wait_time runs out, you get a timeout error even though MiniMax may still be rendering the video just fine. Nothing is lost - just re-run the node with the same task_id (and a higher max_wait_time) and it'll pick up the job where it left off.

    Install

    This node ships inside the ComfyUI-JM-MiniMax-API pack, so you get all eight nodes at once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/synthetai/ComfyUI-JM-MiniMax-API
    pip install -r requirements.txt
    

    Or skip all that and search "ComfyUI-JM-MiniMax-API" in ComfyUI Manager's install tab. Restart ComfyUI afterward. Dependencies are just requests and Pillow - no GPU, no model downloads, because nothing runs locally. Everything here is a thin wrapper around MiniMax's paid cloud API, so you'll also need an API key from their open platform before anything will work.

    CategoryJM-MiniMax-API/Video

    Inputs (4)

    NameTypeDefaultDescription
    api_keySTRING
    task_idSTRING
    check_intervalINT3010–300Check interval in seconds
    max_wait_timeINT1800300–7200Maximum wait time in seconds (default: 30 minutes)

    Outputs (4)

    NameTypeDescription
    statusSTRING
    file_idSTRING
    video_urlSTRING
    cover_image_urlSTRING