feat(probe): ffprobe wrapper #59

Merged
naps62-yolo merged 4 commits from issue/19-ffprobe into main 2026-08-22 20:52:10 +01:00
4 Commits
Author SHA1 Message Date
Miguel PalhasandClaude Opus 5 60f7ddda2a refactor(probe): use arr-core for pt-PT versus pt-BR
ci / rust (pull_request) Successful in 1m22s
ci / web (pull_request) Successful in 8s
e2e / e2e (pull_request) Successful in 59s
#57 landed the §5.2 signal order in arr-core::lang while this branch was
open. arr-probe now feeds it the two signals a file carries — stream
strings and the container's BCP-47 tag — instead of keeping a second
copy of the rule.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 20:45:54 +01:00
Miguel Palhas 14fa9e43d8 Merge remote-tracking branch 'origin/main' into issue/19-ffprobe 2026-08-22 20:41:31 +01:00
Miguel PalhasandClaude Opus 5 4e880413ae fix(probe): do not hide prober failures or cover art
ci / web (pull_request) Successful in 6s
ci / rust (pull_request) Successful in 1m30s
e2e / e2e (pull_request) Successful in 1m35s
Review on #59. select_feature skipped every probe error, so a missing
ffprobe or a timeout reported "no video file" for a torrent that has
one; only per-file content failures are skipped now. And an audio file
with embedded artwork reports the cover as a video stream, which made a
soundtrack look importable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 20:39:25 +01:00
Miguel PalhasandClaude Opus 5 3927927466 feat(probe): ffprobe wrapper
ci / web (pull_request) Successful in 8s
ci / rust (pull_request) Successful in 1m59s
e2e / e2e (pull_request) Successful in 1m40s
Post-download truth for DESIGN.md §5.6: resolution, codec, HDR with the
Dolby Vision profile as a number, per-track audio language plus the title
and handler_name strings §5.2 needs, subtitles, duration and size.

Also picks the feature file out of a multi-file torrent — largest video
file, checked against the expected runtime so an extras reel does not get
imported as the film.

The fixture clips are generated by scripts/make-probe-fixtures.sh. The two
Dolby Vision ones splice a dvcC/dvvC box into a real HEVC clip, since x265
will not encode DV without an RPU.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 20:33:57 +01:00