TypeType is a self-hosted, privacy-respecting video platform with a modern web client, private user features, and a server-side extraction boundary. It is built for people who want a clean video experience without handing watch history, subscriptions, playlists, and preferences to a public platform.
This project is still young. Expect active changes while watch, recommendations, imports, and mobile layouts continue to mature.
A TypeScript web application and self-hosting stack for TypeType. The frontend runs in the browser, talks to TypeType-Server over HTTP, and keeps extraction out of the web codebase.
The app focuses on a calm interface for watching videos, managing subscriptions, importing existing data, and keeping user state on your own instance.
- Not a YouTube frontend clone.
- Not a fork of Piped, FreeTube, LibreTube, Invidious, or NewPipe.
- Not a standalone extractor. TypeType needs a reachable TypeType-Server instance.
- Not affiliated with YouTube or any upstream video platform.
- Watch pages with subtitles, audio language selection, progress tracking, playlists, favorites, and watch later.
- Home recommendations with local privacy controls and feedback actions.
- Shorts-style vertical browsing for short-form videos.
- YouTube Takeout and PipePipe backup import flows.
- Download jobs through a separate downloader service.
- A Docker Compose stack for self-hosting the frontend, backend, cache, database, token service, and artifact storage.
The installer is for running the stack, not just cloning the source repositories:
curl -fsSL https://raw.githubusercontent.com/Priveetee/TypeType/main/scripts/install-stack.sh | bashIt installs to ~/typetype-stack, generates local downloader credentials, chooses free ports when needed, starts the services, and bootstraps Garage.
To download stack files without starting Docker:
curl -fsSL https://raw.githubusercontent.com/Priveetee/TypeType/main/scripts/install-stack.sh | bash -s -- --download-onlyFor an interactive setup from a cloned repository:
./scripts/setup-stack.shManual setup is also supported:
cp .env.example .env
docker compose pull
docker compose up -d
./scripts/bootstrap-garage.sh
docker compose psDefault local endpoints are http://localhost:8082 for the frontend, http://localhost:8080 for the API, and http://localhost:8081 for the token service. Host ports can be changed through .env.
If you only want the source code, clone the repositories directly:
git clone https://github.com/Priveetee/TypeType.git
git clone https://github.com/Priveetee/TypeType-Server.git
git clone https://github.com/Priveetee/TypeType-Downloader.git
git clone https://github.com/Priveetee/TypeType-Token.gitInstall dependencies:
bun installCreate the frontend environment file:
cp apps/web/.env.example apps/web/.envSet the API URL:
VITE_API_URL=http://localhost:8080Run the dev server:
bun run devOpen http://localhost:5173.
bun run check
bun run build
bun run knip
bun run sherifUpdate the whole stack:
docker compose pull
docker compose up -d --force-recreate
docker compose psUpdate only the frontend:
docker compose pull typetype
docker compose up -d --force-recreate --no-deps typetypeTypeType is a clean rewrite, but the product direction was shaped by existing open-source video clients and extractor projects.
- Piped for UX and API pattern references.
- FreeTube for video player behavior references.
- PipePipe and PipePipeExtractor for multi-service extraction behavior.
MIT. See LICENSE.