Hey selfhosters!
I’m Priveetee, the creator of TypeType.
TypeType is an open-source, self-hostable video app for YouTube, NicoNico and BiliBili. No ads, no trackers, no sponsors, no recommendation feed. You run it on your server, and your watch data stays there.
Why it exists
I wanted to watch YouTube without ads and sponsors, so I tried Piped in 2024. It worked well for a while, then the bugs added up and the experience no longer fit what I wanted. I considered contributing upstream, but my vision for the app was too different. So I started TypeType instead.
That was a lot of testing, failed attempts and late nights. Today it is a small community project with more than 450+ stars on GitHub, a web app, an Android app and regular releases.
What it does
You get search, trending, channels, comments, playlists and subscriptions across the three services. Your history, subscriptions, playlists, favorites, watch progress and settings live in your own PostgreSQL. Change device, log in, and pick up where you left off.
There is also allow-list filtering. You can choose which channels and playlists are available for the whole instance or for specific users, which helps with family use.
TypeType is an ecosystem, not a YouTube frontend. The stack includes a Kotlin/Ktor server, PostgreSQL, Dragonfly, a media proxy, a token service and a downloader with Garage storage.
Self-hosting
The stack uses Docker and prebuilt images, so there is nothing to compile. The recommended install is one interactive command:
curl -fsSL https://raw.githubusercontent.com/TypeType-Video/TypeType/main/scripts/install-stack.sh | bash
The installer prepares the Compose files, generates the secrets, picks free ports when needed and sets up Garage so downloads work. It asks before pulling images and starting services. If you prefer to review everything first, there is a --download-only option and a manual Compose guide that explains each step.
One detail worth knowing: HOST_PORT_SERVER changes the port on your host, not inside the container. The server and its health check stay on 8080 internally.
Around 2 GB of RAM is comfortable for a small instance, and the first account you create becomes the admin. The app and frontend are MIT, while the server is GPL-3.0 because it uses PipePipeExtractor.
Why NicoNico and BiliBili
YouTube alone would have been simpler, but TypeType is built around PipePipeExtractor, and I spend a lot of time learning how PipePipe and its extractor work. NicoNico and BiliBili are part of what makes PipePipe different from NewPipe. Supporting them is my way of respecting that work and where the project comes from.
The community
TypeType stopped being just my project a while ago. People open issues, send PRs, test beta builds, translate the app and the docs, and share ideas. Some of the best parts of TypeType started that way. Huge thx to everyone involved, this thing is ours :)
Translations are always welcome. I could run them through AI, but I have no way to review the language-specific details, and I’d rather not ship a translation I can’t stand behind. So if you speak a language and want to help, it’s yours. Feedback is welcome too, good or bad.
Links
Quick Start: https://typetype-video.github.io/Docs-TypeType/self-hosting/quick-start
Manual Compose setup: https://typetype-video.github.io/Docs-TypeType/self-hosting/docker-compose
Configuration and ports: https://typetype-video.github.io/Docs-TypeType/self-hosting/configuration
Troubleshooting: https://typetype-video.github.io/Docs-TypeType/self-hosting/troubleshooting
Translations: https://translate.typetype.video/engage/typetype/
Source code: https://github.com/TypeType-Video/TypeType
PipePipeExtractor: https://github.com/TypeType-Video/PipePipeExtractor
Experiment instance: https://experiment.typetype.video/
AI use disclosure
- Implementation: 70% Generated
- Testing: 60% Pair
- Documentation: 60% Pair, the rest by me and the community
- Review: 70% Pair
- Design: 0%
- Deployment: 0%
all 2 comments