MediaUtilities_AudioURLLoader
Load audio from any URL — no API key, no account, no secret handshake
- AUDIO
The name is honest and the claims are modest: give it a URL to an audio file and it downloads it, decodes it, and hands you a standard AUDIO wire. No key, no account, no API. Under the hood it's just requests doing a GET and torchaudio decoding the file - a couple of lines of Python that, once they're a node, stop you from leaving ComfyUI every time you need a backing track in your graph.
Why you'd reach for it
Reference audio for lip-sync. An input clip for an audio-to-video model like LTX-2.3's T2A and A2V modes. A foley track or music bed to preview alongside your frames. Or a pure download-and-save rig: chain it with MediaUtilities_AudioDuration and MediaUtilities_SaveAudio and you've got a "grab this file from the internet and keep it" utility that never leaves the graph.
How it works
It validates the URL (scheme plus host - https://example.com/audio.mp3 is the default), streams the file to a temp file in 8 KB chunks, guesses the format from the URL path's extension (.mp3, .wav, .flac, .ogg, .m4a, defaulting to mp3 if it can't tell), loads it with torchaudio, deletes the temp file, and returns the audio as the same {"waveform", "sample_rate"} dict that core ComfyUI audio nodes and VideoHelperSuite use. So it plugs straight into anything that accepts AUDIO, including this pack's preview, duration, and save nodes.
Inputs and outputs
- url (STRING) - the direct URL of an audio file. That's the entire input list.
- AUDIO - the decoded audio, ready to wire anywhere.
Installing it
It's part of ComfyUI-MediaUtilities, so one install covers this and the pack's other nodes. ComfyUI Manager: Manager → Install Custom Nodes → search "ComfyUI-MediaUtilities". Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ThanaritKanjanametawatAU/ComfyUI-MediaUtilities
cd ComfyUI-MediaUtilities
pip install -r requirements.txt
Then restart ComfyUI. No model files to download; torch/torchaudio are usually already present in your ComfyUI environment. On the Windows portable build, use the embedded Python's pip so the deps land in the right environment.
Gotchas
This is where the node gets sneaky, and it's worth reading the source for this one:
- It fails silently. On any error - bad URL, 404, blocked host - it returns one second of silence instead of raising an exception. The workflow "completes" and you get a quiet clip. The pack logs with DEBUG on by default, so check your console, or wire
MediaUtilities_AudioDurationright after it and see if you get ~1.0s. - Direct file URLs only. No YouTube, no playlist pages, no streaming endpoints that need auth or client-side logic. It's a plain GET.
- Some CDNs 403 a bare Python user-agent. The code sends no custom headers, so a URL that plays fine in your browser can still refuse this request.
- Format comes from the URL path, not the file content. Signed or parameter-heavy URLs with no clean extension are the most likely to trip it up.
For a flat file on a normal host, this node just works - it's when the internet fights back that you need to remember its polite way of failing.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | https://example.com/audio.mp3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |