Skip to content

docs: rewrite the ffprobe page, correct the fabricated sample output - #49

Merged
a-essawy merged 1 commit into
mainfrom
docs/ffprobe-page-rewrite
Jul 21, 2026
Merged

docs: rewrite the ffprobe page, correct the fabricated sample output#49
a-essawy merged 1 commit into
mainfrom
docs/ffprobe-page-rewrite

Conversation

@a-essawy

Copy link
Copy Markdown
Contributor

Three claims on the live page were wrong. All checked against production with a real key; assertions for each now live in rendobar/rendobar#366.

The sample output was fabricated. The summary and response examples showed 1920×1080, 12.48s, 29.97fps, 4271822 bytes for sample.mp4. The real file is 1280×720, 5.013s, 24fps, 352121 bytes. Every number a reader could verify was wrong. Replaced with the actual probe output.

INPUT_FETCH_FAILED is not always retryable. The table promised retryable: true and told readers to refresh an expired link and retry. downloadInputs marks any 4xx permanent, so a 404 or an expired presign comes back retryable: false. The page now says to read the flag instead of mapping the code.

INPUT_URL_BLOCKED is not a job failure. It is a 400 on POST /jobs, so it moved to the pre-flight paragraph next to VALIDATION_ERROR.

Smaller fixes:

  • The many-files example passed bare filenames ("a.mp4", "b.mov") to an API that takes URLs.
  • The sample response showed "warnings": []. The field is omitted when empty, never sent as an empty array.

Structure: the auto-fill table, the suppression warning, and the two output-shape sections all circled the same rule, that your writer flag and your -show_* flags decide the response. That is now one diagram plus the table, and the duplicated job-envelope JSON links to /concepts/job instead. Prose is down from roughly 1400 words to 950. The "How it runs" internals and the "Common uses" list are gone.

Test plan

Against production: 16 assertions covering auto-fill, the category-based suppression rule, -select_streams/-show_entries pass-through, the csv writer, all four kind classifications, the four pre-flight rejections, INPUT_URL_BLOCKED, both job error codes with their real retryable values, the concurrency exemption, and the data-only output shape. All green.

Frontmatter and plan-limit validators pass.

The summary and output examples claimed 1920x1080, 12.48s, 29.97fps for
sample.mp4. The real file is 1280x720, 5.013s, 24fps, so every number a
reader could check was wrong. Replaced with the actual probe output.

The error table promised retryable: true for INPUT_FETCH_FAILED and told
readers to refresh an expired link and retry. A 4xx is marked permanent by
the downloader, so an expired or missing URL comes back retryable: false.
The table now says to read the flag. INPUT_URL_BLOCKED moves to the
pre-flight paragraph, where it actually happens: it is a 400 on POST /jobs,
not a job failure.

Also: the many-files example used bare filenames (a.mp4, b.mov) where the
API takes URLs, and the empty warnings array in the sample response is
never sent (the field is omitted when there is nothing to report).

Replaces the auto-fill table, the suppression warning, and the two output
sections with one diagram of the writer and -show_ decision, which is what
actually governs the response. Prose down from ~1400 words to 950.
@a-essawy
a-essawy merged commit bc317c7 into main Jul 21, 2026
1 check passed
@a-essawy
a-essawy deleted the docs/ffprobe-page-rewrite branch July 21, 2026 16:20
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