Changelog: week of May 18, 2026

May 25, 2026 ยท by

Machine-generated

Chat emotes

Chat supports emotes. Streamers manage their own set from the streamer sidebar: upload an emote, name it, remove it. A global set is available in every chat and is managed centrally. Animated emotes stay animated in the message list.

The chat input has an emote picker, and typing an emote name autocompletes it inline against the emotes available in that chat.

Messages can be replied to. A reply renders with the message it answers attached to it.

Scrubbing back into a live stream

A live broadcast can be scrubbed back into while it is still running. The player has a scrubber above the controls covering the whole broadcast so far, from the moment the streamer connected to the live edge. Click anywhere on it to seek; hovering pops a timestamp so a moment can be aimed at before clicking. The LIVE control returns to the edge, and the readout beside it shows the current position.

For API consumers, /streams and /users/{id}/stream return dvr_hls_url alongside hls_url.

Player controls

The player has its own control bar in place of the browser's: play and pause, position, quality, theatre, and fullscreen, all on one row at the bottom. The latency and quality widgets no longer float over the video at an offset.

Changing quality keeps playing. The switch applies at the next segment boundary instead of discarding what is already buffered, so there is no freeze between renditions. The quality menu is tighter and drops the per-rendition bitrate from each label.

Watch page

The video sits at the top of the column with the streamer name and broadcast title directly beneath it. The player is capped to the height of the viewport, so the controls and the title stay above the fold at any window size.

Theatre mode hides the navbar and grows the video to fill the viewport at 16:9. The meta header stays visible in theatre mode.

Video quality

Transcoded renditions encode against a higher quality target, so every rendition below source carries more bits at the same resolution. The per-rendition ceilings are unchanged.