The default alternative frontend I have configured is https://piped.video , but you can use any different instance / service if it supports the same YouTube url scheme ({domain}/watch?v=...).
This is configurable in the add-on's options page, you can also access it by clicking on the add-on's icon
It sounds like there is some kind of instance/server which my client/with a cleaner frontend will talk to.
But how does that work and why can youtube not detect it and block it?
Google uses DASH as the manifest file for streaming video. Each video has a corresponding DASH file. You can download the DASH manifest XML file from the Youtube page for the video. Then extract video segment URLs from the file. Those typically go to the googlevideo.com host. Google uses WebM as video container and VP9 for video encoding for the video segment, which most browsers support.
Most streaming players (alternative players) use the MSE API (Media Source Extensions) to feed the downloaded video segment data to the <video> tag to play the video. Most browsers support MSE these days.
- Piped [1] uses NewPipeExtractor [2] (which is also used by NewPipe) to parse YouTube responses. I assume this is somewhat similar to what yt-dlp [3] does ?
- Invidious states in their FAQ [4]: "By default, the video stream is fetched directly from Google's servers (googlevideo.com)".
[1]: https://github.com/TeamPiped/Piped
[2]: https://github.com/TeamNewPipe/NewPipeExtractor
[3]: https://github.com/yt-dlp/yt-dlp
[4]: https://docs.invidious.io/faq/#q-what-data-is-shared-with-yo...
This describes how it works at least tiny bit:
>Invidious does not use the official YouTube API, but scrapes the website for video and metadata such as likes and views.[10]