Main features
- Adaptive bitrate transcoding to any quality, including the original
- No required folder structure or manual metadata fixes
- Metadata from TMDB and TVDB
- Hardware acceleration with VA-API, Intel QSV or NVIDIA
- Intro and credits detection by audio fingerprinting or chapter titles
- PGS, VobSub and SSA/ASS subtitles with embedded fonts, also on web and Chromecast
- Thumbnail previews on the progress bar
- OpenID Connect sign-in and per-user permissions
- Web, Android and Chromecast clients
- Official Helm chart for Kubernetes
What Kyoo does
Kyoo is a self-hosted video server for movies, series and anime, presented by its author as an alternative to Jellyfin or Plex. Its main idea is low maintenance. You do not need to arrange files in a particular folder layout or fix metadata by hand: the scanner matches badly named files, and the README says a file that is not recognized correctly counts as a bug. Pointing Kyoo at a download directory is, in the author’s words, a supported way to use it.
Kyoo has no plugin system. Features are meant to be built in, and the list is focused on watching video well: dynamic transcoding with adaptive bitrate, so the player switches quality to suit the connection, thumbnail previews when you hover over the progress bar, automatic detection of intros and credits through audio fingerprinting or chapter names, and careful subtitle support. Image-based PGS and VobSub subtitles and styled SSA/ASS subtitles work, using fonts embedded in the video, even in the browser and on Chromecast.
Clients and accounts
Supported clients are the web app, an Android app that uses a VLC-based player (ExoPlayer is optional), and Chromecast. An Android TV app is planned. There is no iOS app. The front end is written in React Native, and the README explains that the project is developed by one person, which limits the number of clients.
Sign-in can go through any OpenID Connect provider, such as Google, Discord or Authelia. Permissions are set through claims: the first user becomes the administrator, new users can be required to wait for verification, and guests can be blocked, allowed to browse, or allowed to browse and play. API keys are available for integrations, and the API is documented.
Self-hosting Kyoo
Kyoo is split into services that run together with Docker Compose: an API written in TypeScript, an authentication service and a transcoder in Go, a scanner in Python, the front end, PostgreSQL and Traefik. Installation consists of downloading the release docker-compose.yml, filling in a .env file with the library path, a cache path for transcoder data and optional TMDB or TVDB credentials, and starting the stack. Hardware transcoding is enabled with a Compose profile for VA-API, Intel QSV or NVIDIA (the last needs the NVIDIA container toolkit). An official Helm chart covers Kubernetes, and the README says running several replicas is still in progress.
Updating means fetching the new Compose file, checking the .env against the new example and pulling the images.
Hosted version
There is no hosted service. A live demo with open-licensed films runs at kyoo.zoriya.dev.
Limitations
Kyoo is video only: it does not handle music, audiobooks or photos. Client coverage is narrow, with no iOS or TV apps yet. Version 5 rewrote most of the code, and two earlier features, watch-list sync with external services and offline downloads, are marked as not yet reimplemented. Running several services and PostgreSQL is heavier than a single-binary server, and the project depends on one main developer.
Who it suits
Kyoo suits people whose video files come with messy names, anime watchers in particular, and who mainly watch in a browser, on Android or through Chromecast. If you need TV apps, music libraries or live TV, Jellyfin covers more ground. Both are options for leaving Plex.
Technical details
Self-hosting needs
- Docker Compose
- PostgreSQL
Built with
- TypeScript
- Go
- Python
- React Native
GitHub topics
- docker
- ffmpeg
- golang
- jellyfin
- mediabrowser
- netflix
- next
- plex
- python
- react-native
- self-hosted
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.