Nodes/ComfyUI-nkxx/3. Veo 下载视频 (Wujiai)
ComfyUI Node

3. Veo 下载视频 (Wujiai)

The Wujiai Veo downloader — same fetch node, different channel

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
3. Veo 下载视频 (Wujiai)
    • video
    • report

    This is the Wujiai-channel cousin of VeoGetNextVideo_Async: same idea - a no-input node that scans the pack's local Veo task database, grabs the oldest task marked done, downloads the video, marks it downloaded, and hands it to you as a ComfyUI VIDEO. The difference is which gateway and which database it talks to. The Grsai version lives under Nkxx/Grsai/视频 (异步); this one sits in Nkxx/Wujiai/视频 and uses the Wujiai task manager's own history file. If you're using the Wujiai Veo submit/query nodes to generate, this is the node that drains the results.

    Outputs:

    • video - ComfyUI VIDEO (local MP4 via VideoAdapter), ready for playback or further steps.
    • report - STRING: download success or the specific failure reason.

    Mechanically it mirrors the Sora2/Wujiai fetch pattern exactly: sort the local task records by submission time, take the first with a completed status, download through the pack's robust_download_video (yt-dlp, then curl fallback, three retries), and persist downloaded + the local path back to the JSON database so the next run moves on. The IS_CHANGED forced re-execution means repeated queueing walks through a batch one clip at a time.

    One architectural detail worth knowing because it explains the whole Wujiai channel: the Wujiai host is resolved at runtime (the pack fetches a live gateway config and caches it, falling back to a secondary channel if that fetch fails). So this node's actual HTTP endpoint can change between runs if the gateway rotates - that's by design, not flakiness, and it's how the pack "adds models without plugin updates."

    Install is pack-wide:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jieg9341-lab/ComfyUI-nkxx
    

    Restart; first boot auto-installs requests, pandas, yt-dlp (primary download engine), opencv-python, aiohttp. You'll need a Wujiai account (wujiai.org) for the earlier pipeline steps; this node itself reads the video URL from the local DB.

    Grounded gotchas:

    • One video per run, oldest first. A batch drains one clip per queue pass.
    • The same honest failure handling as the Grsai twin: nothing-ready returns "当前无待下载的已完成任务。" with an empty video (not a crash), and a failed download marks the task download_failed and gives you the raw URL to fetch by hand. It won't auto-retry later.
    • If you never ran the Wujiai query step, tasks stay marked running/succeeded-unknown in the DB and this node finds nothing - submit → query → fetch is the order.
    • The two channels are fully separate databases. Tasks submitted on Grsai will never show up here, and vice versa; pick a channel and stay on it for a given pipeline.
    CategoryNkxx/Wujiai/视频

    Inputs (0)

    No inputs

    Outputs (2)

    NameTypeDescription
    videoVIDEO
    reportSTRING