Skip to content
Merged
Changes from all commits
Commits
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
106 changes: 106 additions & 0 deletions _posts/releases/themerr-plex/2026-10-04-v2026.1004.152244.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
layout: release
title: Themerr-plex v2026.1004.152244 Released
release-tag: v2026.1004.152244
gh-repo: LizardByte/Themerr-plex
gh-badge: [follow, fork, star]
tags: [release, themerr-plex]
thumbnail-img: https://app.lizardbyte.dev/dashboard/github/openGraphImages/Themerr-plex_624x312.png
comments: true
authors:
- github: LizardByte-bot
---

## ‼️ Attention: Themerr-plex is back!

After being archived, Themerr-plex has been revived with a major rewrite since the last stable release in August 2024.

**Themerr-plex now runs as a standalone application alongside Plex Media Server. Upgrading from `v2024.813.13709` or earlier requires migration to the new application.** Installation, configuration, and Plex authentication have changed. ([#497](https://github.com/LizardByte/Themerr-plex/pull/497))

## ⚠️ Breaking changes and migration notes

- **Remove the old plug-in before starting the standalone application.** Stop Plex Media Server, remove the Themerr-plex bundle from its `Plug-Ins` directory, and restart Plex. Install the standalone release archive or Docker image, and keep Themerr-plex running to process library updates.
- **Complete the new account setup.** On first launch, use the one-time setup link shown in the console to create your Themerr administrator account. The default web UI is available at `https://localhost:9494`; its locally generated certificate may trigger a browser warning.
- **Reconnect Plex and configure your settings.** In **Servers**, select **Sign in with Plex**, then connect the servers you want to manage. Your Themerr administrator account protects the application; your Plex account authorizes server access. Review your processing, overwrite, and ignored-library settings in the new application.
- **Use the modern Plex metadata agents.** Theme processing supports **Plex Movie** and **Plex Series** libraries. Legacy metadata agents are no longer supported.
- **Check locked fields when migrating.** Older Themerr-plex versions may have left themes or collection metadata locked. Enable **Ignore locked fields** if you want Themerr to update those fields.
- **Plex data-directory access is needed for cleanup.** Theme uploads use the Plex API. Removing older uploaded themes, posters, or artwork also requires access to the server’s Plex data directory. If that directory is unavailable, disable the three **Remove unused** settings.
- **Docker requires persistent configuration and a token encryption key.** Persist `/config`, mount a private key file outside that volume, and set `THEMERR_PLEX_TOKEN_KEY_FILE`. Keep the same key when recreating the container.
- **YouTube extraction has changed.** Themerr now uses `yt-dlp`, with Deno bundled in release archives. If YouTube requires sign-in, the **YouTube Cookies** setting accepts a JSON cookie export.

See the [installation guide](https://docs.lizardbyte.dev/projects/themerr-plex/latest/about/installation.html), [setup and usage guide](https://docs.lizardbyte.dev/projects/themerr-plex/latest/about/usage.html), and [Docker instructions](https://docs.lizardbyte.dev/projects/themerr-plex/latest/about/docker.html).

## ✨ Highlights

- **A dedicated management interface.** Manage multiple Plex servers, inspect theme coverage, search and filter your libraries, and monitor scans and upload failures.
- **Persistent theme playback.** Listen while navigating the application, with seeking, volume, shuffle, repeat, and supported system media controls. ([#594](https://github.com/LizardByte/Themerr-plex/pull/594))
- **Better troubleshooting and customization.** Browse searchable logs with session history, choose automatic/light/dark appearance, and exclude libraries per server. ([#592](https://github.com/LizardByte/Themerr-plex/pull/592), [#593](https://github.com/LizardByte/Themerr-plex/pull/593), [#595](https://github.com/LizardByte/Themerr-plex/pull/595))
- **Desktop notifications.** Receive configurable alerts for new releases and increased theme coverage. ([#596](https://github.com/LizardByte/Themerr-plex/pull/596))
- **Broader installation choices.** Native x86-64 and ARM64 archives are available for Windows, Linux, and macOS, alongside Docker images.

## What's Changed
* ci(l10n): fix pr title for babel updates by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#509](https://github.com/LizardByte/Themerr-plex/pull/509)
* build(deps): bump LizardByte/create-release-action from 2024.614.221009 to 2024.919.143026 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#505](https://github.com/LizardByte/Themerr-plex/pull/505)
* build(deps): bump LizardByte/setup-release-action from 2024.801.192524 to 2024.919.143601 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#506](https://github.com/LizardByte/Themerr-plex/pull/506)
* build(deps): bump @fontsource/open-sans from 5.0.28 to 5.1.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#504](https://github.com/LizardByte/Themerr-plex/pull/504)
* build(deps): bump peter-evans/create-pull-request from 6 to 7 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#502](https://github.com/LizardByte/Themerr-plex/pull/502)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#501](https://github.com/LizardByte/Themerr-plex/pull/501)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#535](https://github.com/LizardByte/Themerr-plex/pull/535)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#537](https://github.com/LizardByte/Themerr-plex/pull/537)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#538](https://github.com/LizardByte/Themerr-plex/pull/538)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#548](https://github.com/LizardByte/Themerr-plex/pull/548)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#552](https://github.com/LizardByte/Themerr-plex/pull/552)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#564](https://github.com/LizardByte/Themerr-plex/pull/564)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#565](https://github.com/LizardByte/Themerr-plex/pull/565)
* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#566](https://github.com/LizardByte/Themerr-plex/pull/566)
* refactor!: move project to standalone version by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#497](https://github.com/LizardByte/Themerr-plex/pull/497)
* chore(l10n): new babel updates by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#567](https://github.com/LizardByte/Themerr-plex/pull/567)
* ci: correct release permissions and Babel output by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#569](https://github.com/LizardByte/Themerr-plex/pull/569)
* chore(deps): update dependency cryptography to v50.0.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#570](https://github.com/LizardByte/Themerr-plex/pull/570)
* chore(deps): update dependency sqlalchemy to v2.1.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#571](https://github.com/LizardByte/Themerr-plex/pull/571)
* chore(deps): pin ghcr.io/astral-sh/uv docker tag to v0.12 by [@renovate[bot]](https://github.com/apps/renovate) in [#572](https://github.com/LizardByte/Themerr-plex/pull/572)
* chore(deps): update lizardbyte/actions action to v2026.928.123224 by [@renovate[bot]](https://github.com/apps/renovate) in [#573](https://github.com/LizardByte/Themerr-plex/pull/573)
* chore(deps): update actions/download-artifact action to v8 by [@renovate[bot]](https://github.com/apps/renovate) in [#574](https://github.com/LizardByte/Themerr-plex/pull/574)
* chore(deps): update dependency lucide to v1.50.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#575](https://github.com/LizardByte/Themerr-plex/pull/575)
* ci: add native ARM64 builds and architecture-specific artifacts by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#576](https://github.com/LizardByte/Themerr-plex/pull/576)
* ci: sign macOS PyInstaller release builds by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#577](https://github.com/LizardByte/Themerr-plex/pull/577)
* refactor: sonar fixes by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#578](https://github.com/LizardByte/Themerr-plex/pull/578)
* chore(l10n): new babel updates by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#579](https://github.com/LizardByte/Themerr-plex/pull/579)
* chore(deps): lock file maintenance by [@renovate[bot]](https://github.com/apps/renovate) in [#581](https://github.com/LizardByte/Themerr-plex/pull/581)
* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#583](https://github.com/LizardByte/Themerr-plex/pull/583)
* chore(l10n): new babel updates by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#584](https://github.com/LizardByte/Themerr-plex/pull/584)
* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#585](https://github.com/LizardByte/Themerr-plex/pull/585)
* chore(deps): update dependency av to v19.0.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#588](https://github.com/LizardByte/Themerr-plex/pull/588)
* chore(deps): update dependency sqlalchemy to v2.1.3 by [@renovate[bot]](https://github.com/apps/renovate) in [#580](https://github.com/LizardByte/Themerr-plex/pull/580)
* feat(web): migrate to FastAPI and add interactive API docs by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#589](https://github.com/LizardByte/Themerr-plex/pull/589)
* feat(web): add log viewer with full session history by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#592](https://github.com/LizardByte/Themerr-plex/pull/592)
* feat(web): add automatic light and dark theme switcher by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#593](https://github.com/LizardByte/Themerr-plex/pull/593)
* feat: add persistent theme player widget by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#594](https://github.com/LizardByte/Themerr-plex/pull/594)
* feat: add per-server ignored library multi-select by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#595](https://github.com/LizardByte/Themerr-plex/pull/595)
* feat: add desktop release and theme coverage notifications by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#596](https://github.com/LizardByte/Themerr-plex/pull/596)
* chore(l10n): extract locale template before commits by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#597](https://github.com/LizardByte/Themerr-plex/pull/597)
* ci(windows): add code signing by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#598](https://github.com/LizardByte/Themerr-plex/pull/598)
* ci(localize): add workflow permissions by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#599](https://github.com/LizardByte/Themerr-plex/pull/599)
* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#591](https://github.com/LizardByte/Themerr-plex/pull/591)

## New Contributors
* [@renovate[bot]](https://github.com/apps/renovate) made their first contribution in [#570](https://github.com/LizardByte/Themerr-plex/pull/570)

**Full Changelog**: https://github.com/LizardByte/Themerr-plex/compare/v2024.813.13709...v2026.1004.152244

---
## Contributors
<a href="https://github.com/LizardByte-bot" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, LizardByte-bot" ><img src="https://github.com/LizardByte-bot.png?size=40" width="40" height="40" alt="LizardByte-bot" title="LizardByte-bot: 15 merges" ></a><a href="https://github.com/ReenigneArcher" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, ReenigneArcher" ><img src="https://github.com/ReenigneArcher.png?size=40" width="40" height="40" alt="ReenigneArcher" title="ReenigneArcher: 15 merges" ></a><a href="https://github.com/apps/renovate" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, renovate[bot]" ><img src="https://avatars.githubusercontent.com/in/2740?size=40" width="40" height="40" alt="renovate[bot]" title="renovate[bot]: 9 merges" ></a><a href="https://github.com/apps/dependabot" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, dependabot[bot]" ><img src="https://avatars.githubusercontent.com/in/29110?size=40" width="40" height="40" alt="dependabot[bot]" title="dependabot[bot]: 4 merges" ></a>


---
📦 **Assets:**

| ⬇️ Download | #️⃣ Download Count | 🛡️ VirusTotal |
|-------------|-------------------|---------------|
| [Themerr-plex_Linux_aarch64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_Linux_aarch64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_Linux_aarch64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:8f2a763d2682473387039760a724ac6c6b23b5a509ddc44bd207875d160dd51f?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZmMyZmYwNDIwOTIzNjBlYjY1MDAxNzQ3NWEzNDczZTk6MTc5MTEyODA3Mg==) |
| [Themerr-plex_Linux_x86_64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_Linux_x86_64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_Linux_x86_64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:9a6cf52ead12c6e366911d6a4f06a69c19f6492f0b50aad6812f4642692709c1?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/OTRiYzVjMjhiYWQzMWRjMThlMGVkZDFjNjcwMWU3YmI6MTc5MTEyODA3OA==) |
| [Themerr-plex_Windows_AMD64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_Windows_AMD64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_Windows_AMD64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:9e5964f4145ed2b967281e0e4d87543912c6b9b261bd4604535ce39f4d0ff406?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZDA3NmIyYzM1YmJlY2YyMzlkZmU2YWRlMzRhYWJiMDA6MTc5MTEyODA4Mg==) |
| [Themerr-plex_Windows_ARM64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_Windows_ARM64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_Windows_ARM64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:12777b1c35a567271392d1249458ada05a9b42b83c04a29a4d3a7f20dc9825f0?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/NDc1NjgwZDk5N2U2MmU4NTZjZmI0NTljNDcyMmU1N2U6MTc5MTEyODA4NA==) |
| [Themerr-plex_macOS_arm64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_macOS_arm64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_macOS_arm64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:15f22fa3a21c97175e2a26be899616b6efd01ad8a71672b2d0dce0ff405b1ea3?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZTQxYTRjMzNkNzM5NzgwYjdmYmQwZTZmZmU5NWM4NDY6MTc5MTEyODEzMg==) |
| [Themerr-plex_macOS_x86_64.zip](https://github.com/LizardByte/Themerr-plex/releases/download/v2026.1004.152244/Themerr-plex_macOS_x86_64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr-plex/v2026.1004.152244/Themerr-plex_macOS_x86_64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:386318565659f7b5fdc400fb7962a542bb6f207b6d656c3b358b0d264065cae6?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/M2RlMDMxOGFlODgwOTUxMTkwMDQ4YTdmM2YwZTI2NDg6MTc5MTEyODEzNw==) |
Loading