Audio Visualizer API

POST /visualize

About this tool

Podcast promos, music drops, and social teasers need motion even when the hero asset is audio-first. `/visualize` pairs `video_url` (often a branded template) with `audio_url` and a `style` selector among `bars`, `wave`, `spectrum`, or `ring`, letting FFmpeg drive filter graphs that react to amplitude data. JSON-only requests with subscription-authenticated keys keep operations uniform: public URLs in, async task metadata out, zero multipart shortcuts.

Template videos should loop cleanly; mismatch between duration and audio length triggers behaviors documented near this anchor—some styles loop, others fade. Loudness normalization before visualization reduces flicker; consider offline limiting if clients send extremely dynamic EDM masters. GPU demand sits between simple cuts and full VC jobs, so plan concurrency carefully before Black Friday campaigns. Treat every render as a billboard test: log template resolution, frame rate, and audio loudness integrated from the API response so creative reviews never argue about which copy shipped.

Unlike browser-based visualizers that drop frames on low-power laptops, cloud FFmpeg renders consistent MP4 outputs ideal for paid ads. Chain `/cut` afterward to shave leader frames or `/merge_urls` to append sponsor bumpers automatically. Designers iterate by tweaking palette JSON hinted in docs while engineers keep automation immutable via version-controlled payloads.

Observability surfaces FFT stage timings when rings or spectra saturate CPU. Tie logs to creative brief IDs so studios know which permutation caused failures. Abuse controls throttle excessive resolutions—another reason tiers matter.

Always HTTPS-fetch both assets; cross-origin intermittent 403 errors waste queue slots and frustrate testers who forget to unblock bots. Advertising ops sometimes steer `/visualize` from spreadsheets with creative IDs, BPM metadata, and template URLs exported from design tools—link task IDs back to spreadsheet rows so traffickers rerun only failures after tweaking stems. Mention subscription burst limits in runbooks so producers know whether to drip batches overnight or spread jobs across tenants.

Try it now

How it works

  1. Host template video and mastered audio

    Upload both files to CDN endpoints reachable anonymously, recording precise URLs for JSON.

  2. Choose `style` enum

    Map creative direction to `bars`, `wave`, `spectrum`, or `ring` exactly as enumerated—typos fail validation immediately.

  3. POST `/visualize` with API key

    Send JSON referencing both URLs. Receive `status_url` pointing to FFmpeg progress monitors.

  4. Poll and publish rendered promo

    Download the energized MP4, validate beat sync by eye, and ship through your ads manager.

Frequently asked questions

Do I need HDR templates?

HDR inputs transcode differently; consult docs for accepted color tagging. Many teams stick to SDR templates for predictable social delivery.

What if audio is stereo?

Visualizer filters collapse or channelize per documented behavior. Mention channel expectations in QA checklists.

Can I supply audio-only?

The API expects both URLs to define composite output dimensions. Provide a looping neutral video if necessary.

Why async tasks?

FFT + video encoding rarely finish inside single HTTP timelines. Poll `status_url` just like every other FFmpeg tool.

How do subscriptions throttle styles?

Some styles cost more GPU; metering may differentiate them. Audit billing docs before guaranteeing unlimited spectra renders.