Free Screenly Player with every Business or Enterprise yearly plan. How it works →

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_FACTOR in the anthias-viewer container's environment.
  • A new splash_logo_url setting under [main] in ~/.anthias/anthias.conf puts 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_reachable and last_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_ssl setting, and how many images, videos and web pages are enabled. Set analytics_opt_out = True under [main] in ~/.anthias/anthias.conf to 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 docs folder 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/, in anthias_server, anthias_viewer and anthias_common.
  • Python dependencies are declared as dependency groups in pyproject.toml and 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.viewer channel, 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 tagged WebView-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.io and the Bun image from ghcr.io/screenly/bun, to stay clear of Docker Hub rate limits.
  • SBOMs are versioned by commit on master and by tag on releases.

Dependencies and build tooling were updated throughout, including a Debian Trixie base, Python 3.13 and Django 5.2 LTS.