# invio
invio is mijn persoonlijke YouTube-client, gebouwd rond Invidious-instances. Kijk wat je wilt zonder de advertenties, de tracking of het Google-account. Het bestaat eigenlijk uit drie delen:
- core: een gedeelde Rust-bibliotheek voor Invidious-requests, feeds, het resolven van streams, SponsorBlock, Return YouTube Dislike, en alle opslag-, import/export- en synclogica
- android: een Android-app gebouwd met Compose, Media3 en WorkManager
- adwaita: een GNOME-app met GTK, GStreamer, WebKitGTK en dezelfde Rust-core
Die gedeelde core is precies het punt: één plek waar de logica leeft, twee native apps erbovenop in plaats van een of andere webwrapper. Fix ik een bug in het resolven van streams of bouw ik iets als SponsorBlock-skipping, dan krijgen beide apps het, de apps zelf blijven dun en doen alleen UI en afspelen voor hun platform.
Abonnementen leven in de app, niet in een account ergens, en je kunt ze importeren en exporteren, dus verhuizen tussen apparaten of helemaal weg van invio is jouw keuze, niet de mijne. Er is ook basale sync tussen de apps via de gedeelde core, nog simpel, maar het betekent dat mijn telefoon en laptop het meestal eens zijn over wat ik volg.
Nog een klein eerlijk punt over Invidious: je bent afhankelijk van publieke instances, en die komen en gaan. In invio kies je zelf je instance en wissel je als er eentje traag wordt of sterft, wat je in de praktijk soms gewoon zult doen. Dat is de prijs van niet rechtstreeks met Google praten.
Het is een persoonlijk project, vooral voor eigen gebruik gebouwd, en de code is source available in plaats van open source gelicenseerd: je mag hem lezen en ervan leren, maar hergebruiken of herdistribueren mag niet zomaar. Kijk gerust rond op de forge als je nieuwsgierig bent.
~$