mirror of
https://github.com/thegeneralist01/archivr
synced 2026-07-21 18:55:36 +02:00
doc(server): scope per_item_quality guarantee to the UI
The server validates per_item_quality value shapes but does not enforce that every playlist item has an entry. Items without an override get the global quality as a yt-dlp cap with graceful fallback. The 'must choose quality for unsupported videos' invariant is a UI constraint enforced by the frontend before submission. A direct API caller bypassing the UI accepts yt-dlp's standard cap-and-fallback behavior. Document this scope explicitly so the gap is intentional, not accidental.
This commit is contained in:
parent
c8a0397c26
commit
aed9c581fd
1 changed files with 7 additions and 0 deletions
|
|
@ -872,6 +872,13 @@ async fn capture_handler(
|
|||
)));
|
||||
}
|
||||
}
|
||||
// NOTE: the server does not enforce that every playlist item has a per_item_quality
|
||||
// entry. Items without an override receive the global `quality` value, which
|
||||
// yt-dlp applies as a format-selector cap (e.g. bestvideo[height<=1080]) and
|
||||
// falls back gracefully to the best available format below that cap. The
|
||||
// "must choose quality for unsupported videos" invariant is enforced by the
|
||||
// frontend before submission; a direct API caller bypassing the UI accepts
|
||||
// yt-dlp's standard cap-and-fallback behavior.
|
||||
let mounted = mounted_archive(&state, &archive_id)?;
|
||||
let archive_paths =
|
||||
archive::read_archive_paths(&mounted.archive_path).map_err(ApiError::from)?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue