Commit Graph

10 Commits

Author SHA1 Message Date
hl-valdemar 0641859d95 feat: support YouTube VTT subtitle selection 2026-10-27 13:19:43 +01:00
hl-valdemar edb17f76e3 feat: animate hovered chapter titles and active seek segments 2026-10-25 03:09:34 +01:00
hl-valdemar 119fe2e737 feat: segment playback slider with resolved YouTube chapters 2026-10-25 02:29:07 +01:00
hl-valdemar f6fe617d92 fix: use IPv4 for YouTube playback extraction
The default route returned a YouTube anti-bot challenge; the same bundled extractor and media URLs work over IPv4 without cookies. Limit the route choice to canonical YouTube videos so generic sites keep their existing routing.
2026-10-24 03:02:47 +02:00
hl-valdemar 4576080955 fix: populate queue titles independently of playback extraction
The sidebar scheduler waited for playback and used full stream extraction for titles. Use independent utility-priority title requests, native YouTube oEmbed, and metadata-only extraction for generic sites. Preserve foreground title precedence and stale row protection.

Verified: make check-youtube check-queue check-resolved check-adaptive check-stream all.
2026-10-22 18:43:21 +02:00
hl-valdemar 6ed7db8167 fix: resolve queued stream metadata in the background
Queue labels were only enriched through selected-entry playback. Resolve unplayed titles serially at utility priority, preempt enrichment for playback, and bind updates to queue item IDs.

Verified: make check-resolved check-queue check-youtube all.
2026-10-22 18:38:01 +02:00
hl-valdemar b132bab393 feat: resolve HTTP video URLs with bundled yt-dlp 2026-10-22 17:15:40 +02:00
hl-valdemar 31c4759c1d build: bundle playback and YouTube dependencies
Build pinned LGPL playback libraries and package standalone YouTube helpers inside the signed native app. Keep the CLI inside the app and relocate private library links for installation without runtime Homebrew dependencies.

Record adaptive fixture completion in its EXIT trap: cancellation can exit with status 143 before the TERM trap writes its marker, while native pause and quality preservation remain correct.
2026-10-12 01:52:51 +02:00
hl-valdemar 4d4c3e6b0a feat: choose YouTube quality with a 1080p default 2026-10-11 02:54:01 +02:00
hl-valdemar 8fb08db6f3 feat: stream YouTube video with coordinated audio and video inputs
Resolve public YouTube URLs through external yt-dlp and play selected streams in the existing native window.

Independent bounded network readers keep one authored timeline. Successful seeks clear FFmpeg's sticky aborted-read AVIO error; manifest seekability uses native format flags rather than a top-level I/O handle.

Verified real YouTube playback, seeking, frame stepping, compact mode, cancellation, and the complete native regression checks.
2026-10-10 23:02:19 +02:00