Kotlin/Ktor extraction server wrapping PipePipeExtractor
  • Kotlin 99.5%
  • Python 0.2%
  • JavaScript 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-12 21:30:59 +01:00
.github ci: drop the manual GitHub image workflow, Woodpecker publishes 2026-11-04 07:18:07 +01:00
.woodpecker ci: publish release and rc images from version tags 2026-11-04 06:04:29 +01:00
deploy/nginx ops: add full dev mirror stack in server repo 2026-04-08 21:43:52 +02:00
gradle build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
openapi feat: add a setting to hide creator end screens 2026-11-11 19:24:03 +01:00
scripts chore: stop counting the end of a video as a playback stall 2026-11-05 12:21:41 +01:00
server-admin build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-auth build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-cache build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-core feat: add a setting to hide creator end screens 2026-11-11 19:24:03 +01:00
server-db feat: add a setting to hide creator end screens 2026-11-11 19:24:03 +01:00
server-domain feat: add a setting to hide creator end screens 2026-11-11 19:24:03 +01:00
server-downloader build: pin one extractor revision for every module 2026-10-25 14:01:22 +01:00
server-http build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-playback fix: keep a token session that plays when a signal was wrong 2026-11-12 21:06:39 +01:00
server-portability build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-sabr build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-services fix: keep a token session that plays when a signal was wrong 2026-11-12 21:06:39 +01:00
server-test-support build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
server-token-gateway fix: skip an exit name gluetun does not know 2026-11-12 15:20:34 +01:00
src feat: add a setting to hide creator end screens 2026-11-11 19:24:03 +01:00
.dockerignore chore: add Docker build, compose service, and CI workflow 2026-03-12 07:19:57 +01:00
.env.example feat: add opt-in Bilibili CDN region, prefetch, and Akamai config 2026-11-01 14:14:26 +08:00
.gitignore perf: make sabr windows progressive 2026-07-09 07:54:18 +02:00
build.gradle.kts build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
CONTRIBUTING.md feat: prepare server 1.5.0 (#77) 2026-08-10 17:44:03 +01:00
docker-compose.arm64.yml chore: bump server dependencies and runtime images 2026-10-25 10:49:09 +00:00
docker-compose.dev-mirror.yml chore: bump server dependencies and runtime images 2026-10-25 10:49:09 +00:00
docker-compose.yml chore: bump server dependencies and runtime images 2026-10-25 10:49:09 +00:00
Dockerfile build: update server dependencies, Gradle 9.9.1 and Temurin 25.0.5 2026-11-11 09:27:03 +01:00
garage.toml ops: add full dev mirror stack in server repo 2026-04-08 21:43:52 +02:00
gradle.properties build: use the extractor with updated dependencies 2026-11-11 09:32:15 +01:00
gradlew chore: update gradle wrapper 2026-06-30 07:50:02 +02:00
gradlew.bat chore: update gradle wrapper 2026-06-30 07:50:02 +02:00
LICENSE chore: add readme and license 2026-03-06 08:45:40 +01:00
openapi.yaml feat: serve comment voice reply audio 2026-11-05 21:05:56 +01:00
README.md docs: move AI transparency notice 2026-09-18 10:57:13 +02:00
settings.gradle.kts fix: release live chat extractor resources after closure 2026-10-09 05:12:34 +00:00

TypeType

TypeType Server

Extraction, API, and private user data backend for TypeType.

You want to know the current position of TypeType about AI ? Go check this.

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.

Responsibilities

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.

Stack

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

API contract

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.

Development

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.jar

The server listens on http://localhost:8080 by default.

For a complete development stack, clone the central TypeType repository with its submodules.

Checks

./gradlew test
./gradlew shadowJar
./gradlew validateOpenApi

Read CONTRIBUTING.md before opening a pull request. Bug reports and feature requests belong in the central issue tracker.

License

TypeType-Server is licensed under GPL-3.0, as required by its PipePipeExtractor integration.