Nodes/playbook3d-comfyui-nodes/Playbook Video (External)
ComfyUI Node

Playbook Video (External)

A URL becomes frames — if opencv is installed

By playbook3d·Created 2 years ago·Updated about a year ago· 21
Playbook Video (External)
  • default_value
  • images
idNode ID
labelNode Label
frame_load_cap0
skip_first_frames0
select_every_nth1
default_url

Playbook Video downloads a video from a URL, decodes it, and returns the frames as a batched IMAGE. That's the whole job - and it's the node in this pack most likely to surprise you on install, because it needs opencv (the cv2 module), and nothing in the pack's install files declares it.

Context first: this is an "External" node in Playbook Nodes, the ComfyUI side of Playbook3D's cloud 3D render service. When a workflow runs on their platform, a video you've dropped into the web UI (as a URL) becomes frames in your graph - the plumbing for their video/sequence features. Locally it works the same way: point it at a direct video URL, get frames out. It's the video sibling of Playbook Image, with frame-sampling controls bolted on.

The inputs that matter

  • default_url - the video URL. Must start with http for the node to even attempt a download.
  • frame_load_cap - max frames to keep, default 0 (no cap, up to 1000).
  • skip_first_frames - drop this many frames from the start.
  • select_every_nth - keep every Nth frame, default 1 (every frame).
  • default_value - an IMAGE used as the fallback when there's no valid URL or the download fails.
  • id and label - the usual external-node metadata, inert locally.

Output is images, a [frames, height, width, channels] tensor. The mechanism: stream the video to a temp file, open it with OpenCV's VideoCapture, walk the frames applying skip/every-nth/cap, convert BGR to RGB, normalize, and stack. If anything fails and no fallback is wired, you get None.

Install - read this before you run

The pack install is the usual:

cd ComfyUI/custom_nodes
git clone https://github.com/playbook3d/playbook3d-comfyui-nodes

But this node imports cv2, and there is no requirements.txt in the pack - ComfyUI does not ship OpenCV by default in every build. If you get an ImportError: No module named 'cv2' at load or first run, install it yourself:

pip install opencv-python

then restart ComfyUI. Everything else this node needs (requests, torch, numpy) is already there. No API key needed for the node itself - it only talks to whatever URL you give it.

Troubleshooting

Two classic failures. The missing-opencv import error above is the big one - solve it with the pip install. The second is silently getting your default_value back because the URL isn't a direct file link (a page URL instead of an .mp4, or a server that blocks scripts like requests). The node checks only that the URL starts with http, so a redirect-to-login or a 403 hands you the fallback with a console message, not an error box. Frame order follows the video's own timeline, so there's no filename-sort trap here like the sequence nodes. And mind the memory math: a long video with frame_load_cap at 0 and select_every_nth at 1 is a huge batch - cap it or subsample, or ComfyUI will thank you later.

CategoryPlaybook 3D

Inputs (7)

NameTypeDefaultDescription
idSTRINGNode ID
labelSTRINGNode Label
frame_load_capINT00–1000
skip_first_framesINT00–1000
select_every_nthINT11–1000
default_valueoptIMAGE
default_urloptSTRING

Outputs (1)

NameTypeDescription
imagesIMAGE