fix: archive yt-dlp videos when other assets fail #4

Merged
fmartingr merged 1 commit from yt-dlp-ignore-errors into master 2026-10-02 11:46:03 +02:00
Owner

Summary

A missing or failed English subtitle download made the whole yt-dlp archival fail, even when the video was available.

  • Add an ignore_errors setting to the yt-dlp archiver. It is true by default.
  • With ignore_errors, yt-dlp runs with --ignore-errors. A failed subtitle or thumbnail download becomes a warning, and the video still downloads.
  • A non-zero exit is accepted only when a video or audio file exists. The yt-dlp WARNING and ERROR lines go to the log with the link URL.
  • Per-format streams left by a failed merge (title.f400.mp4, title.f251-drc.webm) do not count as media. A video without its audio stream still fails.
  • --no-warnings is removed from the download command, so failure messages show the warnings that explain them.

Limits

  • The format-stream check matches numeric format IDs only (YouTube). Named IDs such as fhls-720p are not detected.
  • The missing-asset warnings appear only in the server log, not in the UI.

Tests

  • go test ./internal/archival/... passes.
  • New tests cover the setting default, the config override, the media-file check, and the warning extraction.
## Summary A missing or failed English subtitle download made the whole yt-dlp archival fail, even when the video was available. - Add an `ignore_errors` setting to the yt-dlp archiver. It is `true` by default. - With `ignore_errors`, yt-dlp runs with `--ignore-errors`. A failed subtitle or thumbnail download becomes a warning, and the video still downloads. - A non-zero exit is accepted only when a video or audio file exists. The yt-dlp `WARNING` and `ERROR` lines go to the log with the link URL. - Per-format streams left by a failed merge (`title.f400.mp4`, `title.f251-drc.webm`) do not count as media. A video without its audio stream still fails. - `--no-warnings` is removed from the download command, so failure messages show the warnings that explain them. ## Limits - The format-stream check matches numeric format IDs only (YouTube). Named IDs such as `fhls-720p` are not detected. - The missing-asset warnings appear only in the server log, not in the UI. ## Tests - `go test ./internal/archival/...` passes. - New tests cover the setting default, the config override, the media-file check, and the warning extraction.
fix: archive yt-dlp videos when other assets fail
All checks were successful
CI / goreleaser-lint (pull_request) Successful in 7s
CI / format (pull_request) Successful in 31s
CI / lint (pull_request) Successful in 5m52s
CI / test (pull_request) Successful in 6m52s
CI / build (pull_request) Successful in 7m6s
CI / e2e (pull_request) Successful in 31m45s
e62a252cd4
Add an ignore_errors setting to the yt-dlp archiver, enabled by default.
It passes --ignore-errors so a failed subtitle or thumbnail download no
longer stops yt-dlp before the video download. A non-zero exit is
accepted when a media file exists; the WARNING and ERROR lines are
logged instead of failing the archival.

Per-format streams left by a failed merge (title.f400.mp4) do not count
as media, so a video without its audio stream still fails.

--no-warnings is no longer passed to the download, so failure messages
include the yt-dlp warnings that explain them.
fmartingr merged commit 73241097fa into master 2026-10-02 11:46:03 +02:00
fmartingr deleted branch yt-dlp-ignore-errors 2026-10-02 11:46:04 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
fmartingr/hako!4
No description provided.