Probe media metadata with ffprobe
The ffprobe job runs the way ffprobe runs on your own machine. Send a command with the media URL, optionally with extra ffprobe flags, and get back a normalized summary alongside the full structured report.
The minimal command is just the URL. Core sections and JSON output are added for you, so the response always includes the complete format, streams, and chapters even if you never pass a flag. Add flags on top when you want more, like -show_frames for per-frame detail. The ffprobe prefix itself is optional.
import { createClient } from "@rendobar/sdk";
const client = createClient({ apiKey: "rb_YOUR_KEY" });
const job = await client.jobs.create({ type: "ffprobe", params: { command: "ffprobe -show_format -show_streams https://cdn.rendobar.com/assets/examples/sample.mp4" },});
const done = await client.jobs.wait(job.id);console.log(done.output.data.summary.kind); // "video"The summary handles the parts of ffprobe that are awkward to read raw. Rotation comes back as 0, 90, 180, or 270 from the display matrix. Embedded cover art no longer counts as a video stream. HDR is a single boolean, variable frame rate is flagged, and the audio layout is normalized even on formats where ffprobe itself omits it. It works on video, audio, and image URLs, and summary.kind tells you which one you have.
ffprobe is available from the REST API, the dashboard playground, the SDK, the CLI (rb ffprobe), and the MCP server’s probe_media tool. Probe jobs run on their own lane and don’t count against your concurrency limit, so a batch of them dispatches at once. Full details in the ffprobe reference.
