๐ฑ Seedance 2.0 Retrieve Task Result
Fetching that render you made yesterday (if it's still alive)
- video_url
- first_frame
- request_id
- status
- task_json
Every generation node in this pack hands you a request_id along with your video - a cgt-... task ID. Seedance 2.0 Retrieve Task Result is what you use that ID for: it goes back to BytePlus and pulls the task's current status and output. Ran a render, closed ComfyUI, and now want the result back without re-paying for it? This node is the way.
The catch is the same 24-hour rule that governs everything in this pack: BytePlus keeps task status and output URLs for roughly a day. Retrieve a task while it's young and you'll get the video URL, the first frame, and the full JSON status. Retrieve one that's aged out and you'll get an expired/failed status and no URL. So treat this as a same-day recovery tool, not an archive.
The inputs that matter
task_id- thecgt-...ID you saved from a previous run. Tooltip: "Historical BytePlus video generation task ID, for example cgt-...". This is the primary path.recent_task- a dropdown of task IDs this pack has created on your machine, auto-populated. Leavetask_idblank and pick from here instead. Saves you copy-pasting IDs around.wait_for_completion- defaultfalse: one status check, done. Flip ittrueand the node polls until the task succeeds, fails, expires, or times out - useful if you're retrieving a task that's still rendering.download_first_frame- defaulttrue: downloads the video and decodes its first frame for a preview image.
You'll also need api_key if you don't have it in the environment or config file.
Outputs
video_url- the STRING that feedsSave Video/Preview Video URL. Empty if the task hasn't succeeded or expired.first_frame- IMAGE preview.request_id- echoes the ID back for convenience.status- the raw task state.task_json- the full JSON response, pretty-printed, if you ever need to see what BytePlus actually said.
How it works
The node calls BytePlus's task-retrieve endpoint (GET /api/v3/contents/generations/tasks/{id}) with your API key. With wait_for_completion off it's a single poll; on, it loops. The same node pack's history is used for the recent_task dropdown, which is why that list only shows tasks created on this machine.
The pattern to use it well
The natural workflow: generate โ note the request_id โ come back later โ Retrieve Task Result โ Save Video. It's also the cheapest way to batch-check a few renders you kicked off before walking away. Just keep the mental timer on that 24-hour window - and when the URL is in hand, save it immediately. Install: ComfyUI Manager โ Install via Git URL โ https://github.com/nnnnkatsu/seedance2-comfyui-byteplus, restart.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| task_id | STRING | Historical BytePlus video generation task ID, for example cgt-... | |
| api_keyopt | STRING | โ | |
| recent_taskopt | COMBO | (manual task_id) | Recent task IDs created by this node pack on this machine. Leave task_id blank to use this selection. |
| wait_for_completionopt | BOOLEAN | false | Poll until the task succeeds, fails, expires, or times out. |
| download_first_frameopt | BOOLEAN | true | Download the generated video URL and decode its first frame for preview. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | โ |
| first_frame | IMAGE | โ |
| request_id | STRING | โ |
| status | STRING | โ |
| task_json | STRING | โ |