mirror of
https://github.com/yattee/yattee.git
synced 2026-10-23 21:22:53 +00:00
81aa47196fb370560dd9f5c43d0ee6c94707622c
Local data is always a valid context. The legacy validator predates that: it treats local as unavailable without a Yattee Server, which is a feed concern the feed reports itself — and since the correction now moves the data context with it, that would have quietly put users on somebody's backend account, overwriting a local choice made on another device. Stale feed responses no longer touch anything. Rejecting only the videos still let a request from a login the cache had moved off overwrite the new one's loading state, error state and pagination — replacement requests are allowed to overlap, so both were in flight. The unreachable retry timers are cancelled when the namespace reloads. A migrated account reuses its instance's UUID, so the same ID can exist under the next Apple account, and an old timer would declare that account reachable on the strength of a verdict about someone else's. Rewriting a credential's sync flag is skipped when it already matches and restores the original if the re-add fails. Changing that flag means delete-then-add, and the delete propagates to every device — turning sync on should never be able to log the user out.
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%
