May 8, 2026
Web pages on the screen no longer show a days-old copy, and other fixes
Fixes
- Web pages on the screen show their current version. The player used to keep a copy of each page on its storage and could show it for days after the page changed. Now it only keeps copies until the viewer restarts. People reported this on the forum as far back as 2023.
- Videos on a Raspberry Pi 4 or 5 connected to a 4K display play at 1920x1080 at 60 Hz. A Raspberry Pi 5 used to play them in the display's 4K mode, which is more than the board can keep up with, so video stuttered.
- The "Audio output" setting applies to video on the Raspberry Pi 4, Raspberry Pi 5 and x86 PCs. On the Raspberry Pi 5 and x86, video used to ignore it.
- Web pages no longer flash white before they draw.
- Shorter blank gap between videos on a Raspberry Pi 2 or 3.
- YouTube links that downloaded but then played as a blank screen now play, with an updated yt-dlp.
- A YouTube video that fails to download shows "Failed" and is switched off, instead of looking ready with no video behind it.
Improvements
- On a 4K display, web pages are scaled up 2x so they look the same size as on a 1080p display, and wider displays get 3x or 4x. To pick your own scale, set
QT_SCALE_FACTORin theanthias-viewercontainer's environment. - A new
splash_logo_urlsetting under[main]in~/.anthias/anthias.confputs your own logo on the splash screen. - Web page and stream links are checked in the background every 15 minutes instead of before every play, so a slow or unreachable link no longer holds up the rotation. A link that gets skipped is checked again within about a minute. On API v2, assets report the result in
is_reachableandlast_reachability_check. Until Anthias 2026.07.0, this check marked links on your local network, such as an intranet page, a NAS or another container on the player, as unreachable and skipped them. - Anthias's anonymous usage event goes out at most once a day, under a random device ID, and now reports the branch and commit, the board and hardware model, whether the player runs balenaOS, the configured resolution, the "Audio output" setting, the
use_sslsetting, and how many images, videos and web pages are enabled. Setanalytics_opt_out = Trueunder[main]in~/.anthias/anthias.confto turn it off. - The installer sets up its own tools with uv in a temporary folder that it deletes when it finishes, so it no longer creates
~/installer_venv. You can delete one left by an earlier install. - The images no longer carry the X11 libraries or a set of unused Python packages.
- The documentation moved from the repository's
docsfolder to anthias.screenly.io, with a new API reference and FAQ.
For contributors
- The web interface is built with Django templates, HTMX and Alpine.js instead of a React app, and its frontend builds with Bun in place of webpack and npm.
- Python code lives under
src/, inanthias_server,anthias_viewerandanthias_common. - Python dependencies are declared as dependency groups in
pyproject.tomland installed with uv, replacing the per-service requirements files. - The Python tests run with pytest and pytest-django, browser tests use Playwright, and CI runs mypy in strict mode.
- The server and the viewer exchange messages over Redis, on the
anthias.viewerchannel, instead of ZeroMQ. - The WebView binary is now
AnthiasWebview, built for the Raspberry Pi 2, 3, 4 (64-bit) and 5 and x86, and its releases are taggedWebView-vYYYY.MM.PATCH. Anthias 2026.05.0 ships WebView 2026.05.0. - CI builds the images for the same boards and pushes them to ghcr.io, with Docker Hub as a best-effort mirror. Base images come from
mirror.gcr.ioand the Bun image fromghcr.io/screenly/bun, to stay clear of Docker Hub rate limits. - SBOMs are versioned by commit on
masterand by tag on releases.
Dependencies and build tooling were updated throughout, including a Debian Trixie base, Python 3.13 and Django 5.2 LTS.