Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d97ddf6
ci: route workflows to R730 runners
Priveetee Aug 31, 2026
b240311
chore: benchmark dev runners
Priveetee Aug 31, 2026
02372b3
fix: enable YouTube remote login in beta rollouts
Priveetee Sep 3, 2026
bc46270
fix: allow beta YouTube direct egress
Priveetee Sep 4, 2026
024f485
fix: make service URLs configurable
Priveetee Sep 8, 2026
473515d
test: align beta egress assertion
Priveetee Sep 8, 2026
50fd99a
fix: track frontend localization fix
Priveetee Sep 8, 2026
498e675
fix: correct frontend submodule revision
Priveetee Sep 8, 2026
6e1bdfb
fix: isolate beta frontend backend DNS
Priveetee Sep 8, 2026
b5002d8
fix: route beta services through isolated server alias
Priveetee Sep 8, 2026
4177067
test: cover beta server alias migration
Priveetee Sep 8, 2026
33107d1
chore: update Garage to 2.4.1
Priveetee Sep 9, 2026
c86388f
feat: consolidate self-hosting initialization
Priveetee Sep 9, 2026
aecc2ee
docs: refresh README visuals and sponsors
Priveetee Sep 9, 2026
00a183d
docs: refresh README animated demos
Priveetee Sep 9, 2026
7f46bbb
docs: refresh README media from beta
Priveetee Sep 9, 2026
70881a4
docs: bust README media cache
Priveetee Sep 9, 2026
30be8f7
docs: pin README media to refreshed assets
Priveetee Sep 9, 2026
e387009
docs: replace slideshow GIFs with continuous beta recordings
Priveetee Sep 9, 2026
9b67530
fix: remove init container after bootstrap
Priveetee Sep 10, 2026
3e97719
fix: target canonical beta compose project
Priveetee Sep 10, 2026
cdafc84
fix: support legacy beta compose project
Priveetee Sep 10, 2026
045ebbd
fix: support legacy stable compose project
Priveetee Sep 10, 2026
d11d299
feat: release TypeType 1.8.1
Priveetee Sep 10, 2026
374fb7b
chore: sync release with main
Priveetee Sep 10, 2026
91dfd11
chore: sync release with main
Priveetee Sep 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,19 @@ GITHUB_REPO=TypeType-Video/TypeType
GITHUB_ISSUE_TEMPLATE=bug_report_backend.md
DOWNLOADER_S3_ACCESS_KEY=SET_ME_ACCESS_KEY
DOWNLOADER_S3_SECRET_KEY=SET_ME_SECRET_KEY
DOWNLOADER_SERVICE_URL=http://typetype-downloader:18093
SUBTITLE_SERVICE_URL=http://typetype-token:8081
YOUTUBE_REMOTE_LOGIN_SERVICE_URL=http://typetype-token:8081
YOUTUBE_REMOTE_LOGIN_CALLBACK_BASE_URL=http://typetype-server:8080
TYPETYPE_API_BASE=http://typetype-server:8080
S3_ENDPOINT=http://garage:3900
S3_PUBLIC_ENDPOINT=http://garage:3900
TYPETYPE_SERVER_HOST=typetype-server
TYPETYPE_SERVER_PORT=8080
TYPETYPE_TOKEN_HOST=typetype-token
TYPETYPE_TOKEN_PORT=8081
TYPETYPE_DOWNLOADER_HOST=typetype-downloader
TYPETYPE_DOWNLOADER_PORT=18093
GARAGE_RPC_SECRET=SET_ME_GARAGE_RPC_SECRET
YOUTUBE_REMOTE_LOGIN_ENABLED=false
YOUTUBE_OUTBOUND_PROXY_URL=
Expand Down
60 changes: 51 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,36 @@ multi-service discovery, personal libraries, downloads, administration, and
SABR playback without installing a client.

<p align="center">
<img src="assets/screenshots/01-hero-watch-desktop.png" alt="TypeType playing a YouTube video" width="100%">
<img src="https://raw.githubusercontent.com/TypeType-Video/TypeType/7f46bbb/assets/screenshots/01-hero-watch-desktop.png" alt="TypeType playing a YouTube video" width="100%">
</p>

### Search across three services

<p align="center">
<img src="assets/gifs/01-multi-service-search.gif" alt="Switching a TypeType search between YouTube, NicoNico, and BiliBili" width="960">
<img src="assets/gifs/01-multi-service-search-fluid.gif" alt="Browsing search results from YouTube, NicoNico, and BiliBili" width="960">
</p>

