Kotlin/Ktor extraction server wrapping PipePipeExtractor
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-22 18:56:32 +00:00
.github ci: compile only affected server modules 2026-09-21 17:41:19 +00:00
deploy/nginx ops: add full dev mirror stack in server repo 2026-04-08 21:43:52 +02:00
gradle chore: update server dependencies 2026-08-08 12:50:04 +02:00
openapi feat: persist autoplay countdown setting 2026-09-19 16:58:22 +00:00
scripts chore: update organization references 2026-07-15 14:14:58 +02:00
server-admin chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-auth refactor: co-locate tests with owning modules and add test-fixtures 2026-09-18 22:54:25 +02:00
server-cache refactor: co-locate tests with owning modules and add test-fixtures 2026-09-18 22:54:25 +02:00
server-core refactor: integrate modular server architecture 2026-09-21 08:43:01 +00:00
server-db refactor: integrate modular server architecture 2026-09-21 08:43:01 +00:00
server-domain chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-downloader chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-http chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-playback test: cover live SABR demand continuity 2026-09-22 18:56:32 +00:00
server-portability refactor: co-locate tests with owning modules and add test-fixtures 2026-09-18 22:54:25 +02:00
server-sabr chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-services chore: update PipePipeExtractor dependency 2026-09-21 17:41:19 +00:00
server-test-support refactor: co-locate tests with owning modules and add test-fixtures 2026-09-18 22:54:25 +02:00
server-token-gateway fix: remove global BiliBili cookie configuration 2026-09-22 09:52:43 +00:00
src fix: widen live SABR read-ahead cushion 2026-09-22 15:08:49 +00:00
.dockerignore chore: add Docker build, compose service, and CI workflow 2026-03-12 07:19:57 +01:00
.env.example fix: remove global BiliBili cookie configuration 2026-09-22 09:52:43 +00:00
.gitignore perf: make sabr windows progressive 2026-07-09 07:54:18 +02:00
build.gradle.kts chore: update PipePipeExtractor dependency 2026-09-21 09:56:22 +00:00
CONTRIBUTING.md fix: require explicit local extractor path 2026-08-09 13:20:24 +02:00
docker-compose.arm64.yml chore: refresh server build dependencies 2026-07-29 15:43:54 +02:00
docker-compose.dev-mirror.yml chore: refresh server build dependencies 2026-07-29 15:43:54 +02:00
docker-compose.yml chore: refresh server build dependencies 2026-07-29 15:43:54 +02:00
Dockerfile ci: compile only affected server modules 2026-09-21 17:41:19 +00:00
garage.toml ops: add full dev mirror stack in server repo 2026-04-08 21:43:52 +02:00
gradle.properties chore: bump server to 1.8.2 2026-09-20 20:51:25 +00: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 docs: document presence API 2026-09-16 13:04:03 +02:00
README.md docs: move AI transparency notice 2026-09-18 10:57:13 +02:00
settings.gradle.kts refactor: co-locate tests with owning modules and add test-fixtures 2026-09-18 22:54:25 +02: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.