ComfyUI Node

UV Metadata Probe

Find out what a video actually is before you touch it

By GeekatplayStudio·Created 5 months ago·Updated 5 months ago· 0
UV Metadata Probe
    • metadata_json
    path

    Sometimes you just need to know what a file is before you decide how to treat it. UV_MetadataProbe is the pack's little X-ray: point it at any video path and it hands back a JSON string describing the file's container, codec, fps, duration, resolution, whether it has audio, and - the genuinely useful bit - whether it probably has an alpha channel.

    It's a thin node and it owns it. One input, path, one output, metadata_json, and it does nothing else. No side effects, no file writes, no encoding. You feed it a path and read the result with a Show Text node, or just eyeball it in the node graph's preview. There's nothing to configure.

    Under the hood it shells out to ffprobe (the sibling binary that ships alongside ffmpeg - the pack resolves ffmpeg from your system PATH first, then falls back to the one bundled with imageio-ffmpeg), pulls the stream info, and condenses it into a summary. The fields it picks are the ones that actually matter for planning a workflow:

    • container - the format name (mp4, mov, mkv...)
    • codec - what the video stream is actually encoded with
    • fps - as reported by the file, which is why UV_LoadVideo has an fps_override input
    • resolution, duration
    • audio_present - is there sound to mux?
    • alpha_likely_present - derived from the pixel format; a yuva... pix_fmt means transparency

    That last field is the sleeper feature. It's the cheap check that tells you whether a source actually carries an alpha channel, which decides your whole master-export strategy: an alpha source wants a ProRes 4444 master from UV_SaveMaster, and a non-alpha source rendered as ProRes 4444 is just a massive waste of disk. Probe first, export second.

    It's also a nice sanity check before a transcode or mux: if the probe says the container is mov and the codec is ProRes, you already know UV_AudioMux is going to complain if you ask it to write an mp4, and you can head that off before running the graph.

    Install

    Installs with the pack, no special handling:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GeekatplayStudio/ComfyUI-UniversalVideoIO
    cd ComfyUI-UniversalVideoIO
    pip install -r requirements.txt
    

    Restart ComfyUI and it shows up under UniversalVideoIO. No models, no downloads. The only real dependency is that ffprobe has to be reachable - it usually is, since it comes alongside ffmpeg. If the node returns an "error" field in its JSON instead of a summary, that's ffprobe failing to read the file, not the node failing. Check the path first; check your ffmpeg install second.

    CategoryUniversalVideoIO

    Inputs (1)

    NameTypeDefaultDescription
    pathSTRING

    Outputs (1)

    NameTypeDescription
    metadata_jsonSTRING