fix(video): duidelijke melding voor kapot/geen-video vs niet-ondersteund formaat #85

Merged
janpeter merged 1 commit from fix/video-status-messages into main 2026-09-21 19:25:40 +02:00
Owner

Samenvatting

De speler toonde voor een probe_failed-bestand (beschadigd of geen geldige video — bijv. een versleuteld/niet-uitgepakte download) dezelfde behandeling als voor een niet-ondersteund profiel: een generieke melding plus een Opnieuw voorbereiden-knop die nooit kan slagen. Nu:

  • probe_failed → "Dit bestand is geen leesbare video (mogelijk beschadigd of onvolledig).", zonder retry en zonder de misleidende Lichtere versie voorbereiden-knop.
  • unsupported_video_profile → "Dit videoformaat wordt niet ondersteund."
  • Andere (tijdelijke) fouten → onveranderd de Opnieuw voorbereiden-knop.

De logica staat in een pure, framework-vrije helper src/lib/video-playback/status-message.ts (terminalVideoMessage / videoCanRetry) met een eigen test; Slideshow.tsx gebruikt die.

Aanleiding

Een .mkv in de bibliotheek speelde niet af. Diagnose op max2: het bestand is geen geldige Matroska-container (ffprobe → Invalid data found), status probe_failed. De keten deed het juiste (geen render), maar de UI-melding gaf de gebruiker geen handelingsperspectief. Bibliotheekbreed: 196/200 video's ready, 2 unsupported, 2 probe_failed (die ene map).

Verificatie (lokaal)

  • status-message.test.ts 4/4; volledige suite 778 tests, 771 pass, 0 fail, 7 skipped.
  • typecheck, lint (0 errors, 3 bestaande warnings), build groen.

🤖 Generated with Claude Code

## Samenvatting De speler toonde voor een `probe_failed`-bestand (beschadigd of geen geldige video — bijv. een versleuteld/niet-uitgepakte download) dezelfde behandeling als voor een niet-ondersteund profiel: een generieke melding plus een `Opnieuw voorbereiden`-knop die nooit kan slagen. Nu: - `probe_failed` → **"Dit bestand is geen leesbare video (mogelijk beschadigd of onvolledig)."**, zonder retry en zonder de misleidende `Lichtere versie voorbereiden`-knop. - `unsupported_video_profile` → **"Dit videoformaat wordt niet ondersteund."** - Andere (tijdelijke) fouten → onveranderd de `Opnieuw voorbereiden`-knop. De logica staat in een pure, framework-vrije helper `src/lib/video-playback/status-message.ts` (`terminalVideoMessage` / `videoCanRetry`) met een eigen test; `Slideshow.tsx` gebruikt die. ## Aanleiding Een `.mkv` in de bibliotheek speelde niet af. Diagnose op max2: het bestand is geen geldige Matroska-container (`ffprobe` → *Invalid data found*), status `probe_failed`. De keten deed het juiste (geen render), maar de UI-melding gaf de gebruiker geen handelingsperspectief. Bibliotheekbreed: 196/200 video's `ready`, 2 `unsupported`, 2 `probe_failed` (die ene map). ## Verificatie (lokaal) - `status-message.test.ts` 4/4; volledige suite 778 tests, 771 pass, 0 fail, 7 skipped. - typecheck, lint (0 errors, 3 bestaande warnings), build groen. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(video): onderscheid kapot/geen-video van niet-ondersteund formaat in de speler
Some checks failed
CI / test (historical-bootstrap) (pull_request) Successful in 48s
CI / test (video-migration) (pull_request) Successful in 1m1s
CI / docker-build (pull_request) Successful in 5s
CI / test (suite) (pull_request) Failing after 2m36s
563b74ff74
Een probe_failed-bestand (beschadigd of geen geldige video, zoals een niet-uitgepakte
download) kreeg dezelfde melding en een zinloze 'Opnieuw voorbereiden'-knop als een
niet-ondersteund profiel. Nu toont de speler voor probe_failed 'Dit bestand is geen
leesbare video (mogelijk beschadigd of onvolledig).' zonder retry, en voor
unsupported 'Dit videoformaat wordt niet ondersteund.'. Logica in een pure,
geteste helper (terminalVideoMessage/videoCanRetry).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
s4m-codex-reviewer left a comment

Verdict: APPROVED

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Findings

  • Geen blokkerende findings gevonden.

Review-notities

  • De nieuwe src/lib/video-playback/status-message.ts centraliseert de gebruikersboodschap en retry-regel netjes buiten Slideshow.tsx.
  • De tests in src/lib/video-playback/status-message.test.ts dekken het onderscheid tussen probe_failed, unsupported formaat, retrybare failures en niet-terminale toestanden.
  • De UI-wijziging sluit functioneel aan op de intentie: probe_failed toont een definitieve melding, biedt geen zinloze retry en onderdrukt de generieke originele-bron foutmelding voor die specifieke terminale status.
# Verdict: APPROVED Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings - Geen blokkerende findings gevonden. ## Review-notities - De nieuwe `src/lib/video-playback/status-message.ts` centraliseert de gebruikersboodschap en retry-regel netjes buiten `Slideshow.tsx`. - De tests in `src/lib/video-playback/status-message.test.ts` dekken het onderscheid tussen `probe_failed`, unsupported formaat, retrybare failures en niet-terminale toestanden. - De UI-wijziging sluit functioneel aan op de intentie: `probe_failed` toont een definitieve melding, biedt geen zinloze retry en onderdrukt de generieke originele-bron foutmelding voor die specifieke terminale status.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Media-Organizer!85
No description provided.