macOS is borked: FfprobePlatformDefaults points it at an ffmpeg archive (evermeet…/ffmpeg-6.0.zip) with no ffprobe in it, so <config>/ffmpeg/ffprobe never exists and every import fails ("Failed to extract metadata from file"). Confirmed on macos-latest. (Repro: fresh osx-x64 install → import anything.)
But it's really a symptom of how ffprobe gets fetched, which is rough across the board:
- unpinned + unverified — rolling URLs,
GetChecksum() returns null
- slow + racy on first boot — every fresh install downloads a whole ffmpeg archive on startup; Docker is slower to become usable, and imports fail until it lands
- version drift — Windows (gyan 8.x) vs Linux (johnvansickle 7.x): same file, different metadata
Two ways I could help — I'd lean toward (b):
a) Fix macOS only — a one-liner (point it at a source that has ffprobe). Quick, but a band-aid: the fetch stays unpinned, unverified, and slow/racy on every other platform.
b) Adapt what I already built for listenarr-testdata — the sustainable path. It:
- pulls a pinned
ffprobe for every platform you ship, from one source (jellyfin-ffmpeg)
- verifies it against GitHub's release-asset digest before use (out-of-band; a bad download is refused)
- ships only
ffprobe — you never spawn ffmpeg
Happy to PR either.
macOS is borked:
FfprobePlatformDefaultspoints it at an ffmpeg archive (evermeet…/ffmpeg-6.0.zip) with noffprobein it, so<config>/ffmpeg/ffprobenever exists and every import fails ("Failed to extract metadata from file"). Confirmed onmacos-latest. (Repro: freshosx-x64install → import anything.)But it's really a symptom of how ffprobe gets fetched, which is rough across the board:
GetChecksum()returnsnullTwo ways I could help — I'd lean toward (b):
a) Fix macOS only — a one-liner (point it at a source that has
ffprobe). Quick, but a band-aid: the fetch stays unpinned, unverified, and slow/racy on every other platform.b) Adapt what I already built for
listenarr-testdata— the sustainable path. It:ffprobefor every platform you ship, from one source (jellyfin-ffmpeg)ffprobe— you never spawnffmpegHappy to PR either.