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%
  • Natanox@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 hours ago

    The project idea looks really cool and genuinely solves a problem (though I would’ve preferred a Nextcloud sync and improved extractors for NewPipe & Freetube), however the amount of generated code and permissive policy (allowing to just have complete implementations generated) scares me off. It sounds like there are huge amounts of code no human ever looked at.

    • TypeType@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      6 hours ago

      Hey, thx for the kind words about the project, and for taking the time to write this up (˶ᵔ ᵕ ᵔ˶)

      Just to clear up the NewPipe and FreeTube part: TypeType doesn’t use them, we run on PipePipeExtractor, and I contribute upstream to PipePipe whenever I can.

      PipePipe is a different project with its own services and its own direction, and we have nothing to do with them these days.

      On the generated code, I totally get the concern. It’s not a mass of code nobody ever looked at, I read what ships, I test it, and I maintain it myself. These days I also maintain it with other contributors, but I still review what goes in, for example https://github.com/TypeType-Video/TypeType-Frontend/pull/62

      The disclosure is just me being honest about the tools involved. I understand why people focus on that first, with all the AI slop out there, but it’s a bit frustrating sometimes. There’s a real history behind the project, with reviews, tests and releases.

      I try to stay as transparent as I can. And honestly, at the end of the day I have a great community, friendly and supportive, and that’s enough for me.

      I just share the project to offer an alternative. Concretely, I have nothing to gain from it. As long as I’m alive, TypeType will be properly maintained ♡