Files
netfelix-audio-fix/package.json
Felix Förtsch d2983d5f38
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m30s
skip non-extractable subs (dvdsub/dvbsub/unknown), summarise ffmpeg errors
Abraham Lincoln crashed with exit 234 because the file had 14 dvd_subtitle
streams: our extraction dict only keyed on the long form (dvd_subtitle)
while jellyfin stores the short form (dvdsub), so the lookup fell back
to .srt, ffmpeg picked the srt muxer, and srt can't encode image-based
subs. textbook silent dict miss.

replaced the extension dict with an EXTRACTABLE map that pairs codec →
{ext, codecArg} and explicitly enumerates every codec we can route to a
single-file sidecar. everything else (dvd_subtitle/dvdsub, dvb_subtitle/
dvbsub, unknown codecs) is now skipped at command-build time. the plan
picks up a note like '14 subtitle(s) dropped: dvdsub (eng, est, ind,
kor, jpn, lav, lit, may, chi, chi, tha, vie, rus, ukr) — not extractable
to sidecar' so the user sees exactly what didn't make it.

also added extractErrorSummary in execute.ts: when a job errors, scan
the last 60 stderr lines for fatal keywords (Error:, Conversion failed!,
Unsupported, Invalid argument, Permission denied, No space left, …),
dedupe, prepend the summary to the job's stored output. the review_plan
notes get the same summary — surfaces the real cause next to the plan
instead of burying it under ffmpeg's 200-line banner.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:42:05 +02:00

43 lines
1.1 KiB
JSON

{
"name": "netfelix-audio-fix",
"version": "2026.04.14.21",
"scripts": {
"dev:server": "NODE_ENV=development bun --hot server/index.tsx",
"dev:client": "vite",
"dev": "concurrently \"bun run dev:server\" \"bun run dev:client\"",
"build": "vite build",
"start": "bun server/index.tsx",
"lint": "biome check .",
"format": "biome format . --write",
"test": "bun test"
},
"dependencies": {
"@internationalized/date": "^3.12.0",
"@tanstack/react-form": "^1.28.3",
"@tanstack/react-router": "^1.163.3",
"clsx": "^2.1.1",
"hono": "^4",
"mqtt": "^5.15.1",
"react": "19",
"react-aria-components": "^1.16.0",
"react-dom": "19",
"ssh2": "^1",
"tailwind-merge": "^3.5.0",
"zod": "^4.3.6",
"zustand": "^5.0.11"
},
"devDependencies": {
"@biomejs/biome": "^2.4.4",
"@tailwindcss/vite": "^4.2.1",
"@tanstack/router-plugin": "^1.163.3",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/ssh2": "^1",
"@vitejs/plugin-react-swc": "^4.2.3",
"bun-types": "latest",
"concurrently": "^9.2.1",
"tailwindcss": "^4.2.1",
"vite": "^7.3.1"
}
}