diff --git a/README.md b/README.md index e961c81..79a0834 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,12 @@ dialog names exactly what will be deleted before anything happens. feed sorted by publish date. Thumbnails are mirrored to local disk so the feed still renders with no network. +**Undownloaded videos stream in-app.** YouTube's iframe embed refuses a Tauri window — +its origin is `tauri://localhost`, not an http(s) origin, which produces "Error 153" — so +`yt-dlp` resolves YouTube's HLS master playlist instead. Its variants are H.264 + AAC up +to 1080p, which AVFoundation plays natively in WKWebView with adaptive bitrate. One player +element serves both local files and streams. + **Downloads shell out to `yt-dlp`,** pinned to H.264 video + AAC audio in an MP4 container. That caps quality at 1080p — YouTube only serves H.264 that high, and anything above it is VP9 or AV1, which the app's own player cannot reliably decode. The tradeoff is @@ -58,9 +64,10 @@ npm run tauri build -- --bundles app && cp -R src-tauri/target/release/bundle/ma 1. **Settings** — follow the seven-step Takeout guide, then **Import subscriptions.csv**. 2. **Refresh** — pulls the latest videos from every channel. 3. **Download** on any video — progress shows live on the button; click again to cancel. -4. Click a **downloaded** video to play it in the app. Click an undownloaded one to open - it on YouTube. -5. **Offline** — the app detects a lost connection and collapses the feed to your +4. Click any video to play it **in the app** — a downloaded one from disk, anything else + streamed. Nothing hands off to a browser. +5. **List or Tiles** — switch layouts in the top bar; the choice is remembered. +6. **Offline** — the app detects a lost connection and collapses the feed to your downloads. The connectivity pill also toggles a forced offline mode for testing. Videos land in `~/Movies/FlightTube` (changeable in Settings). Appearance follows the @@ -104,7 +111,7 @@ src-tauri/src/ net.rs reachability probe commands.rs Tauri command surface — delegates only src/ - components/ Sidebar, TopBar, VideoRow, DownloadButton, Player, Settings + components/ Sidebar, TopBar, VideoRow, VideoTile, DownloadButton, Player, Settings components/ui.tsx the design system's component vocabulary, in one place components/TakeoutGuide the seven-step export walkthrough hooks/ useFeed, useDownloads, useConnectivity, useAppearance