Skip to content

feat: add rb ffprobe command#107

Draft
a-essawy wants to merge 3 commits into
mainfrom
feat/ffprobe-command
Draft

feat: add rb ffprobe command#107
a-essawy wants to merge 3 commits into
mainfrom
feat/ffprobe-command

Conversation

@a-essawy

Copy link
Copy Markdown
Contributor

Summary

Adds rb ffprobe [flags] <url-or-file> for probing media metadata in the cloud, mirroring rb ffmpeg's structure (auth flow, StepRenderer spinner, error handling, data-only output rendering) but simplified for a fast, data-only job: it uses client.jobs.wait() directly instead of the WebSocket/machine-context ceremony rb ffmpeg needs for longer renders.

  • Positional arg accepts a URL or a local file path (local files are auto-uploaded first via the existing upload lib, same as rb ffmpeg).
  • Flags: --keyframes, --raw, --json, --quiet, --no-wait, --timeout N (clamped to 900s).
  • Default output: result.output.data.summary pretty-printed to stdout (pipeable to jq). --raw prints the full output.data (format/streams/chapters). --json prints the full job result.
  • Registered in src/registry.ts under the CORE group.
  • No SDK bump needed — jobs.create/jobs.wait are generic over the string job type in the currently-published @rendobar/sdk.

Notes

  • The ffprobe job type is not live in prod yet — this command will error (job type not found) until rendobar/rendobar#349 ships. Do not merge this before that lands.
  • Opened as a draft for that reason.

Test plan

  • pnpm test — 149 tests pass (includes new ffprobe-command.test.ts covering flag parsing, url-vs-local detection, timeout clamping, and the local-upload reuse path — no network calls)
  • pnpm typecheck — clean
  • pnpm build — compiles; smoke-tested rb ffprobe (empty-args help), rb ffprobe --help, and the unauthenticated error path locally
  • Live job submission (blocked until the backend ffprobe job type ships)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant