When the user picks 'Best' (or any non-exact preset), the completed-list
quality cell shows only what they requested — but yt-dlp may have
resolved it to anything from 360p to 4K60. Same when they pick a
specific resolution that wasn't available and yt-dlp had to downgrade.
This commit:
- Backend (app/ytdl.py): captures yt-dlp's resolved width / height / fps
/ vcodec / abr in the MoveFiles postprocessor hook and persists them
on DownloadInfo. __setstate__ backfills None for pre-patch persisted
entries so old completed downloads keep loading.
- Interface (ui/src/app/interfaces/download.ts): four new optional
fields on Download.
- UI (ui/src/app/app.ts:formatQualityLabel): when actual differs from
requested, render 'Best · 1080p60' / '1080p · 720p' style. High frame
rates (50+) get appended ('1080p60'); standard rates stay implicit.
Audio shows 'Best · 320 kbps'. Identical actual === requested stays
collapsed to avoid noise.
Backward compatible: old persisted downloads render unchanged since
their new fields stay None and formatActualQuality() returns null.
|
||
|---|---|---|
| .. | ||
| tests | ||
| dl_formats.py | ||
| main.py | ||
| state_store.py | ||
| subscriptions.py | ||
| ytdl.py | ||