3. Sora2 下载视频 (Wujiai)
Grab the next finished Sora 2 video and drop it straight into your graph
- video
- report
This is the payoff node of the Wujiai Sora 2 pipeline. WujiaiSora2SubmitTask and WujiaiSora2SubmitBatchTask create the jobs, WujiaiSora2QueryTasks tracks them, and this one - "3. Sora2 下载视频 (Wujiai)" - takes the first finished video from the task database, downloads it to ComfyUI's output folder, and hands it back as a real VIDEO output that the rest of your graph can use. No inputs at all. Run it after the query node reports a task is done and you get the file.
How the download works
The mechanism is the pack's shared downloader, and it's the most battle-tested code in the whole plugin. Each successful task in the local JSON database has a video URL attached to it by the query node. This node walks the task list in submission order, finds the first task whose status says it's ready, and downloads the file with robust_download_video - which tries yt-dlp first, then falls back to a system curl if that fails, with retries built in. That dual-path downloader is exactly why the pack's README brags about "防爆下载" (crash-proof downloads): video files are big and connections drop, so it's engineered to survive. The file lands in your ComfyUI output directory named wujiai_sora2_<taskid>_<random>.mp4, and the task is marked downloaded so the next run picks up the next finished job rather than the same one.
The outputs
Two outputs:
- video - a
VIDEOtype, so it plugs straight into a Video Combine or preview node the same way a locally-rendered clip would. - report - a STRING: "下载成功: filename" on success, or, on failure, the error plus the raw URL so you can still grab the clip manually in a browser. That last part is a genuinely thoughtful touch - a failed auto-download never means a lost render.
There's nothing to configure, which makes it both the easiest and the least forgiving node in the Sora 2 family. Run it with no finished tasks and it returns an empty video plus a "no jobs ready" message - that's normal, not an error. Downloading happens when the node runs, and because it re-executes fresh every time, you can keep running it to drain the queue one video at a time.
Install and gotchas
Install is the pack-level routine from the README: clone https://github.com/jieg9341-lab/ComfyUI-nkxx into ComfyUI/custom_nodes/, restart, auto-install the six deps (requests, pandas, openpyxl, yt-dlp, opencv-python, aiohttp). The one genuinely important gotcha: this is the Wujiai Sora 2 downloader, so it reads the Wujiai Sora 2 task database. If your video was submitted via the Grsai channel's Sora 2 nodes, this node won't find it - use the Grsai-side Sora2GetNextVideo_Grsai instead. Also, yt-dlp getting blocked or missing is the classic reason auto-download fails; if you see that, updating yt-dlp or ensuring curl is on your PATH usually fixes it.
Inputs (0)
No inputs
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| report | STRING | — |