- Shell 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .github | ||
| .woodpecker | ||
| assets | ||
| Docs-TypeType@e2e06e6c6f | ||
| scripts | ||
| systemd | ||
| TypeType-Downloader@8b7cf56131 | ||
| TypeType-Frontend@89d5dd78a3 | ||
| TypeType-Player@4b533516ee | ||
| TypeType-Server@431716b595 | ||
| TypeType-Token@c310e2b557 | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| AI_TRANSPARENCY.md | ||
| CONTRIBUTING.md | ||
| docker-compose.arm64.yml | ||
| docker-compose.dev.yml | ||
| docker-compose.recommender.yml | ||
| docker-compose.yml | ||
| LICENSE | ||
| README.md | ||
| RELEASE_NOTES.md | ||
You want to know the current position of TypeType about AI ? Go check this.
TypeType
TypeType is a self-hosted video platform for YouTube, NicoNico, and BiliBili. Run one private instance, then use it from the responsive web app or the native Android client. Accounts, subscriptions, history, playlists, favorites, watch progress, and settings stay on the instance you control.
Install
Docker Engine and Docker Compose v2 are required for the self-hosted stack.
curl -fsSL https://raw.githubusercontent.com/TypeType-Video/TypeType/main/scripts/install-stack.sh | bash
Web app
The web app runs in a modern browser on desktop and mobile. It provides multi-service discovery, personal libraries, downloads, administration, and SABR playback without installing a client.
Search across three services
Web playback
| Audio only with subtitles | Player color |
|---|---|
![]() |
![]() |
Personal library
| Subscriptions | Playlists | History |
|---|---|---|
![]() |
![]() |
![]() |
Mobile web
| Home | Search | Playback |
|---|---|---|
![]() |
![]() |
![]() |
Native Android app
TypeType Android is the native client for Android phones and tablets. It connects directly to your TypeType instance and includes synchronized accounts, subscriptions, history, playlists, downloads, background audio, Picture in Picture, audio-only playback, captions, SponsorBlock, comments, and native playback controls.
| Home | Native player | Settings |
|---|---|---|
![]() |
![]() |
![]() |
TypeType Android supports Android 6.0 and newer without requiring Google Play Services. Read the Android installation guide for F-Droid and signed APK instructions.
Self-host TypeType
This central repository contains the Docker Compose stack, installer, update and rollback tools, release coordination, and project issue tracker. The web and Android clients both connect to the same TypeType instance.
The installer creates ~/typetype-stack, generates installation-specific secrets, and asks before starting the stack.
The first startup runs one short-lived typetype-init task. It creates the
Downloader database, prepares the Garage configuration, and stores the private
YouTube session secrets in named volumes before the application services start.
Compose removes its container automatically after a successful setup.
For an existing installation, update the Compose files and run:
./scripts/run-stack-init.sh
docker compose up -d --remove-orphans --wait
The migration keeps the existing postgres_data, typetype_secrets, and
Garage volumes. Do not use docker compose down -v during an update: that
would delete the account database, generated secrets, and stored download
artifacts.
Optional: recommender (experimental)
The recommender is a separate service that can build the home page with one of several algorithms each user picks and tunes. It is optional: a stack without it behaves exactly as before and shows no option anywhere.
What it needs:
- about 1.2 GB of memory at rest (the container is capped by
RECOMMENDER_MEMORY_LIMIT, 2 GB by default); - about 1 GB of disk for its image and its language model, downloaded once on first start into the
recommender_modelsvolume (the first start needs internet access and takes a few minutes); - PostgreSQL with the
pgvectorextension: the overlay switches thepostgresservice to an image that ships it, on the same data volume; - its own database (
typetype_recommender) and a shared secret, both created bytypetype-init.
Add it with the installer, which asks, or takes --recommender:
curl -fsSL https://raw.githubusercontent.com/TypeType-Video/TypeType/main/scripts/install-stack.sh | bash -s -- --recommender
Or by hand on an existing stack:
COMPOSE_RECOMMENDER_FILE=docker-compose.recommender.yml ./scripts/run-stack-init.sh
docker compose -f docker-compose.yml -f docker-compose.recommender.yml up -d --wait
The installer switches it on (RECOMMENDER_ENABLED=true); by hand, switch it on in
the admin console. Each user still chooses to turn it on for themselves.
Remove it:
Set RECOMMENDER_ENABLED=false in .env before removing the overlay, or the
installer will enable it again on a future update. For a beta stack, use
docker-compose.dev.yml instead of docker-compose.yml.
docker compose -f docker-compose.yml up -d --remove-orphans --wait
The home page goes back to the standard one and the option disappears. User
choices and opinions stay in the database, and the recommender_models volume
and the typetype_recommender database can be deleted by hand.
All its settings (RECOMMENDER_*, TYPETYPE_RECOMMENDER_IMAGE,
TYPETYPE_POSTGRES_VECTOR_IMAGE) are listed in .env.example.
Maintain your instance
Translations
The Weblate platform is the preferred method of contributing translations to the TypeType web interface.
Read the localization guide for the catalog and contribution workflow.
What TypeType includes
- Responsive web and native Android clients for YouTube, NicoNico, and BiliBili
- Accounts, subscriptions, history, playlists, favorites, and watch progress
- MSE and SABR playback with quality, audio-track, subtitle, and recovery controls
- Video and audio downloads with local or S3-compatible storage
- SponsorBlock, DeArrow, content blocking, imports, OIDC, and instance administration
- No TypeType telemetry; the instance operator controls the deployment and its data
Thanks to sponsors
Recurring sponsor
Thank you to @Toastienergy and @crichemond for supporting TypeType through recurring GitHub Sponsors contributions. It helps me cover the infrastructure and spend more time improving the project.
One-time donor
I also thank @filippobaroni for the one-time GitHub Sponsors donation that helped support TypeType.
If you want to support TypeType financially, you can do so through GitHub Sponsors.
Star history
The chart is rendered by SimRepo, a token-free GitHub star history service.
For developers
Each component has its own repository, tests, release cycle, and license. Pull requests belong in the repository that owns the changed code. Bug reports and feature requests stay in the central issue tracker.
| Repository | Responsibility | License |
|---|---|---|
| TypeType | Stack, installer, releases, coordination, and issues | MIT |
| TypeType-Android | Native Android client | GPL-3.0 |
| TypeType-Frontend | React web client | MIT |
| TypeType-Server | Kotlin API, extraction, and user data | GPL-3.0 |
| TypeType-Player | Browser MSE and SABR playback package | MIT |
| TypeType-Token | YouTube token, decoder, and session service | MIT |
| TypeType-Downloader | Download jobs, muxing, and artifacts | GPL-3.0-or-later |
| Docs-TypeType | User and self-hosting documentation | MIT |
Development changes target each component's dev branch. main represents the stable release line.
Clone the central stack and all public components with:
git clone --recurse-submodules https://github.com/TypeType-Video/TypeType.git
Read CONTRIBUTING.md before opening a pull request.
Privacy and disclaimer
TypeType is designed to provide a private, self-hosted way to use supported media services. The project does not add telemetry or collect usage data. Instance operators control their own accounts, logs, storage, and network configuration.
TypeType is not affiliated with, funded, authorized, endorsed by, or associated with YouTube, Google LLC, NicoNico, BiliBili, or their affiliates. Trademarks, service marks, trade names, and other intellectual property belong to their respective owners.
TypeType is open source software built for learning and research purposes.
License
The orchestration files in this repository are licensed under the MIT License. Each component keeps the license shown in the repository table.













