Hey (˶ᵔᗜᵔ˶)ノ゙
I'm the creator of TypeType. It's an open-source video app you can host yourself for YouTube, NicoNico, and BiliBili. With one instance, your accounts, subscriptions, history, playlists, watch progress, and settings stay in your own Postgres database not in some big corporation's database deciding what you should watch next.
I built it because I wanted my own front end for the videos I watch, and I was tired of losing my subscriptions and history every time I switched devices. It started as a small thing for me, then people started using it, and now I spend a lot of nights working on it. ^
How it works
It's a web app and a native Android app, both connected to the same instance. Behind the scenes, there's a Kotlin/Ktor server, a React frontend, PostgreSQL, Dragonfly for caching, Garage for downloads, a small Node service for YouTube tokens, and a Go downloader. Only the web container is exposed; everything else stays on the Compose network.
Install
One command. It creates the stack, generates the secrets, picks free ports, sets up Garage, and then asks before starting anything:
curl -fsSL https://raw.githubusercontent.com/TypeType-Video/TypeType/main/scripts/install-stack.sh | bash
The first account you create becomes the admin account. After that, you can close registrations if it's just for you and your friends.
What's inside :)
- Search across the three services, one library, subscriptions, playlists, favorites, and watch progress
- Playback controls for quality, audio tracks, and subtitles, with MSE + SABR
- Video and audio downloads to local or S3-compatible storage
- SponsorBlock, DeArrow, content blocking, imports, and OIDC
- Profiles, parental controls, and channel allow-lists
- An Android app for Android 6+, with no Google Play Services, F-Droid and APK builds, plus a big-screen UI for the couch
- An optional recommender you can run yourself (experimental, off by default, and uses about 1.2 GB of RAM)
Hardware
2 vCPU / 4 GB RAM / 20 GB SSD is enough for one or two people. Go with 4 vCPU / 8 GB RAM / 40 GB SSD if the whole family will use it.
ARM64 works too a Pi 4 or 5 with 4 GB of RAM and an SSD runs a small instance just fine.
Licenses
Because people ask: the stack, frontend, player, token service, and docs are MIT. The server and Android app are GPL-3.0; the downloader is GPL-3.0-or-later. So, not all MIT. ^
AI
Want to know TypeType's current position on AI? Check this.
Community
Honestly, the best part of this project is the community. People are really friendly: they report bugs with useful details, translate the app, send PRs, test the betas, and help each other in the issues. I didn't expect that when I started, and it makes the whole thing way more fun to work on. ^
Links
Thanks for reading!
If you try it and something breaks, open an issue with the version and logs it helps a lot. Have a great day!