TypeType-Server is the Kotlin/Ktor HTTP API behind TypeType. It wraps PipePipeExtractor for supported media services and stores instance and user data in PostgreSQL.
If you want to run a complete TypeType instance, use the central stack rather than deploying this service alone.
| Area | Examples |
|---|---|
| Extraction | Streams, manifests, search, suggestions, trending, comments, and channels |
| Playback sessions | YouTube SABR sessions, formats, segments, seeks, and recovery state |
| User data | Accounts, history, subscriptions, playlists, favorites, progress, and settings |
| Imports | YouTube Takeout and PipePipe backup ingestion |
| Integrations | TypeType-Token, TypeType-Downloader, media proxying, OIDC, and notifications |
| Administration | Instance settings, users, sessions, allow lists, and bug reports |
The React frontend communicates with this service over HTTP. Frontend source code does not belong in this repository. Download execution belongs in TypeType-Downloader, and YouTube token and decoder work belongs in TypeType-Token.
| Role | Technology |
|---|---|
| Language and runtime | Kotlin on JDK 25 |
| HTTP server | Ktor with Netty |
| Extraction | PipePipeExtractor |
| Persistence | PostgreSQL, Exposed, and HikariCP |
| Cache | Dragonfly through the Redis protocol |
| Build and tests | Gradle, JUnit, Testcontainers, and JaCoCo |
The OpenAPI entry point is openapi.yaml. Split schemas and paths live under openapi/.
The API includes public extraction routes and authenticated routes for user data and administration. Authentication, configuration, reverse proxy, and self-hosting instructions live in the TypeType documentation.
Requirements:
- JDK 25
- Docker Engine and Docker Compose v2 for PostgreSQL and Dragonfly
cp .env.example .env
docker compose up -d postgres dragonfly
./gradlew shadowJar
java -jar build/libs/typetype-server-all.jarThe server listens on http://localhost:8080 by default.
For a complete development stack, clone the central TypeType repository with its submodules.
./gradlew test
./gradlew shadowJar
./gradlew validateOpenApiRead CONTRIBUTING.md before opening a pull request. Bug reports and feature requests belong in the central issue tracker.
TypeType-Server is licensed under GPL-3.0, as required by its PipePipeExtractor integration.