Automatic movie theme song downloader for Plex libraries.
Themearr signs in with your Plex account, reads your movie libraries, and helps you add a theme.mp3 to every movie folder — the file Plex uses to play background music while browsing.
- Browse your full Plex library as a poster grid
- Auto-search YouTube for each movie's theme
- One-click download to
theme.mp3 - Paste any video URL to use a custom source
- Downloaded status tracked per movie
Theme audio is fetched through the youtube-mp36 API on RapidAPI. Downloads will not work until you add your RapidAPI key and username in Settings → RapidAPI. Plex sign-in and library browsing work without it — only downloading a theme.mp3 needs it. The free RapidAPI tier is quota-limited, so Themearr backs off automatically when the quota is exhausted.
Run this on your Proxmox host:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Themearr/ProxmoxVE/main/ct/themearr.sh)"After the container is created, open http://<container-ip>:8080 and sign in with Plex.
| Layer | Technology |
|---|---|
| API | .NET 9 Web API (ASP.NET Core) |
| Frontend | Next.js 16 (static export, served by .NET) |
| Database | SQLite via Microsoft.Data.Sqlite |
| YouTube search | YoutubeExplode |
| Theme download | youtube-mp36 RapidAPI |
- .NET 9 SDK
- Node.js 22+
- A youtube-mp36 RapidAPI key + username (added in Settings → RapidAPI) — required for downloads
# Terminal 1 — API
dotnet run --project src/Themearr.API
# Terminal 2 — Frontend (dev server with proxy to API)
cd src/Themearr.Web
npm install
NEXT_PUBLIC_API_URL=http://localhost:5000 npm run devOpen http://localhost:3000.
Push to main — GitHub Actions will automatically:
- Detect the semver bump from commit messages (
feat:→ minor,major:→ major, else patch) - Build the Next.js frontend (
npm run build) - Publish .NET for
linux-x64andlinux-arm64 - Bundle the frontend into each publish output
- Create a GitHub release with both tarballs attached
Themearr includes an in-app updater (Settings → Updates). It downloads the latest release tarball, preserves your data, and restarts the service. You can also update from the Proxmox web UI.
Releases follow semantic versioning driven by commit message prefixes:
| Prefix | Bump |
|---|---|
feat: |
minor |
major: / BREAKING CHANGE |
major |
| anything else | patch |
MIT