mirror of
https://github.com/yattee/yattee.git
synced 2026-10-23 13:12:53 +00:00
e1ebb7151146a5c3d5209157f329581d262140b5
Fetched account records are staged under the identity the fetch began under, not whichever is current when they arrive — the engine's fetch spans several delegate events and the Apple account can move between them, which would have filed one identity's accounts under another's. Subscription fetches are fenced against context switches, not only against a provider being discarded. Providers are deliberately kept across a switch — each is one account's cache — so an earlier account's fetch could finish afterwards and put its channels on screen while unsubscribes went to the account now selected. The subscriptions view reloads when the *effective* context moves, which a credential arriving, expiring or being rejected does without the stored context changing at all. Feed requests report what they learn about the account, like every other authenticated call: a credential that expired during a feed-only refresh kept looking signed in, and the fallback never engaged. The classification behind that verdict now exists once, on AccountsManager, rather than in each provider.
Yattee 2 is in the works! A new version of the app is being built with a refreshed experience. It pairs with the new Yattee Server — a self-hosted backend powered by yt-dlp that supports 1000+ sites. Join the TestFlight beta to try early builds, and check the new documentation site at docs.yattee.stream for guides, roadmap and changelog.
Features
- Native user interface built with SwiftUI with customization settings
- Player queue and history
- Player component with custom controls, gestures and support for 4K playback
- Fullscreen, Picture in Picture and background audio playback
- SponsorBlock, configurable categories to skip
License
Yattee and its components is shared on AGPL v3 license.
Languages
Swift
96.9%
Ruby
2.7%
C
0.3%