### Personal library

<p align="center">
<img src="assets/gifs/02-library-flow-fluid.gif" alt="Browsing playlists and personal video libraries in TypeType" width="960">
</p>

### Web playback

<p align="center">
<img src="assets/gifs/03-watch-flow-fluid.gif" alt="Browsing a video page and its player in TypeType" width="960">
</p>

### Mobile web

| Home | Playback | Audio only |
| Home | Search | Playback |
| --- | --- | --- |
| ![TypeType mobile home](assets/screenshots/07-mobile-home.png) | ![TypeType mobile playback](assets/screenshots/11-mobile-watch.png) | ![TypeType mobile audio-only mode](assets/screenshots/12-mobile-audio-only.png) |
| ![TypeType mobile home](https://raw.githubusercontent.com/TypeType-Video/TypeType/7f46bbb/assets/screenshots/07-mobile-home.png) | ![TypeType mobile search](https://raw.githubusercontent.com/TypeType-Video/TypeType/7f46bbb/assets/screenshots/08-mobile-search.png) | ![TypeType mobile playback](https://raw.githubusercontent.com/TypeType-Video/TypeType/7f46bbb/assets/screenshots/11-mobile-watch.png) |

<p align="center">
<img src="assets/gifs/04-mobile-flow-fluid.gif" alt="Browsing TypeType search results on a mobile screen" width="430">
</p>

## Native Android app

Expand All @@ -69,6 +85,23 @@ 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:

```sh
./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.

- [Quick start](https://typetype-video.github.io/Docs-TypeType/self-hosting/quick-start)
- [Manual Docker Compose setup](https://typetype-video.github.io/Docs-TypeType/self-hosting/docker-compose#manual-setup)
- [Configuration](https://typetype-video.github.io/Docs-TypeType/self-hosting/configuration)
Expand Down Expand Up @@ -102,17 +135,26 @@ Read the [localization guide](https://github.com/TypeType-Video/TypeType-Fronten

## Thanks to sponsors

### Recurring sponsor

<p>
<a href="https://github.com/Toastienergy" title="@Toastienergy"><img src="https://github.com/Toastienergy.png?size=128" alt="@Toastienergy" width="64" height="64"></a>
</p>

Thank you to [@Toastienergy](https://github.com/Toastienergy) for supporting
TypeType through a recurring GitHub Sponsors contribution. It helps me cover the
infrastructure and spend more time improving the project.

### One-time donor

<p>
<a href="https://github.com/filippobaroni" title="@filippobaroni"><img src="https://github.com/filippobaroni.png?size=128" alt="@filippobaroni" width="64" height="64"></a>
</p>

A big thx to [@Toastienergy](https://github.com/Toastienergy) and
[@filippobaroni](https://github.com/filippobaroni) for supporting TypeType through
GitHub Sponsors. Their support helps me cover the infrastructure and spend more
time improving the project.
I also thank [@filippobaroni](https://github.com/filippobaroni) for the one-time
GitHub Sponsors donation that helped support TypeType.

If u want to support TypeType financially, u can do so through
If you want to support TypeType financially, you can do so through
[GitHub Sponsors](https://github.com/sponsors/Priveetee).

## For developers
Expand Down
90 changes: 90 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,93 @@
# TypeType 1.8.1

TypeType 1.8.1 focuses on making playback more dependable across YouTube, BiliBili and NicoNico, improving mobile controls, strengthening profiles and notifications, making recommendations service-aware, and simplifying self-hosting.

## Reddit and Lemmy

We are very sad to announce that Reddit has banned the TypeType community! We are still trying to understand why.

It is frustrating to lose a place where people shared feedback, ideas, translations, bug reports and support for one another. We are truly grateful to everyone who helped make that community useful and welcoming.

We are moving the TypeType community to Lemmy:

[Join the TypeType community on Lemmy](https://blorp.lemmy.zip/home/c/TypeType@lemmy.zip)

We hope Lemmy gives TypeType a much better welcome!

Lemmy matters because federation keeps a community connected across instances instead of tying it to a single platform. We want TypeType to have a more independent, open and durable community space.

Please join us, contribute and share. Every test, translation, report, conversation and contribution helps keep this project alive. We hope to see you there!

## Playback and Providers

- Recover stalled and evicted SABR segments instead of leaving playback stuck.
- Improve paused Firefox seeks and isolate WebKit media transitions.
- Preserve the exact playback position across provider changes and source reloads.
- Isolate HLS request generations so stale Chromium requests cannot overwrite current playback.
- Align HLS buffering with the MSE player and release provider resources between videos.
- Keep mobile and compact player controls stable, including horizontal volume sliders.
- Restore volume and cinema-mode state reliably after provider initialization.
- Support custom audio SponsorBlock sliders correctly.
- Fix BiliBili playback failures reported in [#262](https://github.com/TypeType-Video/TypeType/issues/262).
- Improve BiliBili audio selection, bullet comments, media handles, range caching and connection reuse.
- Improve NicoNico playback reloads, media-handle routing and segment caching.
- Keep provider media behind expiring opaque handles.
- Preserve request cancellation during provider playback.
- Update TypeType-Player to MSE `0.1.60`.
- Refresh the PipePipeExtractor integration.

## Profiles, Search and Notifications

- Add account profiles and profile switching, addressing the workflow tracked in [#234](https://github.com/TypeType-Video/TypeType/issues/234).
- Add avatar support and isolated profile data.
- Bind authentication and service notifications to the active profile.
- Add service-aware search and recommendations so each provider receives relevant content.
- Add a panoramic search experience on desktop and mobile.
- Improve playback-progress loading with batch lookups.
- Add RSS video thumbnails.
- Improve notification delivery and preserve notification state during feed refreshes.

## Watch Experience and Localization

- Improve the floating and compact players with fullscreen and return controls.
- Keep player state stable while profile data refreshes.
- Improve mobile layouts and translated-label handling.
- Continue improving the English, French and German interface.
- Add a multilingual Lemmy announcement with a permanent dismissal option.

## Performance and Self-Hosting

- Bound playback, retry and server cache memory.
- Reduce unnecessary BiliBili lookups and reuse range connections.
- Parallelize provider media mapping while preserving cancellation.
- Avoid redundant settings writes and defer player initialization until playback is needed.
- Improve Downloader shutdown, job snapshots and artifact persistence.
- Update Downloader to `1.8.1`.
- Consolidate stack initialization into one short-lived `typetype-init` service, advancing the work tracked in [#254](https://github.com/TypeType-Video/TypeType/issues/254).
- Automate secret generation, Garage configuration and Downloader database setup.
- Make service URLs configurable, continuing the work tracked in [#261](https://github.com/TypeType-Video/TypeType/issues/261).
- Fix hardcoded Nginx service routing from [#251](https://github.com/TypeType-Video/TypeType/issues/251).
- Update Garage to `2.4.1`.

## Issues Fixed in This Dev Line

- [#262](https://github.com/TypeType-Video/TypeType/issues/262): BiliBili videos could not be played.
- [#251](https://github.com/TypeType-Video/TypeType/issues/251): Nginx used hardcoded `dockerdns` routing.

## Thx

Thx to everyone who tested TypeType and shared feedback during this release.

Thx to @Toastienergy for translating the German interface and helping test the beta.

A special thx to @Toastienergy for supporting TypeType.

## Updating

Follow the [update guide](https://typetype-video.github.io/Docs-TypeType/self-hosting/maintenance).

If necessary, follow the [rollback guide](https://typetype-video.github.io/Docs-TypeType/self-hosting/rollback).

# TypeType 1.8.0

TypeType 1.8.0 improves playback reliability, the watch experience,
Expand Down
2 changes: 1 addition & 1 deletion TypeType-Frontend
Submodule TypeType-Frontend updated 108 files
2 changes: 1 addition & 1 deletion TypeType-Server
Submodule TypeType-Server updated 122 files
Binary file added assets/gifs/01-multi-service-search-fluid.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/gifs/01-multi-service-search.gif
Binary file not shown.
Binary file added assets/gifs/02-library-flow-fluid.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/gifs/02-save-to-playlist.gif
Binary file not shown.
Binary file removed assets/gifs/03-resume-from-history.gif
Binary file not shown.
Binary file added assets/gifs/03-watch-flow-fluid.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/gifs/04-mobile-flow-fluid.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/01-hero-watch-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/02-youtube-search-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/03-niconico-search-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/04-bilibili-search-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/05-subscriptions-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/06-history-desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/07-mobile-home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/08-mobile-search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/09-mobile-history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/10-mobile-playlists.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/11-mobile-watch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshots/12-mobile-audio-only.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading