github TypeType-Video/TypeType v1.10.0
TypeType 1.10.0

4 hours ago

TypeType 1.10.0

TypeType 1.10.0 brings an experimental recommender you run yourself, a first version of the YouTube livestream chat, and a player that recovers instead of resetting. It also lands a large batch of community pull requests, a seasonal theme, and the documentation in four languages.

Thx to everyone who reported, tested, translated or sent code. A big part of this release started with a report or a pull request from the community, and I really appreciate the time you put into it.

Self-Hosted Recommender (experimental)

  • Add an experimental, optional recommendation service to the stack. It is off by default, offered by the installer, and a stack without it behaves exactly as before. #306
  • Build the home feed on the instance from its own data, with an Algorithm page to choose and tune how the feed is built. Frontend #55, Server #95
  • Keep it opt-in per profile, store its settings, opinions and choices per profile, and carry them in exports and backups. A refusal stays isolated to the profile that made it.
  • Document the service, its install and the algorithm tuning. Self-hosting guide, Algorithm guide
  • Treat it as experimental: the algorithms, and the home feed they build, will keep changing. You turn it on per profile, and you can turn it off to go back to the standard home page at any time.

Live Streams

  • Show the YouTube livestream chat beside the player, with the author name, avatar and message. #297
  • Reconnect on its own when the chat drops, show a skeleton while it connects, and batch incoming messages so the panel stays smooth.
  • Release the extractor resources after the chat ends and report the failing stage when it cannot be initialized.

Playback and Providers

  • Keep the player mounted and the position intact when toggling cinema mode. #295
  • Recover SABR playback instead of resetting it: keep the media mounted during a recovery, wait for the network to come back, and confirm autoplay once the stream resumes.
  • Keep YouTube extraction answering under load, pace the videos opened at the provider, and renew the provider session after repeated refusals. Server #92
  • Support BiliBili multi-part videos and collections, with episode thumbnails and section tabs in the collection panel. #294, Frontend #39
  • Support the BiliBili session cookie to unlock 1080p and 4K streams, and fix a channel page returning HTTP 422. #287, #286
  • Generate multi-quality DASH manifests so BiliBili plays at full resolution. Frontend #36
  • Normalize the BiliBili session timestamp and recommend the top matching creator in search. Frontend #46, Frontend #37, Server #90
  • Improve danmaku: synchronize playback, smooth the animation, support BiliBili bullet comments, move the overlay beneath the control bar, and add a desktop D key to toggle them. Frontend #48

Watch Page and Playlists

  • Add persistent shuffle and a per-playlist choice to hide upcoming videos. #303
  • Expand the watch metadata to the full width in cinema mode. Frontend #47
  • Stop requesting the recommendation videos nobody is watching yet, and read the notifications once a minute instead of repeatedly. Frontend #54
  • Show a subscription feed being prepared instead of a misleading empty feed, and prepare a card only when the pointer rests on it.
  • Prevent the recommended-videos and guest-screen flashes on the watch page, and show a playlist skeleton while the page loads. Frontend #42, Frontend #38

Interface and Languages

  • Add a system theme mode with a three-way toggle that follows the OS in real time. Frontend #44
  • Add Simplified Chinese to the web app, and the documentation in French, German, Spanish and Simplified Chinese. Frontend #45
  • Add web fullscreen mode with its control and hotkey, session-platform navigation with anti-flicker transitions, and an instant redirect on the landing page when the home is disabled. Frontend #41, Frontend #43, Frontend #40
  • Normalize the channel search result layout.
  • Add a seasonal Halloween theme you can open from the navbar. It is a 3D scene, so it asks for graphics acceleration and stays off on its own. Frontend #57, Frontend #56

Accounts and Imports

  • Allow TOTP and password 2FA fallback when the platform authenticator is not supported during remote login. Token #21
  • Import a YouTube Takeout faithfully in any language: keep the likes apart from the dislikes, keep the current subscriptions with their dates, accept a handle in the channel URL, and leave the ads out of the imported history. Server #93

Self-Hosting and Dependencies

  • Offer the optional recommender in the installer, and give the cache a memory limit so it forgets its oldest entries instead of growing. #305
  • Keep proxied thumbnails in the shared cache. Server #94
  • Refresh the container base images, the Go and Kotlin dependencies, and the Ktor and Jackson versions, and update the bundled extractor.
  • Move the build and validation pipelines to Woodpecker across the repositories.

Downloads

  • Fix H.264 and AV1 downloads, which failed because the requested codec profile was matched case-sensitively. #304
  • Delete expired artifacts from Garage after their URL grace, evict expired jobs from the cache, and move the downloader image to ffmpeg 9.

Issues Fixed in This Dev Line

  • #254: Simplify the initial setup.
  • #276: Importing a YouTube Takeout could fail.
  • #283: Separate autoplay on open from autoplay next video.
  • #286: Visiting a BiliBili channel returned HTTP 422.
  • #287: Support the BiliBili session cookie for higher quality.
  • #288: Restore cursor visibility over a paused player.
  • #289: Add configurable content density for grids and related videos.
  • #294: Support BiliBili multi-part videos and collections.

Thx

A huge thx to @Aquarius-Situla for all the frontend work on this release, from the playback fixes and danmaku rework to BiliBili collections, the system theme, web fullscreen and Simplified Chinese. Thx as well for the BiliBili creator-search improvement in Server #90, the remote-login changes in Server #89 and Token #21, and for reporting the cinema-mode player reset in #295. The frontend work spans Frontend #36 to Frontend #48.

Thx to @Toastienergy for reviewing the release, testing the beta and sharing feedback on the recommender setup. Thx as well for suggesting random recommendations in #270 and contributing the German translation.

Thx to @uniextra for reporting the Takeout import issue in #276, and to @kinouzero for reporting the YouTube remote-login issue in #250.

Thx to @gohoski for reporting the downloader issue in #304, and to @AphoticUmbral for requesting playlist shuffle in #303 and reporting the loading issue in #302.

Thx to @ilar for requesting YouTube livestream chat in #297, and to @arcoast for sharing feedback on the initial setup in #254.

A special thx to sponsors @Toastienergy and @crichemond for supporting TypeType.

If u want to support TypeType, please share it with others! If u want to support it financially, u can do so through GitHub Sponsors!

Updating

Follow the update guide.

If necessary, follow the rollback guide.

Don't miss a new TypeType release

NewReleases is sending notifications on new releases.