Spec: docs/design/library-app.md section 3 heavy tier + section 4 step 5 (PR #2056). Deliver:
- Opt-in download per item (yt-dlp format selection from a per-user preferred-quality setting + per-item override).
- Storage accounting: bytes per item/source surfaced via the API; per-source cap that pauses further downloads at the cap (surfaced, never silent).
- Per-source rules (e.g. 'this channel: always download at 720p').
- Download progress via the jobs table; resumable/retryable.
Acceptance: trigger a download at a chosen quality, watch progress on the card, see the final size in accounting, hit a source cap and see the paused state.
Spec: docs/design/library-app.md section 3 heavy tier + section 4 step 5 (PR #2056). Deliver:
Acceptance: trigger a download at a chosen quality, watch progress on the card, see the final size in accounting, hit a source cap and see the paused state.