No description
Find a file
2026-07-08 15:35:05 +02:00
README.md Update Git forge host references 2026-07-08 15:35:05 +02:00

Invio

Invio is my personal app for watching and managing YouTube content through Invidious instances.

The idea is pretty simple: keep as much logic as possible in one shared Rust core, then have small native apps around it for the platforms I use. Android gets a Compose app, GNOME gets a libadwaita app, and the core keeps the boring but important parts consistent between them.

Repositories

  • core - shared Rust core for Invidious requests, feeds, stream resolving, SponsorBlock, Return YouTube Dislike, storage, imports/exports, and sync logic.
  • android - Android app built with Kotlin, Jetpack Compose, Media3, WorkManager, and Android WebView.
  • adwaita - GNOME/libadwaita app using GTK, GStreamer, WebKitGTK, and the Rust core directly.

What I am trying to build

Invio is Invidious-first. It uses configured Invidious instances for feeds, search, metadata, comments, and playback when possible. Some instances have browser checks or fail from time to time, so the apps also have code for instance health, retrying, and solving challenges in a real web view.

The apps are meant to cover the usual things I want from a video app:

  • subscriptions and channel feeds
  • search
  • watch history
  • playlists and library lists
  • downloads
  • Shorts
  • SponsorBlock
  • Return YouTube Dislike
  • import, export, and sync of app data

This is not trying to be a perfect clone of any official app. It is more a native, private-feeling client that works the way I like.

Project status

This is a personal project, mostly built for my own use and experiments. Things can move around, break, or be unfinished for a while.

Invio is not affiliated with YouTube, Google, Invidious, SponsorBlock, or Return YouTube Dislike.

Source availability

The code is currently source available for reading and reference. It is not open source licensed. Unless a separate license is added, no permission is granted to reuse, redistribute, or relicense the code.