mirror of
https://github.com/yattee/yattee.git
synced 2026-10-23 13:12:53 +00:00
361f19b7627efded3848ef64cd69b2fbd8e04543
Pagination carried the login it was requested for, but the load that fills the tab in the first place did not. Its subscriptions, feed and playlist requests all resolve well after the credential behind them can have been replaced, and cancelling the previous task does not settle it: a request that already came back races the cancellation and installs the previous person's private videos over the purge that was meant to remove them. Popular and trending stay unfenced — they are unauthenticated, and discarding them on a change of login would cost a fetch for nothing. Discarding the account-scoped content now also forgets how far the feed had been read. The high-water mark belongs to the feed that was thrown away; left behind, it gates pagination against a page the next login never loaded, and that login cannot ask for a second page until its first exceeds a count it knows nothing about.
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%
