diff --git a/docker-guide.md b/docker-guide.md index 43a82f31b..82fd9b082 100644 --- a/docker-guide.md +++ b/docker-guide.md @@ -136,7 +136,7 @@ It is also important to remember that you’ll need to setup or re-configure pat ## Examples -What matters here is the general structure, not the names. You are free to pick folder names that make sense to you. And there are other reasonable ways of arranging things too. We suggest keeping usenet and torrent downloads seperated, since torrents seed it generally isn't safe to just `rm -rf`, but if you know you've already imported all your usenet downloads you can clean up as needed. Keeping +What matters here is the general structure, not the names. You are free to pick folder names that make sense to you. And there are other reasonable ways of arranging things too. We suggest keeping usenet and torrent downloads separated, since torrents seed it generally isn't safe to just `rm -rf`, but if you know you've already imported all your usenet downloads you can clean up as needed. Keeping This example `data` folder has subfolders for torrents and usenet and each of these have subfolders for tv, movie and music downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies`, `Books`, and `Music` subfolders. This `media` folder is your library and what you’d pass to software Plex, Kodi, Emby, Jellyfin, and Bazarr which only need the library. diff --git a/lidarr/activity.md b/lidarr/activity.md index 26927e077..a07c06c09 100644 --- a/lidarr/activity.md +++ b/lidarr/activity.md @@ -2,7 +2,7 @@ title: Lidarr Activity description: Monitor download progress, search history, and queue management in Lidarr published: true -date: 2026-06-06T13:48:53.842Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, activity, queue, downloads, history, monitoring editor: markdown dateCreated: 2021-06-14T21:35:25.390Z @@ -26,7 +26,7 @@ Lidarr only shows items that are in the download client category configured unde ### Queue columns -The queue table shows the following columns by default: Status, Artist, Album Title, Quality, Formats, Protocol, Download Client, Output Path, Time Left, Added, and Progress. Use **Options** to show or hide columns or change their order. +The queue table shows the following columns by default: Status, Artist, Album Title, Quality, Formats, Time Left, and Progress. Use **Options** to show or hide columns or change their order. ### Queue statuses @@ -54,11 +54,11 @@ Click **Options** in the queue toolbar to open Table Options: | Option | Default | Description | |---|---|---| -| Page Size | 250 | Number of queue items shown per page. | +| Page Size | 20 | Number of queue items shown per page. | | Show Unknown Artist Items | On | Shows items in Lidarr's download client category that Lidarr can't match to any artist in your library (for example, removed artists or items added to the category manually). | | Columns | (see below) | Choose which columns are visible and their display order. | -Available columns: Status, Artist, Album Title, Album Release Date, Quality, Formats, Custom Format Score, Protocol, Indexer, Download Client, Release Title, Size, and Output Path. +Available columns: Status, Artist, Album Title, Album Release Date, Quality, Formats, Custom Format Score, Protocol, Indexer, Download Client, Release Title, Size, Output Path, Time Left, Added, and Progress. ## History diff --git a/lidarr/beets-integration.md b/lidarr/beets-integration.md index 124257886..12d8550cb 100644 --- a/lidarr/beets-integration.md +++ b/lidarr/beets-integration.md @@ -1,8 +1,8 @@ --- title: Lidarr and beets Integration -description: +description: published: true -date: 2026-05-29T13:03:01.899Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, beets editor: markdown dateCreated: 2026-04-26T15:17:29.688Z @@ -46,7 +46,7 @@ In this pattern, beets runs once per import triggered by a Lidarr Custom Script. ## How it works -Lidarr fires its **On Import / On Upgrade** event after it has moved and renamed the downloaded files into the library folder. A Custom Script registered in **Settings → Connect** receives the file paths via the `Lidarr_AddedTrackPaths` environment variable (pipe-separated). The script invokes beets against those files with a configuration that writes tags but doesn't move or copy anything. +Lidarr fires its **On Release Import / On Upgrade** event after it has moved and renamed the downloaded files into the library folder. A Custom Script registered in **Settings → Connect** receives the file paths via the `Lidarr_AddedTrackPaths` environment variable (pipe-separated). The script invokes beets against those files with a configuration that writes tags but doesn't move or copy anything. ## Required beets configuration @@ -128,7 +128,7 @@ foreach ($dir in $albumDirs) { 1. Go to **Settings → Connect → + Add Connection → Custom Script**. 2. Set **Name** to something descriptive, for example, `beets tag enrichment`. 3. Set **Path** to the full path of the script file. -4. Enable **On Import** and **On Upgrade**. Leave other triggers disabled unless you specifically want beets to run on those events. +4. Enable **On Release Import** and **On Upgrade**. Leave other triggers disabled unless you specifically want beets to run on those events. 5. Click **Test**. The script receives a test event and should exit cleanly without errors. ## Trade-offs @@ -201,4 +201,4 @@ Two scenarios where the tools can conflict: - [Custom Scripts](/lidarr/custom-scripts): environment variables available to scripts and how to register them - [Settings: Metadata](/lidarr/settings#metadata): Write Tags setting and metadata consumer options - [beets documentation](https://beets.readthedocs.io/en/stable/) -- [beets installation guide](https://beets.readthedocs.io/en/stable/guides/installation.html) \ No newline at end of file +- [beets installation guide](https://beets.readthedocs.io/en/stable/guides/installation.html) diff --git a/lidarr/calendar.md b/lidarr/calendar.md index 61b670364..8205c7424 100644 --- a/lidarr/calendar.md +++ b/lidarr/calendar.md @@ -2,7 +2,7 @@ title: Lidarr Calendar description: View upcoming album releases and track music release schedules published: true -date: 2026-05-29T13:10:48.016Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, calendar, releases, schedule, albums, music, planning editor: markdown dateCreated: 2021-06-14T21:35:03.094Z @@ -18,9 +18,11 @@ Each release tile is color-coded to show its current status: | Color | Meaning | |---|---| -| Green | Files on disk; Lidarr has this release. | +| Green | All tracks downloaded; Lidarr has a complete copy of this release. | | Blue | Monitored and upcoming; the release date is in the future. | -| Yellow/Orange | Monitored, released, and missing; past release date but no files yet. | +| Purple | Currently downloading; the release is in the queue or was recently grabbed. | +| Orange/Yellow | Partially downloaded; some but not all tracks are on disk. | +| Red | Monitored, released, and missing; past release date but no files found. | | Grey | Unmonitored; Lidarr isn't looking for this release. | ## Navigation @@ -55,8 +57,8 @@ The **Options** button opens the Calendar Options dialog, split into two section | Option | Default | Description | |---|---|---| -| Collapse Multiple Albums | On | When more than one album from the same artist releases on the same day, collapse them into a single tile instead of showing each one. | -| Icon for Cutoff Unmet | On | Show a visual indicator on release tiles where files exist but the quality cutoff hasn't been met. | +| Collapse Multiple Albums | Off | When more than one album from the same artist releases on the same day, collapse them into a single tile instead of showing each one. | +| Icon for Cutoff Unmet | Off | Show a visual indicator on release tiles where files exist but the quality cutoff hasn't been met. | **Global** (apply across all browsers and users): diff --git a/lidarr/concepts.md b/lidarr/concepts.md index a570463b4..91569b617 100644 --- a/lidarr/concepts.md +++ b/lidarr/concepts.md @@ -2,7 +2,7 @@ title: Lidarr Concepts description: How Lidarr models music, why MusicBrainz metadata matters, and when Lidarr is (and isn't) the right tool for your library published: true -date: 2026-05-29T13:00:43.061Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, releases, metadata, concepts, musicbrainz, artist editor: markdown dateCreated: 2026-04-18T16:48:08.649Z @@ -33,10 +33,11 @@ Examples of `Releases`: - EP - Single - Broadcast +- Other If something you want to manage doesn't exist as a `Release` in the metadata source, Lidarr can't handle it. Lidarr has no "add it locally only" escape hatch. -Lidarr is audio-only. MusicBrainz marks some recordings as video (music videos, live video streams, etc.). Lidarr skips those entirely and won't search for, grab, or import a release where all tracks carry the video flag. +Lidarr is audio-only. Releases that are recorded on video-only media formats (DVD, Blu-ray, VHS, etc.) are excluded: Lidarr filters out tracks on those media and will not import or search for a release that contains no audio tracks after that filtering. > You can only manage `Releases` in Lidarr if they exist in third-party services. {.is-info} diff --git a/lidarr/custom-scripts.md b/lidarr/custom-scripts.md index 64a915039..9e925ebce 100644 --- a/lidarr/custom-scripts.md +++ b/lidarr/custom-scripts.md @@ -2,7 +2,7 @@ title: Lidarr Custom Scripts description: Guide for creating and implementing custom scripts for automation and integration in Lidarr published: true -date: 2026-05-29T13:03:38.922Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, scripts, automation, custom, integration, hooks, api editor: markdown dateCreated: 2021-11-24T19:22:09.331Z @@ -21,7 +21,7 @@ Lidarr writes script output to the log files: | Output | Log level | Log file | |---|---|---| | `stdout` | `Debug` | `config/logs/Lidarr.debug.txt` | -| `stderr` | `Info` | `config/logs/Lidarr.txt` | +| `stderr` | `Error` | `config/logs/Lidarr.txt` | | Script trigger | `Trace` | `config/logs/Lidarr.trace.txt` | Enable **Debug** or **Trace** logging in **Settings → General → Logging** to see script output in the log files. @@ -398,4 +398,4 @@ curl -s -X POST "$WEBHOOK_URL" \ ## See also - [Settings: Connect](/lidarr/settings#connections): where you register scripts in the Lidarr UI -- [Beets Integration](/lidarr/beets-integration): using a custom script to invoke beets for tag enrichment after import \ No newline at end of file +- [Beets Integration](/lidarr/beets-integration): using a custom script to invoke beets for tag enrichment after import diff --git a/lidarr/environment-variables.md b/lidarr/environment-variables.md index 1c3ded36e..943387220 100644 --- a/lidarr/environment-variables.md +++ b/lidarr/environment-variables.md @@ -2,7 +2,7 @@ title: Lidarr Environment Variables description: Complete guide to Lidarr environment variables for configuration management including Docker, database, authentication, and server settings published: true -date: 2026-05-29T13:14:55.964Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, docker, installation, scripts, postgres editor: markdown dateCreated: 2025-09-06T22:28:37.512Z @@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the | `AuthenticationEnabled` | `AUTH` | `ENABLED` | `LIDARR__AUTH__ENABLED` | | `AuthenticationMethod` | `AUTH` | `METHOD` | `LIDARR__AUTH__METHOD` | | `AuthenticationRequired` | `AUTH` | `REQUIRED` | `LIDARR__AUTH__REQUIRED` | +| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `LIDARR__AUTH__TRUSTCGNATIPADDRESSES` | | `LogLevel` | `LOG` | `LEVEL` | `LIDARR__LOG__LEVEL` | | `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `LIDARR__LOG__FILTERSENTRYEVENTS` | | `LogRotate` | `LOG` | `ROTATE` | `LIDARR__LOG__ROTATE` | @@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the | `SyslogServer` | `LOG` | `SYSLOGSERVER` | `LIDARR__LOG__SYSLOGSERVER` | | `SyslogPort` | `LOG` | `SYSLOGPORT` | `LIDARR__LOG__SYSLOGPORT` | | `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `LIDARR__LOG__SYSLOGLEVEL` | -| `DbEnabled` | `LOG` | `DBENABLED` | `LIDARR__LOG__DBENABLED` | +| `LogDbEnabled` | `LOG` | `DBENABLED` | `LIDARR__LOG__DBENABLED` | | `PostgresHost` | `POSTGRES` | `HOST` | `LIDARR__POSTGRES__HOST` | | `PostgresPort` | `POSTGRES` | `PORT` | `LIDARR__POSTGRES__PORT` | | `PostgresUser` | `POSTGRES` | `USER` | `LIDARR__POSTGRES__USER` | | `PostgresPassword` | `POSTGRES` | `PASSWORD` | `LIDARR__POSTGRES__PASSWORD` | | `PostgresMainDb` | `POSTGRES` | `MAINDB` | `LIDARR__POSTGRES__MAINDB` | | `PostgresLogDb` | `POSTGRES` | `LOGDB` | `LIDARR__POSTGRES__LOGDB` | +| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `LIDARR__POSTGRES__MAINDBCONNECTIONSTRING` | +| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `LIDARR__POSTGRES__LOGDBCONNECTIONSTRING` | | `UrlBase` | `SERVER` | `URLBASE` | `LIDARR__SERVER__URLBASE` | | `BindAddress` | `SERVER` | `BINDADDRESS` | `LIDARR__SERVER__BINDADDRESS` | | `Port` | `SERVER` | `PORT` | `LIDARR__SERVER__PORT` | diff --git a/lidarr/faq.md b/lidarr/faq.md index c4054d8b4..ba94ac012 100644 --- a/lidarr/faq.md +++ b/lidarr/faq.md @@ -17,7 +17,7 @@ If you don't find your question here, the most common landing spots are [Metadat ## Basics -### How does Lidarr work? +### How does Lidarr work Lidarr doesn't search for files that are missing or haven't met quality goals on a schedule. Instead, it queries your indexers and trackers at a steady cadence for *all* newly posted releases, compares that feed with your monitored albums, and downloads matches. At an RSS interval of 15–60 minutes, this amounts to 24–100 queries per day and covers a library of any size. It only catches releases going forward from when you added them, though. @@ -31,13 +31,13 @@ If Lidarr has been offline for a while, it pages back through each indexer to fi - Adding an artist or album with *Add and Search*. - Albums discovered during an artist metadata refresh (for example, a new album MusicBrainz adds after you've already added the artist). -### How do I update Lidarr? +### How do I update Lidarr Lidarr runs on one of three release branches. Pick one under **Settings → General → Updates** (show advanced): - `master` — default, stable. Updates about monthly after testing in `develop` and `nightly`. -- `develop` — beta. New features and fixes land here after `nightly`. Updates weekly or biweekly, tagged `pre-release` on GitHub. -- `nightly` — alpha. Builds on every commit that passes CI. Required for plugin support (see [Plugins](/lidarr/plugins)). Expect occasional breakage and plan to recover a failed update yourself. +- `develop` — beta. New features and fixes land here after `nightly`. Updates weekly or biweekly, tagged `pre-release` on GitHub. Plugin support is available on this branch and above (see [Plugins](/lidarr/plugins)). +- `nightly` — alpha. Builds on every commit that passes CI. Expect occasional breakage and plan to recover a failed update yourself. > **Switching from `nightly` or `develop` back to `master` may not be possible without restoring an older database backup.** Database schema migrations are one-way. If a newer branch introduced columns `master` doesn't know about, the older version will refuse to start with errors like *Error parsing column N*. If you already switched and need to go back, restore from a pre-switch backup. {.is-danger} @@ -59,7 +59,7 @@ Docker tag-to-branch mapping: ## Finding music and MusicBrainz -### Why doesn't artist X show up in search? +### Why doesn't artist X show up in search A few common causes: @@ -84,7 +84,7 @@ Type any of these into the Lidarr search box. Lidarr tries to resolve the MBID a > **Release vs Release Group is the single most common mistake.** For albums, Lidarr wants the *Release Group* MBID, not a *Release* MBID. A release group is "the 2005 album"; a release is "the 2005 US CD pressing" or "the 2005 UK vinyl." If you paste a release MBID, the lookup will fail or return unexpected results. {.is-warning} -### Why does Lidarr only show studio albums, how do I find singles or EPs? +### Why does Lidarr only show studio albums, how do I find singles or EPs Lidarr filters what to track per artist through a **Metadata Profile** (Settings → Profiles → Metadata Profiles). The default profile includes only *Studio* albums, which is why singles, EPs, live albums, compilations, and remix collections don't appear on a fresh install. @@ -98,7 +98,7 @@ Adjust the profile rather than per-artist settings for a library-wide change: To apply a changed profile to existing artists, go to Library, select the artists, and use Edit → Metadata Profile. -### How can I find a MusicBrainz ID? +### How can I find a MusicBrainz ID 1. Search the artist, release group, or release on [MusicBrainz](https://musicbrainz.org/search). For albums, set the search type to **Release Group**. 2. Open the entity page. The MBID appears under the **Details** tab, or at the end of the URL (the UUID after the last slash). @@ -124,7 +124,7 @@ MusicBrainz doesn't have track lengths for this release (they appear as `???` on ## Importing and renaming -### I'm having trouble importing my artists, what could it be? +### I'm having trouble importing my artists, what could it be Imports fail in one of a few ways: @@ -144,7 +144,7 @@ To import files you obtained outside of Lidarr (a Bandcamp download, for example Lidarr then moves the files into the root folder itself, registers them in its database, and tracks them normally from that point on. -### How can I rename my artist folders? +### How can I rename my artist folders {#rename-folders} @@ -171,17 +171,17 @@ If a rename appears to have happened in Lidarr but the folder name on disk hasn' > **Renaming outside Lidarr breaks the link between Lidarr's database and the files on disk.** Lidarr tracks files by path. If you rename a folder at the OS level, Lidarr treats the files as missing and may re-download them. Always rename through the Lidarr UI when possible. See [Renaming or moving files outside Lidarr](/lidarr/tips-and-tricks#renaming-moving-outside-lidarr) for a full explanation and recovery steps. {.is-warning} -### Why does Lidarr keep trying to rename the same folders? +### Why does Lidarr keep trying to rename the same folders Almost always a case-only rename on Windows. Windows filesystems treat `Artist` and `artist` as the same path. When Lidarr renames `ARTIST` to `Artist`, the operation reports success but the folder name on disk doesn't change. Lidarr then sees the folder still needs renaming, and the cycle continues. The fix is a two-step manual rename (`Artist` → `Artist_tmp` → `Artist`) so the filesystem actually commits the case change. On Linux and macOS this isn't an issue because those filesystems are case-sensitive. -### What audio formats does Lidarr support? +### What audio formats does Lidarr support Lidarr recognises the following file extensions: -`.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff` +`.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`, `.aifc` Files with any other extension are invisible to Lidarr. It won't import, rename, or manage them. @@ -189,7 +189,7 @@ A subset of these formats have named quality definitions that quality profiles a If a file with a supported extension still isn't importing, the issue is typically match quality rather than format. See [Import Troubleshooting](/lidarr/import-troubleshooting). -### Can Lidarr prefer a specific pressing or format during import? +### Can Lidarr prefer a specific pressing or format during import {#can-lidarr-prefer-a-specific-pressing-or-format-during-import} @@ -209,7 +209,7 @@ An [open feature request](https://github.com/Lidarr/Lidarr/issues/186) to expose ## Lists and automation -### Why are list sync times so long and can I change it? +### Why are list sync times so long and can I change it List sync is intentionally slow. Lists are an *"add eventually"* tool, not an *"add now"* tool. The original sync cadence overwhelmed the upstream Servarr metadata server when users ran 10-minute list refreshes. @@ -222,7 +222,7 @@ If you need faster feedback for a specific list: > **Spotify import lists can trigger rate-limit errors (429s).** When Lidarr processes a Spotify list, it resolves Spotify IDs to MusicBrainz IDs via the metadata server cache. Any ID not in the cache requires an individual lookup, and enough of those in quick succession will hit the rate limit. To resolve this, wait it out, or add the missing Spotify album links to MusicBrainz so they get cached. See [Metadata Troubleshooting → Spotify import list rate limiting](/lidarr/metadata-troubleshooting#spotify-import-list-rate-limiting) for the full mechanism. {.is-info} -### Does Lidarr download lyrics, liner notes, or other extras? +### Does Lidarr download lyrics, liner notes, or other extras No, by design. Lidarr fetches the release audio files and tags/organises them. It doesn't bundle lyrics, liner notes, or other secondary files. @@ -233,7 +233,7 @@ For lyrics, use a tag-aware companion tool: These can run alongside Lidarr against the same library. Run them after Lidarr imports so they don't fight over file ownership. -### What about Custom Scripts / Custom Formats / post-processing? +### What about Custom Scripts / Custom Formats / post-processing Lidarr supports two distinct extension points: @@ -244,27 +244,27 @@ Custom Formats score releases. Custom Scripts respond to events. They don't over ## Integrations and external tools -### Does Lidarr support Deemix, slskd, or similar tools? +### Does Lidarr support Deemix, slskd, or similar tools Deemix and slskd are third-party tools. Deemix is a Deezer downloader. slskd is a Soulseek daemon. Historically there was no built-in way to integrate them with Lidarr, and users cobbled together import scripts. -**This changed with the plugin architecture.** As of the `nightly` branch, Lidarr supports third-party plugins that add indexers and download clients for streaming services, peer-to-peer networks, and other sources. This is the fully supported way to extend Lidarr's source coverage. See [Plugins](/lidarr/plugins) for install instructions and the current compatibility notes. +**This changed with the plugin architecture.** As of the `develop` branch, Lidarr supports third-party plugins that add indexers and download clients for streaming services, peer-to-peer networks, and other sources. This is the fully supported way to extend Lidarr's source coverage. See [Plugins](/lidarr/plugins) for install instructions and the current compatibility notes. Common community plugins cover exactly this ground: Soulseek, Deezer, Tidal, and similar. Plugin names and availability shift faster than this FAQ can track, so the Plugins page is the current reference. -Running the plugin branch requires switching to `nightly` (see [How do I update Lidarr?](#how-do-i-update-lidarr)). Database schema migrations mean switching back to `master` or `develop` afterward requires restoring a pre-switch backup. +Running plugins requires `develop` or `nightly` (see [How do I update Lidarr?](#how-do-i-update-lidarr)). Database schema migrations mean switching back to `master` afterward requires restoring a pre-switch backup. -### Which download clients does Lidarr support? +### Which download clients does Lidarr support -Usenet (NZB): SABnzbd, NZBGet, NZBVortex, Pneumatic, usenet blackhole. +Usenet (NZB): SABnzbd, NZBGet, NZBVortex, Pneumatic, Download Station (Synology), usenet blackhole. -Torrent: qBittorrent, Transmission, Deluge, rTorrent / ruTorrent, uTorrent, Vuze, Flood, Hadouken, torrent blackhole. +Torrent: qBittorrent, Transmission, Deluge, rTorrent / ruTorrent, uTorrent, Vuze, Flood, Hadouken, Aria2, Download Station (Synology), Freebox Download, torrent blackhole. -More clients are available via [Plugins](/lidarr/plugins) on the `nightly` branch, primarily streaming-service and P2P-network clients not covered by the built-in list. +More clients are available via [Plugins](/lidarr/plugins) on the `develop` or `nightly` branch, primarily streaming-service and P2P-network clients not covered by the built-in list. For setup recipes, the [TRaSH Guides — Downloaders](https://trash-guides.info/Downloaders/) section covers the common clients in more depth than the Lidarr wiki does. -### Does Lidarr integrate with Plex, Emby, or Jellyfin? +### Does Lidarr integrate with Plex, Emby, or Jellyfin Not directly. Lidarr manages the library on disk. Media servers read that library and serve it to clients. The common pattern is to share the root folder: @@ -327,7 +327,7 @@ Common causes: - **Permissions.** If the Lidarr user can't write to the database file, SQLite can leave it in a corrupt state. This primarily affects new installs, migrated installs, or systems where the running user/group changed recently. - **mergerFS with `direct_io` enabled.** SQLite uses mmap, which mergerFS `direct_io` doesn't support. See [mergerFS docs](https://github.com/trapexit/mergerfs#plex-doesnt-work-with-mergerfs). Remove `direct_io` from the mergerFS options. -### I use Lidarr on a Mac and it stopped working. What happened? +### I use Lidarr on a Mac and it stopped working. What happened Most likely one of the databases is corrupt — a known macOS issue when the system sleeps or crashes during a database write. See [I am getting an error: Database disk image is malformed](#i-am-getting-an-error-database-disk-image-is-malformed) above for recovery. @@ -356,4 +356,4 @@ Two fixes: - Change the service user to a domain or local account with access to the share. - Start the service. -2. **Use a UNC path instead of a mapped drive.** Mapped drives are per-user. `LocalService` can't see `Z:` even if your desktop session can. Configure Lidarr paths as `\\server\share\path` instead, and make sure the share allows access to whichever user the service runs as. \ No newline at end of file +2. **Use a UNC path instead of a mapped drive.** Mapped drives are per-user. `LocalService` can't see `Z:` even if your desktop session can. Configure Lidarr paths as `\\server\share\path` instead, and make sure the share allows access to whichever user the service runs as. diff --git a/lidarr/import-troubleshooting.md b/lidarr/import-troubleshooting.md index 32028bee9..68aac349b 100644 --- a/lidarr/import-troubleshooting.md +++ b/lidarr/import-troubleshooting.md @@ -2,7 +2,7 @@ title: Lidarr Import Troubleshooting description: Why a download finishes but Lidarr does not import it — match-quality thresholds, the manual-import path, and when human intervention is necessary published: true -date: 2026-05-29T13:01:13.606Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, troubleshooting, plugins, import, matching editor: markdown dateCreated: 2026-04-20T13:06:15.307Z @@ -17,7 +17,7 @@ If you haven't imported anything yet and are setting up a fresh library, start w ## Supported file types -Lidarr only processes files with these extensions: `.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`. Lidarr ignores any other extension entirely — it won't attempt to import, rename, or track it. If Lidarr isn't picking up your files at all, confirm they have a supported extension before troubleshooting further. +Lidarr only processes files with these extensions: `.mp2`, `.mp3`, `.m4a`, `.m4b`, `.m4p`, `.ogg`, `.oga`, `.opus`, `.wma`, `.wav`, `.wv`, `.flac`, `.ape`, `.aif`, `.aiff`, `.aifc`. Lidarr ignores any other extension entirely — it won't attempt to import, rename, or track it. If Lidarr isn't picking up your files at all, confirm they have a supported extension before troubleshooting further. ## Why Lidarr rejects an import @@ -81,7 +81,7 @@ Fingerprinting kicks in when any of the following is true: Whether Lidarr allows fingerprinting depends on the **Allow Fingerprinting** setting under Settings → Media Management: - `Never` — Lidarr never fingerprints. -- `New Files` — fingerprint new downloads only (default on most installs). +- `For new imports only` — fingerprint new downloads only (default on most installs). - `Always` — fingerprint even on library imports. Fingerprinting is slower than tag-based matching and hits an external service. If downloads consistently land in a state where fingerprinting runs but doesn't rescue them, the files likely don't exist in MusicBrainz at all. No fingerprint match is possible for a release that isn't in the database. @@ -196,4 +196,4 @@ For advanced readers who want to verify the rules or trace a specific rejection, - [Importing an Existing Library](/lidarr/importing-existing-library) — the fresh-install import walkthrough - [Metadata Troubleshooting](/lidarr/metadata-troubleshooting) — for problems where the release is missing or wrong at MusicBrainz - [FAQ](/lidarr/faq) — shorter answers that didn't fit this page -- [MusicBrainz Picard](https://picard.musicbrainz.org/) — tag files with MBIDs before importing for a dramatically higher succes \ No newline at end of file +- [MusicBrainz Picard](https://picard.musicbrainz.org/) — tag files with MBIDs before importing for a dramatically higher success rate diff --git a/lidarr/importing-existing-library.md b/lidarr/importing-existing-library.md index 4a22e318e..88f26187b 100644 --- a/lidarr/importing-existing-library.md +++ b/lidarr/importing-existing-library.md @@ -2,7 +2,7 @@ title: Lidarr Importing an Existing Library description: End-to-end guide for migrating an existing music library into Lidarr — preparation, pre-import checks, the import process itself, and post-import cleanup published: true -date: 2026-05-03T15:07:18.109Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, library, musicbrainz, importing, migration, tagging editor: markdown dateCreated: 2026-04-18T16:54:14.510Z @@ -38,20 +38,20 @@ For the automated import to succeed, structure and tag your files before pointin The recommended structure is: -``` +```text /// ``` For example: -``` +```text /music/Bob Dylan/Blood on the Tracks/01 - Tangled Up in Blue.flac /music/Bob Dylan/Blood on the Tracks/02 - Simple Twist of Fate.flac ``` -This layout, combined with proper tags, gives recognition rates of 95% or better in both Lidarr and most downstream media players. Flat layouts (one folder containing many releases), grouped-by-year layouts, or layouts that split discs into separate folders will all cause mismatches or import failures. +This layout, combined with proper tags, gives recognition rates of 95% or better in both Lidarr and most downstream media players. Flat layouts (one folder containing many releases) or grouped-by-year layouts will cause mismatches or import failures. -Disc-subfolder layouts (`.../Release/CD1/...`, `.../Release/CD2/...`) are a common trap: Lidarr expects all tracks for a release to live under the release folder, so consolidate or flatten disc subfolders before importing. +Disc-subfolder layouts (`.../Release/CD1/...`, `.../Release/CD2/...`) are handled natively by Lidarr's grouping logic, which recognises `CD`, `Disc`, and `Disk` subfolder markers and groups them as a single release automatically. You do not need to flatten disc subfolders before importing. ### Tagging @@ -88,12 +88,14 @@ With files prepared and the pre-import checks done, add the library folder as a 2. Fill in the add-root-folder dialog: - **Name** — a friendly label for this root folder. - **Path** — the filesystem path to the library you prepared. The Lidarr user must have read and write access. - - **Monitor*** — the default monitoring option for newly imported `Releases` (for example, all, future, latest, none). This applies to every artist and release created by the import; you can change individual artists afterwards. + - **Monitor*** — the default monitoring option applied to each imported artist's existing releases (All, Future, Missing, Existing, Latest, First, None). This applies to every artist created by the import; you can change individual artists afterwards. + - **Monitor New Items*** — controls whether future releases added to MusicBrainz for an imported artist are automatically monitored (All, None, New). - **Quality Profile*** — the default quality profile assigned to each imported artist. Used later to decide which `Releases` are cutoff-met and what Lidarr will search for. - **Metadata Profile*** — the default metadata profile. Controls which `Release` types (studio albums, EPs, singles, etc.) are visible on each imported artist. + - **Tags** — optional tags applied to every artist created by this import, useful for later filtering or automation rules. 3. Save the root folder. Lidarr begins scanning the path immediately. -The three asterisked fields above become the defaults for every artist the import creates. You can change them on a per-artist basis later, but it's much less work to pick the right defaults up front than to batch-update hundreds of artists afterwards. In particular, `Metadata Profile` has the biggest downstream effect — a too-narrow profile will silently hide `Releases` that exist on disk. +The asterisked fields above become the defaults for every artist the import creates. You can change them on a per-artist basis later, but it's much less work to pick the right defaults up front than to batch-update hundreds of artists afterwards. In particular, `Metadata Profile` has the biggest downstream effect — a too-narrow profile will silently hide `Releases` that exist on disk. ### What Lidarr does during the scan @@ -114,7 +116,7 @@ The three asterisked fields above become the defaults for every artist the impor ## After import -Once the scan finishes, plan on a review pass. Even a well-prepared library will produce a small number of mismatches, and finding them early is cheaper than discovering them weeks later when Lidarr downloads the "missing" half of a mis-linked `Release`. +Once the scan finishes, plan on a review pass. Even a well-prepared library will produce a small number of mismatches, and finding them early is cheaper than discovering them weeks later when Lidarr downloads the "missing" half of a mismatched `Release`. - **Check the library view** for artists with zero monitored `Releases`. Usually means the metadata profile filtered everything out; widen the profile or change it for that artist. - **Look for wrong-release matches.** Pick a few albums at random and verify the tracklist on the artist page matches what you have on disk. Mismatches most commonly appear with re-releases, remasters, and region-specific pressings — the text match picked a different `Release` than the one you own. Use the **Manual Import** or **Search for MusicBrainz ID** workflow to re-link. @@ -132,4 +134,4 @@ If a `Release` or `Release Artist` you expect is genuinely missing from MusicBra - [Concepts](/lidarr/concepts) — the `Release` and `Artist` model that drives import behavior - [Quick Start](/lidarr/quick-start-guide) — install and first download, if you don't already have a library - [FAQ](/lidarr/faq) — common import and metadata issues -- [Settings](/lidarr/settings) — detailed reference for every option referenced on thi \ No newline at end of file +- [Settings](/lidarr/settings) — detailed reference for every option referenced on this page diff --git a/lidarr/installation/linux.md b/lidarr/installation/linux.md index 692f1262f..cc1f4fc9e 100644 --- a/lidarr/installation/linux.md +++ b/lidarr/installation/linux.md @@ -2,7 +2,7 @@ title: Lidarr Linux Installation description: Linux installation guide for Lidarr published: true -date: 2026-04-20T14:18:55.254Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, installation, linux editor: markdown dateCreated: 2023-07-03T20:10:49.328Z @@ -38,7 +38,7 @@ You'll need to install the binaries using the below commands. - Ensure you have the required prerequisite packages: ```shell -sudo apt install curl mediainfo sqlite3 libchromaprint-tools +sudo apt install curl mediainfo sqlite3 libchromaprint-tools wget ``` > Warning: Ignoring the below prerequisites will result in a failed installation and non-functional application. {.is-warning} @@ -98,6 +98,7 @@ After=syslog.target network.target [Service] User=lidarr Group=media +UMask=0002 Type=simple ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/ diff --git a/lidarr/installation/reverse-proxy.md b/lidarr/installation/reverse-proxy.md index 783cc62c4..f8a0503c8 100644 --- a/lidarr/installation/reverse-proxy.md +++ b/lidarr/installation/reverse-proxy.md @@ -1,9 +1,9 @@ --- title: Lidarr Reverse Proxy -description: +description: published: true -date: 2026-06-06T15:01:19.756Z -tags: +date: 2026-06-07T00:00:00.000Z +tags: editor: markdown dateCreated: 2023-07-03T20:10:58.279Z --- @@ -35,7 +35,7 @@ location ^~ /lidarr { proxy_set_header Connection $http_connection; } # Allow the API External Access via NGINX -location ~ /lidarr/api { +location ^~ /lidarr/api { auth_basic off; proxy_pass http://127.0.0.1:8686; } diff --git a/lidarr/library.md b/lidarr/library.md index 7595db0b1..b4eab292f 100644 --- a/lidarr/library.md +++ b/lidarr/library.md @@ -2,7 +2,7 @@ title: Lidarr Library description: Managing your music library in Lidarr including artist monitoring, album tracking, and metadata management published: true -date: 2026-05-29T13:09:25.609Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, library, monitoring, albums, music, metadata, artists editor: markdown dateCreated: 2021-06-14T21:34:03.446Z @@ -25,12 +25,10 @@ The toolbar's **View** toggle switches between four display modes: The toolbar above the artist list contains the following actions: -- **Update All**: refreshes metadata for every artist from the Servarr metadata server and rescans all artist folders. +- **Update All** / **Update Filtered** / **Update Selected**: refreshes metadata for all artists, the current filtered view, or only the selected artists from the Servarr metadata server and rescans their folders. - **RSS Sync**: polls your configured indexers' RSS feeds immediately, rather than waiting for the next scheduled sync. -- **Search All** / **Search Filtered** / **Search Selected**: triggers an automatic search for all missing and cutoff-unmet albums across all artists, the current filtered view, or only the artists you have checked. -- **Manual Import**: opens the manual import dialog to match files in any folder Lidarr can reach to artists and albums in your library. Use this when the automatic import pipeline hasn't picked up a download. See [Import Troubleshooting](/lidarr/import-troubleshooting) for when and how to use it. -- **Artist Editor**: toggles mass-editor mode, letting you change the monitoring status, quality profile, metadata profile, root folder, or tags across more than one artist at once. -- **Options**: shows or hides columns in Table view and adjusts poster/banner size in the grid views. +- **Select Artists**: enters select mode, showing a footer with bulk-action buttons (Edit, Rename Files, Write Metadata Tags, Set App Tags, Update Monitoring, Delete) that apply to the artists you select. +- **Options**: shows or hides columns in Table view and adjusts poster/banner/overview size in the grid views. ## Filters @@ -39,10 +37,9 @@ The **Filter** button narrows the artist list. Built-in filters: - **All**: every artist in the library, monitored or not. - **Monitored**: artists with monitoring enabled. - **Unmonitored**: artists with monitoring disabled. Lidarr won't search for new releases from these artists. -- **Missing**: monitored artists that have at least one monitored album with no files on disk. -- **Wanted**: monitored artists with at least one monitored album that's missing and past its release date. -- **Cutoff Unmet**: artists where at least one album exists on disk but hasn't yet reached the quality target set in its Quality Profile. -- **No Metadata Profile**: artists not assigned to any metadata profile. +- **Continuing**: artists whose career status is active/continuing. +- **Ended**: artists who are no longer releasing new music. +- **Missing**: artists that have at least one track with no file on disk. - **Custom Filters**: you can build and save your own filters against any combination of artist fields (monitored status, quality profile, metadata profile, path, tags, added date, and more). ## Artist detail @@ -61,9 +58,11 @@ The Add New tab is where you search for and add artists to Lidarr. Search by nam When adding an artist you will set: - **Root Folder**: the parent directory under which Lidarr will create the artist's folder. +- **Monitor**: which albums to monitor initially (All Albums, Future Albums, Missing Albums, Existing Albums, First Album, Latest Album, or None). +- **Monitor New Items**: how to handle new releases added to the artist's discography after the artist is added (All Albums, New Albums, or None). - **Quality Profile**: the target quality and upgrade rules for this artist's files. - **Metadata Profile**: which release group types (Album, Single, EP, etc.) and statuses to include in the artist's library. -- **Monitored**: whether Lidarr should actively search for missing albums. +- **Tags**: optional tags to assign to the artist for use in custom filters and profiles. - **Start Search for Missing Albums**: triggers an immediate search after adding, rather than waiting for the next scheduled search. # Library Import diff --git a/lidarr/metadata-troubleshooting.md b/lidarr/metadata-troubleshooting.md index 9cd5ebc9d..23c5ac3f8 100644 --- a/lidarr/metadata-troubleshooting.md +++ b/lidarr/metadata-troubleshooting.md @@ -2,7 +2,7 @@ title: Lidarr Metadata Troubleshooting description: Why can't I add or update this album? Diagnose MusicBrainz metadata problems in Lidarr — propagation, unknown release statuses, matching, cache-busts published: true -date: 2026-05-29T13:01:49.601Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, troubleshooting, releases, metadata, musicbrainz, cache-bust editor: markdown dateCreated: 2026-04-20T13:04:32.647Z @@ -94,7 +94,7 @@ If you notice this pattern for a specific artist, spot-check their MusicBrainz d ## Refresh cadence -- **Lidarr ↔ metadata server:** every hour, at 5 minutes past the hour. +- **Lidarr ↔ metadata server:** every 24 hours. - **Metadata server ↔ MusicBrainz:** faster but not instant; assume hours, not minutes. - **Cover art updates:** slowest of the three — expect days. Covers aren't pulled directly by Lidarr — see [Cover art](#cover-art) below. @@ -123,7 +123,7 @@ Refresh Releases is the task that keeps Lidarr's local view of metadata in sync If the refresh is causing heavy disk I/O, the setting to look at is **Rescan Artist Folder after Refresh**: - Default is `Always`, which re-reads every file after every refresh. -- Changing it to `Manual` resolves the I/O problem — refreshes still update metadata, they just don't re-scan files on disk. +- Changing it to `After Manual Refresh` resolves the I/O problem — refreshes still update metadata, they just don't re-scan files on disk. - **Don't** set it to `Never` unless every change to your library (additions, upgrades, deletions) goes through Lidarr. Lidarr won't pick up manual file changes or third-party tooling if rescans never run. ## Updating MusicBrainz @@ -194,7 +194,7 @@ To add a Spotify relationship on MusicBrainz, open the release and go to **Edit* > A 429 from Spotify doesn't mean anything is wrong with your Lidarr setup — it's a server-side rate limit on lookups. Checking Lidarr's logs at Debug level will show the 429 responses if you want to confirm that's the cause. {.is-info} -## Retry or wait? +## Retry or wait | Situation | Action | |---|---| @@ -213,4 +213,4 @@ To add a Spotify relationship on MusicBrainz, open the release and go to **Edit* - [FAQ](/lidarr/faq) — shorter answers and the operational questions that don't fit this page - [Harmony](https://harmony.pulsewidth.org.uk/) — recommended tool for importing releases into MusicBrainz - [MusicBrainz Userscripts](https://musicbrainz.org/doc/Guides/Userscripts) — browser userscripts for MusicBrainz editing (watch the album-type caveat above) -- [Servarr Discord](https://lidarr.audio/discord) — where cache-bust reque \ No newline at end of file +- [Servarr Discord](https://lidarr.audio/discord) — where cache-bust reque diff --git a/lidarr/naming-guide.md b/lidarr/naming-guide.md index 1d3d66716..3ae7d2692 100644 --- a/lidarr/naming-guide.md +++ b/lidarr/naming-guide.md @@ -2,7 +2,7 @@ title: Lidarr File Naming Guide description: Common file and folder naming schemes for Lidarr music organization including custom formats and multi-disc album handling published: true -date: 2026-05-29T13:02:16.488Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, naming, configuration editor: markdown dateCreated: 2024-03-30T13:23:53.095Z @@ -55,6 +55,8 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso | `{Artist CleanNameThe}` | Clean artist name with "The" moved to the end. | | `{Artist Disambiguation}` | Disambiguation string from MusicBrainz, for example, `UK band`. Empty for most artists. | | `{Artist Genre}` | First genre tag associated with the artist. | +| `{Artist NameFirstCharacter}` | First letter of the artist name (after moving "The" to the end). Useful for alphabetical sub-folder grouping, for example, `A`, `B`, `#`. | +| `{Artist MbId}` | MusicBrainz artist ID (UUID). | ## Album tokens @@ -67,6 +69,7 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso | `{Album Disambiguation}` | Disambiguation string from MusicBrainz. Useful when an artist has two albums with the same name. | | `{Album Type}` | Release group type: Album, Single, EP, Compilation, Live, Remix, Soundtrack, etc. | | `{Album Genre}` | First genre tag for the album. | +| `{Album MbId}` | MusicBrainz album (release group) ID (UUID). | | `{Release Year}` | Four-digit release year. | ## Track tokens @@ -74,8 +77,12 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso | Token | Description | |---|---| | `{Track Title}` | Track title. | +| `{Track CleanTitle}` | Track title with illegal filesystem characters removed. | | `{Track ArtistName}` | Track-level artist name. Useful for Various Artists compilations where each track has a different credited artist. | +| `{Track ArtistCleanName}` | Track artist name with illegal filesystem characters removed. | | `{Track ArtistNameThe}` | Track artist name with "The" moved to the end. | +| `{Track ArtistCleanNameThe}` | Clean track artist name with "The" moved to the end. | +| `{Track ArtistMbId}` | MusicBrainz ID of the track-level artist. | | `{track:00}` | Track number zero-padded to 2 digits (01, 02 … 99). Use `{track:000}` for 3-digit padding on large releases. | ## Medium (disc) tokens @@ -85,6 +92,7 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso | `{medium:0}` | Disc number, single digit. | | `{medium:00}` | Disc number zero-padded to 2 digits. | | `{Medium Format}` | Physical format of the disc: CD, Vinyl, Digital Media, etc. | +| `{Medium Name}` | Name of the disc as stored in MusicBrainz (for example, `Disc 1`). | ## Quality and technical tokens @@ -92,17 +100,22 @@ Wrap tokens in `{}`. Lidarr substitutes them at import time. Any token that reso |---|---| | `{Quality Title}` | Quality profile name as defined in Lidarr (for example, FLAC, MP3-320). | | `{Quality Full}` | Full quality string including proper/repack designation. | +| `{Quality Proper}` | `Proper` or `Repack` when applicable; empty otherwise. | | `{MediaInfo AudioBitRate}` | Audio bitrate (for example, 320kbps). Only available after import; blank on pre-import rename previews. | | `{MediaInfo AudioChannels}` | Number of audio channels. | | `{MediaInfo AudioCodec}` | Audio codec (for example, FLAC, MP3). | | `{MediaInfo AudioSampleRate}` | Audio sample rate (for example, 44100Hz). | +| `{MediaInfo AudioBitsPerSample}` | Bit depth of the audio (for example, 24-bit). | ## Miscellaneous tokens | Token | Description | |---|---| -| `{Release Group}` | Ripping or encoding group tag from the file. | -| `{Preferred Words}` | Matched preferred words from Release Profiles, joined by spaces. | +| `{Release Group}` | Ripping or encoding group tag from the file. Defaults to `Lidarr` when no group tag is present and the token is used without surrounding separators. | +| `{Original Title}` | Scene name of the file if available; falls back to the original filename without extension. | +| `{Original Filename}` | Original filename without extension. | +| `{Custom Formats}` | All custom formats that have "Include Custom Format when Renaming" enabled, joined by spaces. | +| `{Custom Format}` | A specific custom format by name, for example `{Custom Format:FLAC}`. Empty when the format is not matched or not enabled for renaming. | # Community naming conventions diff --git a/lidarr/plugins.md b/lidarr/plugins.md index 37d78339f..11aa418f7 100644 --- a/lidarr/plugins.md +++ b/lidarr/plugins.md @@ -2,7 +2,7 @@ title: Lidarr Plugins description: Basic Setup and Details for Plugins beta Testing Branch published: true -date: 2026-06-06T14:27:08.256Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, installation, plugins, configuration editor: markdown dateCreated: 2025-01-18T16:05:16.687Z @@ -52,7 +52,7 @@ image: lscr.io/linuxserver/lidarr:nightly ### Post Install - Once you have changed branches, navigate to `/system/plugins`. You will have the option to enter the URL of the GitHub repository containing the plugin. Enter the URL and select Install. You can observe the progress in the lower left corner. Installation takes a few seconds depending on your setup. -- If `/system/plugins` doesn't appear in the menu, ensure that `/system/updates` shows that plugins has a status of `Currently Installed`. +- If `/system/plugins` doesn't appear in the menu, ensure you are running the `nightly` build of Lidarr. The Plugins menu item is only present in the nightly branch. ## Next Steps @@ -66,6 +66,7 @@ image: lscr.io/linuxserver/lidarr:nightly > Both plugins and this documentation are community-driven. No official recommendations exist. Each developer supports their own plugin. {.is-info} + ## jtstothard/UniqueSingles [UniqueSingles by jtstothard](https://github.com/jtstothard/lidarr-plugin-uniquesingles) @@ -185,7 +186,6 @@ To search, you must also add Slskd as an Indexer. Slskd is now available for both automatic and interactive searches. During Lidarr search operations you can view the slskd `/searches` as they occur and monitor `/downloads`. - ## TypNull/Tubifarry [Tubifarry by TypNull](https://github.com/TypNull/Tubifarry) is a *multi-feature* plugin that extends Lidarr's capabilities with these key functions: @@ -219,7 +219,6 @@ Slskd is now available for both automatic and interactive searches. During Lidar > See the [Tubifarry README](https://github.com/TypNull/Tubifarry) for advanced configuration, troubleshooting, and feature deep-dives. {.is-info} - ## TrevTV TrevTV develops specialized Lidarr plugins for direct music platform integration. @@ -257,7 +256,6 @@ TrevTV develops specialized Lidarr plugins for direct music platform integration - FFmpeg required for Tidal conversions - Qobuz authentication may require custom app IDs - ## ta264/deemix [Deemix plugin by ta264](https://github.com/ta264/Lidarr.Plugin.Deemix) @@ -266,9 +264,6 @@ This plugin enables Lidarr to search Deezer using Deemix. You must have a workin [Deemix](https://github.com/bambanah/deemix) - ## lucapolesel/Lidarr.Plugin.Slskd [Slskd (Soulseek) by lucapolesel](https://github.com/lucapolesel/Lidarr.Plugin.Slskd) - - diff --git a/lidarr/postgres-setup.md b/lidarr/postgres-setup.md index c3985adb0..c57505da7 100644 --- a/lidarr/postgres-setup.md +++ b/lidarr/postgres-setup.md @@ -119,6 +119,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o select setval('public."Albums_Id_seq"', (SELECT MAX("Id")+1 FROM "Albums")); select setval('public."ArtistMetadata_Id_seq"', (SELECT MAX("Id")+1 FROM "ArtistMetadata")); select setval('public."Artists_Id_seq"', (SELECT MAX("Id")+1 FROM "Artists")); + select setval('public."AutoTagging_Id_seq"', (SELECT MAX("Id")+1 FROM "AutoTagging")); select setval('public."Blacklist_Id_seq"', (SELECT MAX("Id")+1 FROM "Blocklist")); select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands")); select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config")); @@ -141,6 +142,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o select setval('public."MetadataProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "MetadataProfiles")); select setval('public."NamingConfig_Id_seq"', (SELECT MAX("Id")+1 FROM "NamingConfig")); select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications")); + select setval('public."NotificationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "NotificationStatus")); select setval('public."PendingReleases_Id_seq"', (SELECT MAX("Id")+1 FROM "PendingReleases")); select setval('public."Profiles_Id_seq"', (SELECT MAX("Id")+1 FROM "QualityProfiles")); select setval('public."QualityDefinitions_Id_seq"', (SELECT MAX("Id")+1 FROM "QualityDefinitions")); @@ -151,6 +153,7 @@ Before migrating, run Lidarr against the created Postgres databases **at least o select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags")); select setval('public."TrackFiles_Id_seq"', (SELECT MAX("Id")+1 FROM "TrackFiles")); select setval('public."Tracks_Id_seq"', (SELECT MAX("Id")+1 FROM "Tracks")); + select setval('public."UpdateHistory_Id_seq"', (SELECT MAX("Id")+1 FROM "UpdateHistory")); select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users")); ``` @@ -381,4 +384,4 @@ By default, dumps are written to `%ProgramData%\Lidarr\Backups\postgres`, alongs ``` > The password is stored in plain text inside the generated script. Restrict access to `%ProgramData%\Lidarr\` to administrator accounts only. -{.is-warning} \ No newline at end of file +{.is-warning} diff --git a/lidarr/quick-start-guide.md b/lidarr/quick-start-guide.md index e29362ccf..3b763749f 100644 --- a/lidarr/quick-start-guide.md +++ b/lidarr/quick-start-guide.md @@ -2,7 +2,7 @@ title: Lidarr Quick Start description: From a fresh install to your first Lidarr download in about 15 minutes published: true -date: 2026-05-29T12:59:41.748Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, library, setup, music, quick-start, getting-started editor: markdown dateCreated: 2021-06-13T06:14:53.615Z @@ -98,10 +98,10 @@ Search for the artist you want — Lidarr looks them up in MusicBrainz. Select t ![lidarr_qs_addnewdylan.png](/assets/lidarr/quick-start-guide/lidarr_qs_addnewdylan.png) -Keep the defaults: +Use these settings: - **Root Folder** — the one you just created. -- **Monitor** — None (for now). +- **Monitor** — set to **None** (the UI default is "All Albums"; change it to None so Lidarr doesn't immediately queue everything). - **Quality Profile** — Any. - **Tags** — empty. - **Start search for missing albums** — unchecked. diff --git a/lidarr/settings.md b/lidarr/settings.md index d5649186a..aebc76cef 100644 --- a/lidarr/settings.md +++ b/lidarr/settings.md @@ -2,7 +2,7 @@ title: Lidarr Settings description: Complete configuration guide for Lidarr settings including media management, profiles, quality definitions, and metadata preferences published: true -date: 2026-05-29T12:54:57.548Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, settings, configuration, quality, profiles, metadata, media editor: markdown dateCreated: 2021-06-14T21:36:07.513Z @@ -29,6 +29,20 @@ When enabled, Lidarr renames imported track files according to the format string Replaces characters in filenames that aren't valid on the target filesystem (for example, `: / \ * ? " < > |` on Windows). When disabled, Lidarr won't sanitize filenames and imports may fail on restricted filesystems. +### Colon Replacement + +When **Replace Illegal Characters** is enabled, controls how Lidarr replaces colons (`:`) in filenames. Only visible when Replace Illegal Characters is on. + +| Option | Example result | +|---|---| +| **Delete** | Removes the colon and any following space (`Artist:Name` → `ArtistName`). | +| **Replace with Dash** | Replaces with a dash (`Artist:Name` → `Artist-Name`). | +| **Replace with Space Dash** | Replaces with a space-dash (`Artist: Name` → `Artist -Name`). | +| **Replace with Space Dash Space** | Replaces with a space-dash-space (`Artist: Name` → `Artist - Name`). | +| **Smart Replace** | Uses a dash when the colon isn't followed by a space, or a space-dash when it is (`Artist:Name` → `Artist-Name`; `Artist: Name` → `Artist - Name`). | + +Default: **Smart Replace** + ## Naming Format The format strings below use tokens to build file and folder names. For a full token reference, see the [Naming Guide](/lidarr/naming-guide). @@ -68,8 +82,10 @@ Example: `{Artist Name}` → `/music/The Beatles/` | **Skip Free Space Check** | Off | Skip the available disk space check before importing. Only enable this if Lidarr can't correctly detect free space (some network shares and unusual storage setups). | | **Minimum Free Space** | 100 MB | Lidarr will refuse to import if available space in the root folder falls below this value. | | **Use Hardlinks Instead of Copy** | On | Use hardlinks when the source and destination are on the same filesystem. Hardlinks avoid copying data and allow seeding to continue. Falls back to copy if hardlinks aren't supported. | +| **Import Using Script** | Off | Copy files during import using a custom external script (for example, to transcode on import). When enabled, a path field appears where you enter the script location. | +| **Import Script Path** | (empty) | Path to the script used when **Import Using Script** is enabled. Only visible when Import Using Script is on. | | **Import Extra Files** | Off | Import sidecar files with the same base name alongside audio files at import time (for example, lyric files, NFO files, cover images). See below. | -| **Extra File Extensions** | (empty) | Comma-separated list of file extensions to import when you enable **Import Extra Files**. Example: `lrc,nfo,jpg,png`. Don't use `*`; the code treats it as a literal character, not a wildcard, and it matches nothing. | +| **Extra File Extensions** | srt | Comma-separated list of file extensions to import when you enable **Import Extra Files**. Example: `lrc,nfo,jpg,png`. Don't use `*`; the code treats it as a literal character, not a wildcard, and it matches nothing. | ### How Import Extra Files works @@ -96,9 +112,12 @@ Matching files are then filtered against the configured extension list. Files th |---|---|---| | **Unmonitor Deleted Tracks** | Off | When something outside Lidarr deletes a track file from disk, automatically unmonitor that track. | | **Download Propers and Repacks** | Prefer and Upgrade | How to handle proper/repack releases. **Prefer and Upgrade** grabs and upgrades to propers when found. **Don't Upgrade Automatically** includes them in scores but won't autograb. **Don't Prefer** treats them as equal to the original release. | -| **Analyse Audio Files** | On | Read audio file metadata (bitrate, sample rate, bit depth) to improve quality detection. Disabling this makes quality detection rely solely on filename parsing. | -| **Rescan Artist Folder after Refresh** | Always | When to rescan an artist folder after a metadata refresh. **Always** rescans every time. **After Manual Refresh** only rescans when triggered manually. **Never** disables rescanning. | | **Watch Library for File Changes** | On | Monitor the library folder for external file changes (additions, deletions, renames). Disabling this means Lidarr only discovers changes during scheduled rescans. | +| **Rescan Artist Folder after Refresh** | Always | When to rescan an artist folder after a metadata refresh. **Always** rescans every time. **After Manual Refresh** only rescans when triggered manually. **Never** disables rescanning. | +| **Allow Fingerprinting** | For new imports only | Use audio fingerprinting to improve the accuracy of track matching. **Always** fingerprints all files on every scan. **For new imports only** fingerprints only newly imported files. **Never** disables fingerprinting. Note: fingerprinting reads part of each audio file and may cause high disk or network activity. | +| **Change File Date** | None | Set the file modification date on import/rescan. **None** leaves the date unchanged. **Album Release Date** sets the file date to the album's MusicBrainz release date. | +| **Recycle Bin** | (empty) | Path to a recycling bin folder. When Lidarr deletes files, they're moved here rather than permanently deleted. Leave empty to skip the recycle bin. | +| **Recycle Bin Cleanup** | 7 days | Number of days before files in the recycle bin are permanently deleted. Set to `0` to disable automatic cleanup. | ## Permissions @@ -110,13 +129,6 @@ These settings apply to Linux and macOS only. Leave disabled on Windows. | **chmod Folder** | 755 | Octal permission mode applied to folders on import (for example, `755` = rwxr-xr-x). | | **chown Group** | (empty) | Group to assign to imported files and folders. The Lidarr process user must be a member of this group. | -## Recycling Bin - -| Setting | Default | Description | -|---|---|---| -| **Recycle Bin** | (empty) | Path to a recycling bin folder. When Lidarr deletes files, they're moved here rather than permanently deleted. Leave empty to skip the recycle bin. | -| **Recycle Bin Cleanup** | 7 days | Number of days before files in the recycle bin are permanently deleted. Set to `0` to disable automatic cleanup. | - ## Root Folders Root folders are the top-level directories where Lidarr stores your library. Each imported artist gets a subfolder inside a root folder. @@ -126,7 +138,6 @@ Click **Add (+)** to add a root folder. The path must exist and Lidarr must have > Don't point a root folder at a cloud storage mount (Dropbox, OneDrive, Google Drive). Lidarr writes audio tags and metadata frequently; cloud storage APIs have rate limits that will cause failures. {.is-warning} - ## Metadata Profiles {#metadata-profiles} @@ -155,7 +166,6 @@ You can include or exclude secondary types (Compilation, Soundtrack, Spokenword, > MusicBrainz determines release types. If a release you expect to see is missing, check its entry on MusicBrainz: the type may be `Unknown`, which Lidarr can't filter on, or the primary type may be one you have unchecked in your profile. {.is-info} - ## Release Profiles {#release-profiles} @@ -166,17 +176,15 @@ Release profiles filter and score releases based on their titles. Use them to re | Field | Description | |---|---| -| **Must Contain** | Comma-separated list of terms (or regex patterns) that a release title must include. Lidarr rejects releases that don't match. | -| **Must Not Contain** | Comma-separated list of terms a release title must not include. Lidarr rejects releases that match any term. | -| **Preferred** | Terms with associated scores. Positive scores boost a release; negative scores penalise it. Separate terms with commas to share a score across more than one term. | -| **Include Preferred when Renaming** | If enabled, Lidarr appends the matched preferred term to the filename during rename. Useful for tagging releases from specific groups in the filename. | -| **Indexers** | Restrict this profile to specific indexers. Leave empty to apply to all indexers. | +| **Enable Profile** | Whether this release profile is active. Disabled profiles are ignored during release scoring. | +| **Must Contain** | Terms (or regex patterns) that a release title must include. Lidarr rejects releases that don't match any configured term. | +| **Must Not Contain** | Terms a release title must not include. Lidarr rejects releases that match any term. | +| **Indexer** | Restrict this profile to a specific indexer. Leave set to "Any" to apply to all indexers. | | **Tags** | Restrict this profile to artists with matching tags. Leave empty to apply to all artists. | > Release profiles apply at **grab/download time**: they filter and score releases from indexers before Lidarr sends anything to a download client. They have no effect on which MusicBrainz release (pressing, edition, format) Lidarr matches your already-downloaded files to during import. See [FAQ → Can Lidarr prefer a specific pressing or format during import?](/lidarr/faq#can-lidarr-prefer-a-specific-pressing-or-format-during-import) for the import side of this. {.is-info} - ## Custom Formats {#custom-formats-2} @@ -211,7 +219,6 @@ Two ways to test how Lidarr will parse a release name before committing to a pro **Via the Servarr Discord bot:** In the `#bot-spam` channel, run `/parser lidarr ` (for example, `/parser lidarr Artist.Album.2022.FLAC-GROUP`). The bot replies with the same parsed breakdown. Useful for quick spot-checks without opening the UI. - # Quality {#quality} @@ -230,7 +237,6 @@ For audio, size limits use **kilobits per second (kbps)**. Lidarr computes a bit > FLAC is lossless and doesn't have a consistent bitrate; its effective bitrate varies by content. The FLAC entry in quality definitions serves primarily as a file-size sanity check rather than strict bitrate enforcement. {.is-info} - # Download Clients {#download-clients} @@ -338,7 +344,6 @@ A mapping translates a remote path (as reported by the download client) to a loc > If both Lidarr and the download client are in Docker containers on the same host with matching volume mounts, a remote path mapping isn't needed. See [TRaSH's Remote Path Mapping guide](https://trash-guides.info/Radarr/Radarr-remote-path-mapping/) for diagnosis and setup. {.is-info} - # Connect {#connections} @@ -356,19 +361,20 @@ Click **Add (+)** and select a connection type. Most connections share these fie | **On Grab** | Trigger when Lidarr sends a release to a download client. | | **On Release Import** | Trigger when a downloaded release is successfully imported. | | **On Upgrade** | Trigger when Lidarr upgrades a file to better quality. | +| **On Download Failure** | Trigger when a download fails. | +| **On Import Failure** | Trigger when an import fails after download. | | **On Rename** | Trigger when Lidarr renames files. | -| **On Artist Added** | Trigger when you add an artist to Lidarr. | -| **On Artist Deleted** | Trigger when you remove an artist. | -| **On Album Delete** | Trigger when Lidarr deletes an album. | | **On Track Retag** | Trigger when audio tags are rewritten. | +| **On Artist Add** | Trigger when you add an artist to Lidarr. | +| **On Artist Delete** | Trigger when you remove an artist. | +| **On Album Delete** | Trigger when Lidarr deletes an album. | +| **On Application Update** | Trigger when Lidarr updates to a new version. | | **On Health Issue** | Trigger when a health check fails. | | **On Health Restored** | Trigger when a health check recovers. | -| **On Application Update** | Trigger when Lidarr updates to a new version. | | **Include Health Warnings** | Include `Warning`-level health issues in health notifications (not just `Error`). | For **Custom Script** connections, see the [Custom Scripts](/lidarr/custom-scripts) page for the full list of environment variables available per event. - # Tags {#tags} diff --git a/lidarr/supported.md b/lidarr/supported.md index e22f6793d..684fd8a1c 100644 --- a/lidarr/supported.md +++ b/lidarr/supported.md @@ -2,7 +2,7 @@ title: Lidarr Supported description: List of supported music indexers, trackers, and download clients compatible with Lidarr published: true -date: 2026-06-06T14:26:29.292Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, indexers, music, supported, download-clients, compatibility, trackers editor: markdown dateCreated: 2021-06-23T07:55:13.803Z @@ -17,6 +17,9 @@ This page is the disambiguation target for all **More Info** links in the Lidarr {#downloadclient} +- Aria2 {#aria2} + - Open-source, multi-protocol download utility supporting HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. + - [Refer to the Settings Page](/lidarr/settings#download-clients) - Deluge {#deluge} - Open-source, cross-platform BitTorrent client with a web UI and remote daemon. - [Refer to the Settings Page](/lidarr/settings#download-clients) @@ -29,6 +32,9 @@ This page is the disambiguation target for all **More Info** links in the Lidarr - Flood {#flood} - Modern web UI for rTorrent (and other torrent backends) with a clean interface and real-time updates. - [Refer to the Settings Page](/lidarr/settings#download-clients) +- Freebox Download {#torrentfreeboxdownload} + - Download client built into Free's Freebox home router/gateway. + - [Refer to the Settings Page](/lidarr/settings#download-clients) - Hadouken {#hadouken} - Open-source BitTorrent client with a web UI. - [Refer to the Settings Page](/lidarr/settings#download-clients) @@ -114,12 +120,91 @@ This page is the disambiguation target for all **More Info** links in the Lidarr {#notification} -- Boxcar {#boxcar} - - iOS push notification service. +- Apprise {#apprise} + - Allows notifications to be sent to many popular notification services via a single interface. - Custom Script {#customscript} - Runs a user-supplied script when a specified event occurs. See [Custom Scripts](/lidarr/custom-scripts) for the full list of available environment variables and example scripts. - Discord {#discord} - Sends notifications to a Discord channel via webhook. One of the most commonly used notification integrations. - Email {#email} - Sends notification emails. If you use Gmail, enable App Passwords under your Google account security settings rather than using your main password. - > You can use a display nam + > You can use a display name with the address: `Your Name ` + {.is-info} +- Emby / Jellyfin {#mediabrowser} + - Notifies an Emby or Jellyfin server to refresh its music library after a track is imported or upgraded. +- Gotify {#gotify} + - Self-hosted push notification server. +- Join {#join} + - Push notification service for Android devices. +- Kodi {#xbmc} + - Notifies a Kodi instance to refresh its music library after a track is imported or upgraded. Kodi is a free, open-source media centre application. +- Mailgun {#mailgun} + - Transactional email API service for sending notification emails. +- Notifiarr {#notifiarr} + - See [Useful Tools — Notifiarr](/useful-tools#notifiarr-fka-discord-notifier) +- ntfy.sh {#ntfy} + - Self-hostable push notification service with a simple HTTP API. +- Plex Media Server {#plexserver} + - Notifies a Plex Media Server to refresh its music library after a track is imported or upgraded. +- Prowl {#prowl} + - iOS push notification service. +- Pushbullet {#pushbullet} + - Cross-platform notification and file sharing service. +- Pushcut {#pushcut} + - iOS app for automation and notifications. +- Pushover {#pushover} + - Simple push notification service for mobile devices. +- SendGrid {#sendgrid} + - Transactional email API service for sending notification emails. +- Signal {#signal} + - Sends notifications via the Signal messaging app. Requires a running [Signal-CLI](https://github.com/AsamK/signal-cli) instance. +- Simplepush {#simplepush} + - Simple push notification service requiring no account. +- Slack {#slack} + - Sends notifications to a Slack channel via webhook. +- Subsonic {#subsonic} + - Notifies a Subsonic-compatible server to update its music library. +- Synology Indexer {#synologyindexer} + - Triggers a Synology NAS media indexer scan after a track is imported or upgraded. +- Telegram {#telegram} + - Sends notifications to a Telegram chat or channel via a bot. +- Twitter {#twitter} + - Posts notifications to a Twitter account. +- Webhook {#webhook} + - Sends an HTTP POST request to a configured URL when events occur. + +## Lists + +{#importlist} + +- Custom List {#customlist} + - Import artists from a manually maintained list. +- Headphones {#headphonesimport} + - Import artists from a [Headphones](https://github.com/rembo10/headphones) instance. +- Last.fm Tag {#lastfmtag} + - Import artists via a Last.fm genre or style tag. +- Last.fm User {#lastfmuser} + - Import artists from a Last.fm user's listening history or loved tracks. +- Lidarr {#lidarrimport} + - Sync monitored artists from another Lidarr instance. +- Lidarr Lists {#lidarrlists} + - Import artists from curated Lidarr community lists. +- MusicBrainz Series {#musicbrainzseries} + - Import artists belonging to a [MusicBrainz Series](https://musicbrainz.org/doc/Series). +- Spotify Followed Artists {#spotifyfollowedartists} + - Import artists you follow on Spotify. +- Spotify Playlists {#spotifyplaylist} + - Import artists from your Spotify playlists. +- Spotify Saved Albums {#spotifysavedalbums} + - Import artists from your Spotify saved albums. + +## Metadata + +{#metadata} + +- Kodi (XBMC) / Emby {#xbmcmetadata} + - Generates `.nfo` sidecar files for artist and album folders, compatible with Kodi and Emby/Jellyfin. +- Roksbox {#roksboxmetadata} + - Generates metadata files compatible with Roksbox media players. +- WDTV {#wdtvmetadata} + - Generates metadata files compatible with WD TV media players. diff --git a/lidarr/system.md b/lidarr/system.md index e341d193e..0ad8e4d03 100644 --- a/lidarr/system.md +++ b/lidarr/system.md @@ -2,7 +2,7 @@ title: Lidarr System description: System information, logs, scheduled tasks, and status monitoring for Lidarr administration and troubleshooting published: true -date: 2026-05-29T12:55:50.781Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, system, logs, administration, tasks, status editor: markdown dateCreated: 2021-06-14T21:36:28.225Z @@ -21,7 +21,9 @@ dateCreated: 2021-06-14T21:36:28.225Z - [Currently installed mono version is old and unsupported](#currently-installed-mono-version-is-old-and-unsupported) - [Currently installed SQLite version isn't supported](#currently-installed-sqlite-version-is-not-supported) - [New update is available](#new-update-is-available) + - [Can't install update because startup folder is in an App Translocation folder (macOS)](#cannot-install-update-because-startup-folder-is-in-an-app-translocation-folder-macos) - [Can't install update because startup folder isn't writable by the user](#cannot-install-update-because-startup-folder-is-not-writable-by-the-user) + - [Can't install update because UI folder isn't writable by the user](#cannot-install-update-because-ui-folder-is-not-writable-by-the-user) - [Updating won't be possible to prevent deleting AppData on Update](#updating-will-not-be-possible-to-prevent-deleting-appdata-on-update) - [Branch is for a previous version](#branch-is-for-a-previous-version) - [Couldn't connect to signalR](#could-not-connect-to-signalr) @@ -33,7 +35,11 @@ dateCreated: 2021-06-14T21:36:28.225Z - [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day) - [Mono Legacy TLS enabled](#mono-legacy-tls-enabled) - [Mono and x86 builds are ending](#mono-and-x86-builds-are-ending) + - [FPcalc is missing](#fpcalc-is-missing) - [FPcalc needs updating](#fpcalc-needs-updating) + - [API Key is too short](#api-key-is-too-short) + - [Package Maintainer Message](#package-maintainer-message) + - [Plugins failed to load](#plugins-failed-to-load) - [Download Clients](#download-clients) - [No download client is available](#no-download-client-is-available) - [Unable to communicate with download client](#unable-to-communicate-with-download-client) @@ -46,6 +52,7 @@ dateCreated: 2021-06-14T21:36:28.225Z - [Permissions Error](#permissions-error) - [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing) - [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed) + - [Download Folder Same as Library Folder](#download-folder-same-as-library-folder) - [Completed/Failed Download Handling](#completedfailed-download-handling) - [Completed Download Handling is disabled](#completed-download-handling-is-disabled) - [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads) @@ -58,9 +65,18 @@ dateCreated: 2021-06-14T21:36:28.225Z - [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures) - [Jackett All Endpoint Used](#jackett-all-endpoint-used) - [Solutions](#solutions) + - [Invalid Indexer Download Client Setting](#invalid-indexer-download-client-setting) + - [Redacted Configured as Gazelle Indexer](#redacted-configured-as-gazelle-indexer) - [Artist Folders](#artist-folders) - [Missing Root Folder](#missing-root-folder) + - [Artist Mount is Read Only](#artist-mount-is-read-only) + - [Artist Removed from MusicBrainz](#artist-removed-from-musicbrainz) + - [Import List Missing Root Folder](#import-list-missing-root-folder) - [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures) + - [Notifications](#notifications) + - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures) + - [Recycling Bin](#recycling-bin) + - [Cannot Write to Recycle Bin](#cannot-write-to-recycle-bin) - [Disk Space](#disk-space) - [About](#about) - [More Info](#more-info) @@ -167,11 +183,21 @@ sudo systemctl start $app > This warning won't appear if your current version is less than 14 days old. {.is-info} -#### Can't install update because startup folder isn't writable by the user +#### Can’t install update because startup folder is in an App Translocation folder (macOS) + +{#cannot-install-update-because-startup-folder-is-in-an-app-translocation-folder.} + +- macOS has moved Lidarr’s startup folder into an App Translocation path. This prevents Lidarr from updating itself. Remove the quarantine attribute or move Lidarr out of the Translocation folder and re-launch it from its permanent location. + +#### Can’t install update because startup folder isn’t writable by the user - This means Lidarr will be unable to update itself. You’ll have to update Lidarr manually or set the permissions on Lidarr’s Startup directory (the installation directory) to allow Lidarr to update itself. -#### Updating won't be possible to prevent deleting AppData on Update +#### Can’t install update because UI folder isn’t writable by the user + +- This means Lidarr will be unable to update itself. You’ll have to update Lidarr manually or set the permissions on Lidarr’s UI directory to allow Lidarr to update itself. + +#### Updating won’t be possible to prevent deleting AppData on Update - Lidarr detected that the AppData folder sits inside the directory that contains the Lidarr binaries. Normally it would be `C:\ProgramData` for Windows and `~/.config` for Linux. @@ -228,15 +254,21 @@ RewriteRule /(.*) ws://127.0.0.1:8686/$1 [P,L] #### Failed to resolve the IP Address for the Configured Proxy Host +{#proxy-failed-resolve-ip} + - Review your proxy settings and ensure they're accurate - Ensure your proxy is up, running, and accessible #### Proxy Failed Test +{#proxy-failed-test} + - Your configured proxy failed to test successfully, review the HTTP error provided and/or check logs for more details. #### System Time is off by more than 1 day +{#system-time-off} + - System time is off by more than 1 day. Scheduled tasks may not run correctly until you correct the time - Review your system time and ensure it's synced to an authoritative time server and accurate @@ -248,6 +280,14 @@ RewriteRule /(.*) ws://127.0.0.1:8686/$1 [P,L] - The next build of the application won't support Mono or x86. If you are receiving this error then you are running the mono version of the application or the x86 version. Due to increasing difficulty supporting these legacy versions, support and releases for them have ended. Upgrade to a supported operating system that doesn't require x86 or Mono. You may also be able to explore using Docker for your needs. +#### FPcalc is missing + +{#fpcalc-missing} + +- Lidarr uses chromaprint audio fingerprinting to identify tracks. This depends on an external binary `fpcalc`. Audio fingerprinting has been disabled because `fpcalc` could not be found on your system. +- Ensure the fpcalc binary bundled with Lidarr is present and executable. Look for it in Lidarr's installation directory (for example `/opt/Lidarr/fpcalc`). +- On Linux, you may need to install `libchromaprint-tools` (Debian/Ubuntu) or the equivalent package for your distribution. + #### FPcalc needs updating {#fpcalc-upgrade} @@ -273,6 +313,27 @@ chmod +x /opt/Lidarr/fpcalc | OpenSUSE | chromaprint-fpcalc | | Synology | chromaprint | +#### API Key is too short + +{#invalid-api-key} + +- Your Lidarr API key must be at least 20 characters long. Go to `Settings => General` and generate a new API key, or update the existing one to be at least 20 characters. + +#### Package Maintainer Message + +{#package-maintainer-message} + +- Your package maintainer has provided a message. This may be an informational notice, a warning, or an error from the team that packages Lidarr for your platform. + +#### Plugins failed to load + +{#plugins-failed-to-load} + +- One or more Lidarr plugins failed to load. Check the Lidarr log for details on which plugins failed and why. + +> Plugins are only available on the develop (pre-release) branch and are not included in stable releases. +{.is-info} + ### Download Clients #### No download client is available @@ -351,6 +412,12 @@ chmod +x /opt/Lidarr/fpcalc - Check your logs for more info. Refer to the [Troubleshooting Guides](/lidarr/troubleshooting). +#### Download Folder Same as Library Folder + +{#download-folder-and-library-folder-not-different-folders} + +- Your download client is configured to sort completed downloads into a folder that is the same as (or is inside) your Lidarr library/root folder. Sorting completed downloads into your library folder can cause issues. Disable sorting in your download client or choose a download destination that is separate from your library folder. + ### Completed/Failed Download Handling #### Completed Download Handling is disabled @@ -415,6 +482,16 @@ chmod +x /opt/Lidarr/fpcalc - Check out [Prowlarr](/prowlarr) which can sync indexers to Lidarr and is from the Servarr development team. - Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to Lidarr. Don't use their single combined endpoint; use `multi` if you plan to use sync. +#### Invalid Indexer Download Client Setting + +{#invalid-indexer-download-client-setting} + +- One or more of your indexers have a download client specified that no longer exists or is no longer enabled. Go to `Settings => Indexers` and for each affected indexer, either clear the download client setting or set it to an enabled download client. + +#### Redacted Configured as Gazelle Indexer + +- You have configured the Redacted indexer using the generic Gazelle indexer type. Use the dedicated Redacted indexer type instead (`Settings => Indexers`). Using the correct indexer type ensures better compatibility and support. + ### Artist Folders #### Missing Root Folder @@ -431,6 +508,22 @@ chmod +x /opt/Lidarr/fpcalc - Next you will receive a pop-up that states Would you like to move the Artist folders to 'root path' ? This will also state This will also rename the Artist folder per the Artist folder format in settings. Simply select No if you don't want Lidarr to move your files - Run the Check Health Task in System => Tasks +#### Artist Mount is Read Only + +{#artist-mount-ro} + +- A mount containing an artist folder is mounted as read-only. Lidarr cannot import files into a read-only mount. Check your mount configuration and ensure that Lidarr has write access to the artist folders listed in the health check message. + +#### Artist Removed from MusicBrainz + +- One or more artists in your library have been removed from MusicBrainz. Lidarr cannot update metadata for removed artists. Review the affected artists and either remove them from Lidarr or update them if the MusicBrainz data has moved to a different entry. + +#### Import List Missing Root Folder + +{#import-list-missing-root-folder} + +- One or more of your import lists reference a root folder path that does not exist or is not configured in Lidarr. Go to `Settings => Import Lists` and update the affected list(s) to use a valid root folder. + #### Lists are unavailable due to failures - Typically this simply means that Lidarr is no longer able to communicate via API or via logging in to your chosen list provider. Your best bet if the problem persists is to contact them to rule them out, as their systems may be overloaded from time to time. @@ -438,6 +531,22 @@ chmod +x /opt/Lidarr/fpcalc - Review System => Events filtered for Warning (Warning & Errors) to see the historical failures or check logs for details. +### Notifications + +#### Notifications are unavailable due to failures + +{#notifications-are-unavailable-due-to-failures} + +- One or more of your configured notification connections is failing. Lidarr will back off from attempting to contact the failing notification service and retry after a period of time. Review `System => Events` or your logs for more details on the failure. + +### Recycling Bin + +#### Cannot Write to Recycle Bin + +{#cannot-write-recycle-bin} + +- Lidarr cannot write to the configured Recycle Bin path. Check that the path exists and that Lidarr (or the user it runs as) has write permission to the directory. + ## Disk Space - This section will show you available disk space @@ -468,12 +577,12 @@ chmod +x /opt/Lidarr/fpcalc - Backup - This will run a backup of your Lidarr's database on a set schedule; find more details here. More information about backups is at System => Backups. - Check Health - Check Health will run on the displayed schedule in the UI checking the health of your Lidarr. To see a list of possible health related issues see the Wiki Entry on Health Checks. - - Clean Up Recycle Bin - Lidarr clears the recycling bin on the displayed schedule. This only runs if you set a recycling bin in File Management. - Housekeeping - On the displayed schedule, Lidarr optimizes the database, removes orphaned records, and performs other routine maintenance tasks. - Import List Sync - On the displayed schedule in the UI this will run your Lists and import any possible new artists. Find more info about lists at Settings => Lists. - Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Lidarr - Refresh Monitored Downloads - This goes through and refreshes the downloads queue located under Activity. Essentially pinging your download client to check for finished downloads. - Refresh Artist - This goes through and refreshes all the metadata for all monitored and unmonitored artists + - Rescan Folders - This rescans all root folders for changes to the library on the displayed schedule. - Rss Sync - This will run the RSS Sync. Change this in Settings => Options. Find more information on the RSS function in the FAQ. > You can run all these tasks manually outside their scheduled times by hitting the icon to the far right of each of the tasks. diff --git a/lidarr/tips-and-tricks.md b/lidarr/tips-and-tricks.md index e81081c10..f92520cac 100644 --- a/lidarr/tips-and-tricks.md +++ b/lidarr/tips-and-tricks.md @@ -2,7 +2,7 @@ title: Lidarr Tips and Tricks description: Advanced tips, optimization techniques, and workflow improvements for experienced Lidarr users published: true -date: 2026-05-29T13:00:12.430Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, tips, tricks, optimization, workflow, advanced, advanced tips editor: markdown dateCreated: 2021-08-14T15:15:51.656Z @@ -22,7 +22,7 @@ Your download folder and music library root folder can't be the same location. M Keep two locations separate: -``` +```text /data/ downloads/ ← download client writes here music/ ← Lidarr root folder (your library) @@ -37,7 +37,7 @@ On import, Lidarr moves (or hardlinks) files from `downloads/` into `music/`. Th If you're running more than one download client — say, a Usenet client alongside a torrent client — give each its own subfolder under `downloads/` and set a matching category in Lidarr: -``` +```text /data/ downloads/ usenet/ ← SABnzbd / NZBGet category: "lidarr" @@ -166,7 +166,7 @@ If the rename has already happened and the next disk scan has not yet run, you c After a successful manual import, Lidarr creates new track file records at the current path and the tracks are no longer considered missing. -> **If you have a large library and renamed many folders outside Lidarr**, running a full disk scan before manual import may be faster than importing folder by folder. Go to **System → Tasks** and trigger **Rescan Artist Folders**, or use **Library → Artist Editor → Update** to run a rescan across all artists. Lidarr will discard the stale records and then re-match any files it finds at the new paths that still conform to the expected folder structure. +> **If you have a large library and renamed many folders outside Lidarr**, running a full disk scan before manual import may be faster than importing folder by folder. Go to **System → Tasks** and trigger **Rescan Folders**, or use **Library → Artist Editor → Update** to run a rescan across all artists. Lidarr will discard the stale records and then re-match any files it finds at the new paths that still conform to the expected folder structure. {.is-info} ## Custom Formats @@ -416,4 +416,4 @@ As long as the root folder paths in the backup are still valid on the destinatio - [Metadata Troubleshooting](/lidarr/metadata-troubleshooting) — when MusicBrainz data is missing or stale - [Import Troubleshooting](/lidarr/import-troubleshooting) — when downloads finish but don't import - [Troubleshooting](/lidarr/troubleshooting) — general runtime issues -- [TRaSH Guides](https://trash-guides.info/) — community recipes for media server setups \ No newline at end of file +- [TRaSH Guides](https://trash-guides.info/) — community recipes for media server setups diff --git a/lidarr/troubleshooting.md b/lidarr/troubleshooting.md index 65e40a090..59bc3faf0 100644 --- a/lidarr/troubleshooting.md +++ b/lidarr/troubleshooting.md @@ -420,7 +420,6 @@ In this test, look for obvious errors and run some simple checks. The trace log ![searches-indexers-and-trackers1.png](/assets/lidarr/searches-indexers-and-trackers1.png) ![searches-indexers-and-trackers2.png](/assets/lidarr/searches-indexers-and-trackers2.png) - ## Common Problems Below are some common problems. diff --git a/lidarr/wanted.md b/lidarr/wanted.md index fbb46ba25..9f5856d80 100644 --- a/lidarr/wanted.md +++ b/lidarr/wanted.md @@ -2,7 +2,7 @@ title: Lidarr Wanted description: Managing wanted albums, manual searches, and download monitoring in Lidarr's Wanted section published: true -date: 2026-05-29T13:09:51.721Z +date: 2026-06-07T00:00:00.000Z tags: lidarr, wanted, monitoring, albums, search, missing editor: markdown dateCreated: 2021-06-14T21:35:43.417Z @@ -19,7 +19,7 @@ The Missing tab lists every monitored album that has no files on disk. Albums ap ## Toolbar actions - **Search Selected**: triggers an automatic search for the albums you have checked. -- **Unmonitor Selected**: sets the checked albums to unmonitored, removing them from the Missing list without deleting anything. +- **Unmonitor Selected** / **Monitor Selected**: toggles monitoring for the checked albums. The label changes depending on the active filter — when viewing monitored albums it shows **Unmonitor Selected**; when viewing unmonitored albums it shows **Monitor Selected**. - **Search All**: triggers an automatic search for every album currently shown in the list. If a filter is active, only filtered results are searched. - **Manual Import**: opens the manual import dialog, letting you match files in any accessible folder to albums in your library. Use this when you have files on disk that Lidarr hasn't picked up automatically. See [Import Troubleshooting](/lidarr/import-troubleshooting) for guidance. - **Options**: opens Table Options to configure page size and visible columns. @@ -29,8 +29,8 @@ The Missing tab lists every monitored album that has no files on disk. Albums ap Each row has two action icons on the right: -- **Search** (magnifying glass): triggers an automatic search for that album only. -- **Manual Import** (person icon): opens manual import scoped to that album. +- **Automatic Search** (magnifying glass): triggers an automatic search for that album only. +- **Interactive Search** (interactive icon): opens the interactive search dialog scoped to that album, letting you browse and manually pick a release. ## Options @@ -50,5 +50,23 @@ An album appears here when the file Lidarr has is below the **Cutoff** quality s ## Toolbar actions - **Search Selected**: triggers an upgrade search for the checked albums. -- **Unmonitor Selected**: disables monitoring for the checked albums, stopping Lidarr from searching for upgrades. +- **Unmonitor Selected** / **Monitor Selected**: toggles monitoring for the checked albums. The label changes depending on the active filter — when viewing monitored albums it shows **Unmonitor Selected**; when viewing unmonitored albums it shows **Monitor Selected**. - **Search All**: triggers an upgrade search for every album currently shown in the list. +- **Options**: opens Table Options to configure page size and visible columns. +- **Filter**: narrows the list, including toggling between monitored and unmonitored albums. + +## Per-row actions + +Each row has two action icons on the right: + +- **Automatic Search** (magnifying glass): triggers an automatic upgrade search for that album only. +- **Interactive Search** (interactive icon): opens the interactive search dialog scoped to that album, letting you browse and manually pick a release. + +## Options + +| Option | Default | Description | +|---|---|---| +| Page Size | 20 | Number of albums shown per page. | +| Columns | (see below) | Choose which columns are visible and their display order. | + +Available columns: Artist Name, Album Title, Album Type, Release Date, Last Searched, Actions. diff --git a/prowlarr/cardigann-yml-definition.md b/prowlarr/cardigann-yml-definition.md index c390ffe37..176e1885b 100644 --- a/prowlarr/cardigann-yml-definition.md +++ b/prowlarr/cardigann-yml-definition.md @@ -2,7 +2,7 @@ title: Prowlarr Cardigann YML Definition description: Complete reference guide for creating Cardigann YAML indexer definitions in Prowlarr published: true -date: 2023-04-30T23:03:37.294Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, cardigann, yml, yaml, indexers, development, reference, guide editor: markdown dateCreated: 2021-08-14T18:19:59.428Z @@ -63,6 +63,7 @@ dateCreated: 2021-08-14T18:19:59.428Z - [reltime](#reltime) - [fuzzytime](#fuzzytime) - [htmldecode](#htmldecode) + - [htmlencode](#htmlencode) - [urldecode](#urldecode) - [urlencode](#urlencode) - [validfilename](#validfilename) @@ -457,6 +458,8 @@ settings: 1_0: Movies 1_1: Movies/HD + # NOTE: multi-select is NOT supported in Prowlarr's Cardigann implementation. + # It is defined here for schema reference only. Using this type will throw a runtime error. - name: quality type: multi-select label: Select one or more quality @@ -476,15 +479,15 @@ settings: # this special type generates an info box in the indexer config that gives instructions on how to fetch a cookie - name: info_cookie - type: Info_cookie + type: info_cookie # this special type generates an info box in the indexer config to warn that the flaresolverr app may be required - name: info_flaresolverr - type: Info_flaresolverr + type: info_flaresolverr # this special type generates an info box in the indexer config that gives instructions on how to fetch a useragent - name: info_useragent - type: Info_useragent + type: info_useragent ``` If it's a public tracker and no config settings are needed then set `settings: []` to disable all options. @@ -1545,27 +1548,27 @@ Note that these are only available during search queries. .Keywords # keywords after applying the keywordsfilters ``` -the following are boolean-like variables in that they return either the string "True" or are null. Can be used in if-else-end statements. +The following boolean-like variables are documented in the upstream Jackett Cardigann specification. **These variables are NOT implemented as template variables in Prowlarr's Cardigann engine** — they exist as internal C# properties on the search criteria objects but are never populated into the template variable dictionary. Referencing them in a YAML definition will always yield null. ```yaml -.Query.IsBookSearch # t=book -.Query.IsDoubanQuery # from t=tvsearch or t=movie -.Query.IsGenreQuery # from t=tvsearch or t=movie or t=music or t=book -.Query.IsIdSearch # Episode.IsNotNullOrWhiteSpace() || Season > 0 || IsImdbQuery || IsTvdbQuery || IsTVRageQuery || IsTraktQuery || IsTvmazeQuery || IsTmdbQuery || IsDoubanQuery || Album.IsNotNullOrWhiteSpace() || Artist.IsNotNullOrWhiteSpace() || Label.IsNotNullOrWhiteSpace() || Genre.IsNotNullOrWhiteSpace() || Track.IsNotNullOrWhiteSpace() || Author.IsNotNullOrWhiteSpace() || Title.IsNotNullOrWhiteSpace() || Publisher.IsNotNullOrWhiteSpace() || Year.HasValue -.Query.IsImdbQuery # from t=tvsearch or t=movie -.Query.IsMovieSearch # t=movie -.Query.IsMusicSearch # t=music -.Query.IsRssSearch # SearchTerm.IsNullOrWhiteSpace() && !IsIdSearch -.Query.IsSearch # t=search -.Query.IsTVRageQuery # from t=tvsearch -.Query.IsTVSearch # t=tvsearch -.Query.IsTmdbQuery # from t=tvsearch or t=movie -.Query.IsTraktQuery # from t=tvsearch or t=movie -.Query.IsTvdbQuery # from t=tvsearch -.Query.IsTvmazeQuery # from t=tvsearch +.Query.IsBookSearch # t=book (Jackett only — not available in Prowlarr templates) +.Query.IsDoubanQuery # from t=tvsearch or t=movie (Jackett only) +.Query.IsGenreQuery # from t=tvsearch or t=movie or t=music or t=book (Jackett only) +.Query.IsIdSearch # (Jackett only) +.Query.IsImdbQuery # from t=tvsearch or t=movie (Jackett only) +.Query.IsMovieSearch # t=movie (Jackett only) +.Query.IsMusicSearch # t=music (Jackett only) +.Query.IsRssSearch # SearchTerm.IsNullOrWhiteSpace() && !IsIdSearch (Jackett only) +.Query.IsSearch # t=search (Jackett only) +.Query.IsTVRageQuery # from t=tvsearch (Jackett only) +.Query.IsTVSearch # t=tvsearch (Jackett only) +.Query.IsTmdbQuery # from t=tvsearch or t=movie (Jackett only) +.Query.IsTraktQuery # from t=tvsearch or t=movie (Jackett only) +.Query.IsTvdbQuery # from t=tvsearch (Jackett only) +.Query.IsTvmazeQuery # from t=tvsearch (Jackett only) ``` -Note: There are several variables that are not supported are provided by Cardigann for compatibility with the Torznab specifications. These variables will always return null. +Note: There are several variables that are not supported and are provided by Cardigann for compatibility with the Torznab specifications. These variables will always return null. All field results are available to the following fields via the `.Result.$FieldName` variables too. For example: @@ -1892,12 +1895,12 @@ filters: ## reltime -Alias for [timeago](#dateparse) +Alias for [timeago](#timeago) ## fuzzytime Converts a fuzzy-time *string* into a DateTime object ("ddd, dd MMM yyyy HH:mm:ss z"). -By default fuzzytime renders a USA_Date. But if you supply an argument containing "UK" then it will return a UK_Date. +By default fuzzytime renders a USA_Date. Note: the "UK" argument for UK date format is not implemented in Prowlarr's Cardigann engine — filter args are ignored and USA date format is always used. Fuzzytime can handle a fuzzy-time *string* such as: ```yaml @@ -1941,6 +1944,22 @@ filters: # result: Anne Rice's Mayfair Witches S01E01 1080p WEB-DL DD+ 5.1 H.264-GGEZ ``` +## htmlencode + +Converts a *string* into an HTML-encoded *string* for HTTP transmission. + +Example: + +```yaml +# encode the string for HTML transmission +selector: td:nth-child(2) a +attribute: title +filters: + # input: Anne Rice's Mayfair Witches + - name: htmlencode + # result: Anne Rice's Mayfair Witches +``` + ## urldecode Converts a *string* that has been encoded for transmission in a URL into a decoded *string*. diff --git a/prowlarr/contributing.md b/prowlarr/contributing.md index b47ba1746..93cff5523 100644 --- a/prowlarr/contributing.md +++ b/prowlarr/contributing.md @@ -2,7 +2,7 @@ title: Prowlarr Contributing description: Guide for contributing to Prowlarr development including setup, building, testing, and submitting changes published: true -date: 2022-11-16T19:35:23.515Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, development, contributing, guide, setup editor: markdown dateCreated: 2021-12-11T19:42:15.627Z @@ -177,7 +177,7 @@ Adding translations to Prowlarr requires two steps ## Adding Translation Strings in Code -The English translation, `src/NzbDrone.Core/Localization/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows: +The English translation, `src/NzbDrone.Core/Localization/Core/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows: > PRs for translation of log messages will not be accepted {.is-warning} diff --git a/prowlarr/custom-scripts.md b/prowlarr/custom-scripts.md index 18641a10f..685185afa 100644 --- a/prowlarr/custom-scripts.md +++ b/prowlarr/custom-scripts.md @@ -2,7 +2,7 @@ title: Prowlarr Custom Scripts description: Guide for creating and implementing custom scripts for automation and integration with Prowlarr workflows published: true -date: 2021-12-20T16:40:47.702Z +date: 2026-06-07T00:00:00.000Z tags: scripts, automation, custom, integration, hooks, api, prowlarr editor: markdown dateCreated: 2021-06-23T06:40:30.916Z @@ -12,7 +12,7 @@ If you're looking to trigger a custom script, you can find more details here. Sc # Overview -Prowlarr can execute a custom script when an episode is newly imported or renamed. Depending on the action, different parameters are supplied. Parameters are passed to the script through environment variables. +Prowlarr can execute a custom script when a grab occurs or a health/application event fires. Depending on the action, different parameters are supplied. Parameters are passed to the script through environment variables. ## Prowlarr Logs @@ -24,11 +24,34 @@ Note that the following will only be logged for custom scripts: # Environment Variables +## On Grab + +| Environment Variable | Details | +| ----------------------------------- | --------------------------------------------------------------------- | +| `prowlarr_eventtype` | `Grab` | +| `prowlarr_instancename` | Name of the Prowlarr instance | +| `prowlarr_applicationurl` | Application URL of Prowlarr | +| `prowlarr_release_title` | Title of the release | +| `prowlarr_release_indexer` | Indexer the release was grabbed from | +| `prowlarr_release_size` | Size of the release in bytes | +| `prowlarr_release_genres` | Genres for the release (pipe `\|` separated) | +| `prowlarr_release_categories` | Categories for the release (pipe `\|` separated) | +| `prowlarr_release_indexerflags` | Indexer flags for the release (pipe `\|` separated) | +| `prowlarr_release_publishdate` | Publish date of the release (ISO 8601 UTC) | +| `prowlarr_download_client` | Download client used for the grab | +| `prowlarr_download_client_type` | Type of download client used | +| `prowlarr_download_id` | Download ID from the download client | +| `prowlarr_source` | Source application that triggered the grab | +| `prowlarr_host` | Host of the source application | +| `prowlarr_redirect` | Whether the grab was a redirect (`True` or `False`) | + ## On Health Issue | Environment Variable | Details | | ------------------------------- | ------------------------------------------------------------ | | `prowlarr_eventtype` | `HealthIssue` | +| `prowlarr_instancename` | Name of the Prowlarr instance | +| `prowlarr_applicationurl` | Application URL of Prowlarr | | `prowlarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) | | `prowlarr_health_issue_message` | Message from the health issue | | `prowlarr_health_issue_type` | Source of the health issue | @@ -39,6 +62,8 @@ Note that the following will only be logged for custom scripts: | Environment Variable | Details | | ---------------------------------- | ------------------------------------------------------------ | | `prowlarr_eventtype` | `HealthRestored` | +| `prowlarr_instancename` | Name of the Prowlarr instance | +| `prowlarr_applicationurl` | Application URL of Prowlarr | | `prowlarr_health_restored_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) | | `prowlarr_health_restored_message` | Message from the health issue | | `prowlarr_health_restored_type` | Source of the health issue | @@ -46,17 +71,21 @@ Note that the following will only be logged for custom scripts: ## On Application Update -| Environment Variable | Details | -| --------------------------------- | -------------------------------------- | -| `prowlarr_eventtype` | `ApplicationUpdate` | -| `prowlarr_update_message` | Message from the update | -| `prowlarr_update_newversion` | Version Prowlarr updated from (string) | -| `prowlarr_update_previousversion` | Version Prowlarr updated to (string) | +| Environment Variable | Details | +| --------------------------------- | ------------------------------------ | +| `prowlarr_eventtype` | `ApplicationUpdate` | +| `prowlarr_instancename` | Name of the Prowlarr instance | +| `prowlarr_applicationurl` | Application URL of Prowlarr | +| `prowlarr_update_message` | Message from the update | +| `prowlarr_update_newversion` | Version Prowlarr updated to (string) | +| `prowlarr_update_previousversion` | Version Prowlarr updated from (string) | ## On Test When adding the script to Prowlarr and clicking 'Test,' the script will be invoked with the following parameters. The script should be able to gracefully ignore any unsupported event type. -| Environment Variable | Details | -| -------------------- | ------- | -| `prowlarr_eventtype` | `Test` | +| Environment Variable | Details | +| --------------------------- | ----------------------------- | +| `prowlarr_eventtype` | `Test` | +| `prowlarr_instancename` | Name of the Prowlarr instance | +| `prowlarr_applicationurl` | Application URL of Prowlarr | diff --git a/prowlarr/environment-variables.md b/prowlarr/environment-variables.md index 8dba1b0bf..277cbc9ad 100644 --- a/prowlarr/environment-variables.md +++ b/prowlarr/environment-variables.md @@ -2,7 +2,7 @@ title: Prowlarr Environment Variables description: Complete guide to Prowlarr environment variables for configuration management including Docker, database, authentication, and server settings published: true -date: 2025-12-16T17:02:47.867Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, docker, installation, postgres editor: markdown dateCreated: 2025-09-06T22:30:15.859Z @@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the | `AuthenticationEnabled` | `AUTH` | `ENABLED` | `PROWLARR__AUTH__ENABLED` | | `AuthenticationMethod` | `AUTH` | `METHOD` | `PROWLARR__AUTH__METHOD` | | `AuthenticationRequired` | `AUTH` | `REQUIRED` | `PROWLARR__AUTH__REQUIRED` | +| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `PROWLARR__AUTH__TRUSTCGNATIPADDRESSES` | | `LogLevel` | `LOG` | `LEVEL` | `PROWLARR__LOG__LEVEL` | | `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `PROWLARR__LOG__FILTERSENTRYEVENTS` | | `LogRotate` | `LOG` | `ROTATE` | `PROWLARR__LOG__ROTATE` | @@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the | `SyslogServer` | `LOG` | `SYSLOGSERVER` | `PROWLARR__LOG__SYSLOGSERVER` | | `SyslogPort` | `LOG` | `SYSLOGPORT` | `PROWLARR__LOG__SYSLOGPORT` | | `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `PROWLARR__LOG__SYSLOGLEVEL` | -| `DbEnabled` | `LOG` | `DBENABLED` | `PROWLARR__LOG__DBENABLED` | +| `LogDbEnabled` | `LOG` | `DBENABLED` | `PROWLARR__LOG__DBENABLED` | | `PostgresHost` | `POSTGRES` | `HOST` | `PROWLARR__POSTGRES__HOST` | | `PostgresPort` | `POSTGRES` | `PORT` | `PROWLARR__POSTGRES__PORT` | | `PostgresUser` | `POSTGRES` | `USER` | `PROWLARR__POSTGRES__USER` | | `PostgresPassword` | `POSTGRES` | `PASSWORD` | `PROWLARR__POSTGRES__PASSWORD` | | `PostgresMainDb` | `POSTGRES` | `MAINDB` | `PROWLARR__POSTGRES__MAINDB` | | `PostgresLogDb` | `POSTGRES` | `LOGDB` | `PROWLARR__POSTGRES__LOGDB` | +| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `PROWLARR__POSTGRES__MAINDBCONNECTIONSTRING` | +| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `PROWLARR__POSTGRES__LOGDBCONNECTIONSTRING` | | `UrlBase` | `SERVER` | `URLBASE` | `PROWLARR__SERVER__URLBASE` | | `BindAddress` | `SERVER` | `BINDADDRESS` | `PROWLARR__SERVER__BINDADDRESS` | | `Port` | `SERVER` | `PORT` | `PROWLARR__SERVER__PORT` | diff --git a/prowlarr/faq.md b/prowlarr/faq.md index 6017a1a7a..8182f3aee 100644 --- a/prowlarr/faq.md +++ b/prowlarr/faq.md @@ -2,7 +2,7 @@ title: Prowlarr FAQ description: Prowlarr FAQ published: true -date: 2025-09-12T22:51:38.317Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, troubleshooting, faq editor: markdown dateCreated: 2021-11-03T03:01:18.079Z @@ -61,7 +61,7 @@ If Prowlarr is exposed so that the UI can be accessed from outside your local ne As of Prowlarr v1, Authentication is Mandatory. -- `AuthenticationType` and `AuthenticationMethod` are mandatory required attributes in the configuration file. +- `AuthenticationMethod` and `AuthenticationRequired` are mandatory required attributes in the configuration file. ### Authentication Method @@ -73,8 +73,8 @@ As of Prowlarr v1, Authentication is Mandatory. ### Authentication Required - If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses` - - The config file equivalent of this is `DisabledForLocalAddresses` -- `Enabled` is also a valid value + - The config file equivalent of this is `DisabledForLocalAddresses` +- `Enabled` is also a valid value ## How do I reset Stats diff --git a/prowlarr/indexers.md b/prowlarr/indexers.md index 7d442f94f..c791afd6f 100644 --- a/prowlarr/indexers.md +++ b/prowlarr/indexers.md @@ -2,7 +2,7 @@ title: Prowlarr Indexers description: Configure and manage indexers in Prowlarr for torrent and usenet search aggregation published: true -date: 2025-12-16T17:09:47.110Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, indexers, configuration, search, torrent, usenet, aggregation editor: markdown dateCreated: 2021-06-06T11:45:31.974Z @@ -53,10 +53,10 @@ Once you've selected your indexer, there will be a pop-up containing further inf - Name - Select a name for this indexer. When it syncs to your apps, it will add `(Prowlarr)` behind it. - Enable - Check the box to enable this indexer. -- Redirect - Check the box if a redirect is necessary. There are only a couple of indexers where this is required to avoid being banned. If enabled, this will pass the grab link directly to the application rather than proxying it via Prowlarr. +- Redirect - If enabled, this will pass the grab link directly to the application rather than proxying it via Prowlarr. Redirect is **required** for all Usenet (Newznab) indexers and cannot be disabled for them. For torrent indexers it is optional and only needed for a small number of specific trackers to avoid being banned. -> Redirect is typically only needed for a handful of very specific indexers -{.is-info} +> Redirect is mandatory for all Usenet indexers. Attempting to save a Usenet indexer with Redirect disabled will result in a validation error. +{.is-warning} - Sync Profile - Select your Sync Profile here. These can be created in [`Settings` => `Apps`](/prowlarr/settings#applications). The Standard default, profile already exists, and looks like this: @@ -78,11 +78,16 @@ Once you've selected your indexer, there will be a pop-up containing further inf - (Advanced Option) Additional Parameters - Additional parameters to add to the requests for this indexer. - VIP Expiration - Enter the date in ISO format (yyyy-MM-DD) to be notified 1 week prior to expiration; otherwise leave blank - Tags - Use tags to specify default download clients, specify Indexer Proxies, specify indexers to applications or just to organize your indexers. -- (Advanced Option) Query Limit - If your indexer limits your API hits per day, you can enter that number here to avoid exceeding the limit. -- (Advanced Option) Grab Limit - If your indexer limits your Grabs per day, you can enter that number here to avoid exceeding the limit. Once the grab limit is reached further queries will trigger an unhandled exception in \*Arr Apps. Other apps may very. +- (Advanced Option) Query Limit - If your indexer limits your API hits per the configured unit, you can enter that number here to avoid exceeding the limit. +- (Advanced Option) Grab Limit - If your indexer limits your Grabs per the configured unit, you can enter that number here to avoid exceeding the limit. Once the grab limit is reached further queries will trigger an unhandled exception in \*Arr Apps. Other apps may vary. +- (Advanced Option) Limits Unit - The unit of time for counting Query and Grab Limits per indexer. Options are `Day` (default) or `Hour`. - (Advanced Option) Seed Ratio - For Torrent Indexers Only: The ratio a torrent should reach before stopping, empty is app's default - (Advanced Option) Seed Time - For Torrent Indexers Only: The time a torrent should be seeded before stopping, empty is app's default. Values are in minutes. -- (Advanced Option) Indexer Priority - Priority of this indexer to prefer one indexer over another in release tiebreaker scenarios. 1 is highest priority and 50 is lowest priority. These priorities will sync to the \*Arr apps. +- (Advanced Option) Pack Seed Time - For Torrent Indexers Only: The time a pack (season or discography) torrent should be seeded before stopping, empty is app's default. Values are in minutes. +- (Advanced Option) Apps Minimum Seeders - For Torrent Indexers Only: The minimum number of seeders required by the connected apps for this indexer to grab a release. Empty uses the Sync Profile's default. +- (Advanced Option) Prefer Magnet URL - For Torrent Indexers Only: When enabled, this indexer will prefer magnet URLs over torrent file links for grabs. +- (Advanced Option) Indexer Priority - Priority of this indexer to prefer one indexer over another in release tiebreaker scenarios. 1 is highest priority and 50 is lowest priority, with 25 as the default. These priorities will sync to the \*Arr apps. +- Download Client - Specify which download client is used for grabs made within Prowlarr from this indexer. Leave blank to use any available download client. - Test your indexer, and if a green checkmark appears, you're okay to save it. When you save it, depending on your sync settings, it will be added to your apps automatically. diff --git a/prowlarr/installation/reverse-proxy.md b/prowlarr/installation/reverse-proxy.md index 252e124f5..203f19c83 100644 --- a/prowlarr/installation/reverse-proxy.md +++ b/prowlarr/installation/reverse-proxy.md @@ -2,7 +2,7 @@ title: Prowlarr Reverse Proxy description: Configuring reverse proxy setup for Prowlarr with nginx, Apache, and other web servers published: true -date: 2024-01-19T23:44:51.382Z +date: 2026-06-07T00:00:00.000Z tags: reverse-proxy, nginx, apache, web-server, configuration, prowlarr editor: markdown dateCreated: 2023-07-03T20:11:34.526Z @@ -65,7 +65,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi > For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `9696` and Prowlarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `prowlarr` is chosen (line 5). {.is-info} -> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` +> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning} ```nginx @@ -116,6 +116,7 @@ ProxyPassReverse / http://127.0.0.1:9696/prowlarr/ If you implement any additional authentication through Apache, you should exclude the following paths: - `/prowlarr/api/` +- `/prowlarr/[0-9]+/api` (per-indexer Newznab/Torznab endpoints) ### Using SSL on the Apache reverse proxy diff --git a/prowlarr/postgres-setup.md b/prowlarr/postgres-setup.md index 7f193a3d2..79726576f 100644 --- a/prowlarr/postgres-setup.md +++ b/prowlarr/postgres-setup.md @@ -2,7 +2,7 @@ title: Prowlarr Configuring PostgreSQL Database description: Configuring Prowlarr with a Postgres Database published: true -date: 2025-05-29T21:37:09.627Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, postgres, database, installation editor: markdown dateCreated: 2022-01-10T15:38:53.538Z @@ -107,25 +107,26 @@ Before starting a migration please ensure that you have run Prowlarr against the 1. For those having the issues POST-MIGRATION from SQLite run the following: - ```postgres - select setval('public."ApplicationIndexerMapping_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationIndexerMapping")); - select setval('public."Applications_Id_seq"', (SELECT MAX("Id")+1 FROM "Applications")); - select setval('public."ApplicationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationStatus")); - select setval('public."AppSyncProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "AppSyncProfiles")); - select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands")); - select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config")); - select setval('public."CustomFilters_Id_seq"', (SELECT MAX("Id")+1 FROM "CustomFilters")); - select setval('public."DownloadClients_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClients")); - select setval('public."DownloadClientStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClientStatus")); - select setval('public."History_Id_seq"', (SELECT MAX("Id")+1 FROM "History")); - select setval('public."IndexerDefinitionVersions_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerDefinitionVersions")); - select setval('public."IndexerProxies_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerProxies")); - select setval('public."Indexers_Id_seq"', (SELECT MAX("Id")+1 FROM "Indexers")); - select setval('public."IndexerStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerStatus")); - select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications")); - select setval('public."ScheduledTasks_Id_seq"', (SELECT MAX("Id")+1 FROM "ScheduledTasks")); - select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags")); - select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users")); - ``` + ```postgres + select setval('public."ApplicationIndexerMapping_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationIndexerMapping")); + select setval('public."Applications_Id_seq"', (SELECT MAX("Id")+1 FROM "Applications")); + select setval('public."ApplicationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "ApplicationStatus")); + select setval('public."AppSyncProfiles_Id_seq"', (SELECT MAX("Id")+1 FROM "AppSyncProfiles")); + select setval('public."Commands_Id_seq"', (SELECT MAX("Id")+1 FROM "Commands")); + select setval('public."Config_Id_seq"', (SELECT MAX("Id")+1 FROM "Config")); + select setval('public."CustomFilters_Id_seq"', (SELECT MAX("Id")+1 FROM "CustomFilters")); + select setval('public."DownloadClients_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClients")); + select setval('public."DownloadClientStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "DownloadClientStatus")); + select setval('public."History_Id_seq"', (SELECT MAX("Id")+1 FROM "History")); + select setval('public."IndexerDefinitionVersions_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerDefinitionVersions")); + select setval('public."IndexerProxies_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerProxies")); + select setval('public."Indexers_Id_seq"', (SELECT MAX("Id")+1 FROM "Indexers")); + select setval('public."IndexerStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "IndexerStatus")); + select setval('public."NotificationStatus_Id_seq"', (SELECT MAX("Id")+1 FROM "NotificationStatus")); + select setval('public."Notifications_Id_seq"', (SELECT MAX("Id")+1 FROM "Notifications")); + select setval('public."ScheduledTasks_Id_seq"', (SELECT MAX("Id")+1 FROM "ScheduledTasks")); + select setval('public."Tags_Id_seq"', (SELECT MAX("Id")+1 FROM "Tags")); + select setval('public."Users_Id_seq"', (SELECT MAX("Id")+1 FROM "Users")); + ``` 1. Start Prowlarr diff --git a/prowlarr/search.md b/prowlarr/search.md index 7c501be4d..bc8dd478c 100644 --- a/prowlarr/search.md +++ b/prowlarr/search.md @@ -2,7 +2,7 @@ title: Prowlarr Search description: published: true -date: 2025-07-15T20:42:03.748Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr editor: markdown dateCreated: 2021-06-08T23:31:53.221Z @@ -79,6 +79,6 @@ Parameters - `type` - the search type to perform - `search` - Basic Text Query - `tvsearch` - TV Query - Supports TV parameters - - `moviesearch` - Movie Query - Supports Movie parameters - - `audiosearch` - Audio/Music Query - Supports Music parameters - - `booksearch` - Book Query - Supports Book parameters + - `movie` - Movie Query - Supports Movie parameters + - `music` - Audio/Music Query - Supports Music parameters + - `book` - Book Query - Supports Book parameters diff --git a/prowlarr/settings.md b/prowlarr/settings.md index 377929ade..68ef2e708 100644 --- a/prowlarr/settings.md +++ b/prowlarr/settings.md @@ -2,7 +2,7 @@ title: Prowlarr Settings description: Configuration guide for Prowlarr settings including applications, indexers, notifications, and general preferences published: true -date: 2023-03-30T14:07:39.851Z +date: 2026-06-07T00:00:00.000Z tags: settings, configuration, prowlarr, indexers, applications, notifications editor: markdown dateCreated: 2021-06-06T15:04:48.057Z @@ -236,7 +236,8 @@ Connections are how you want Prowlarr to communicate with the outside world. - On Release Grab - Be notified on release grab from within Prowlarr or from the API - Include Manual Grabs - Be notified on grabs triggered manually within Prowlarr UI - On Health Issue - Be notified on health check failures - - Include Health Warnings - Be notified on health warnings in addition to errors. +- On Health Restored - Be notified when a previously reported health issue is resolved + - Include Health Warnings - Be notified on health warnings in addition to errors. (Applies to both On Health Issue and On Health Restored) - On Application Update - Be notified when Prowlarr gets updated to a new version # Tags @@ -265,6 +266,7 @@ Click on `Settings` => `General`. - Port Number - the port that Prowlarr runs on. It must be unique. (default: 9696) - BaseUrl - Enter a URL base here if you are using a reverse proxy. (restart required) (default: blank) - (Advanced Option) Instance Name - Name to use for Browser Tab and SysLog (if enabled) (restart required) (default: Prowlarr) +- (Advanced Option) Application URL - The external URL used to access Prowlarr, including http(s)://, port, and URL base. Leave blank if not needed. - (Advanced Option) Use SSL - Check this box if you use an https address to connect to Prowlarr. If you are using `localhost` or an IP address, this should almost NEVER be checked. (default: false) - Launch Browser (Windows Only) - Check this box if you want a browser window to be launched when Prowlarr starts. (default: yes) @@ -273,9 +275,12 @@ Click on `Settings` => `General`. ![general_security.png](/assets/prowlarr/general_security.png) - Authentication - How would you like to authenticate to access your Prowlarr instance - - None - You have no authentication to access your Prowlarr. Typically if you're the only user of your network, do not have anybody on your network that would care to access your Radarr or your Radarr is not exposed to the web - - Basic (Browser pop-up) - This option when accessing your Prowlarr will show a small pop-up allowing you to input a Username and Password + - None - You have no authentication to access your Prowlarr. Typically if you're the only user of your network, do not have anybody on your network that would care to access your Prowlarr or your Prowlarr is not exposed to the web - Forms (Login Page) - This option will have a familiar looking login screen much like other websites have to allow you to log onto your Prowlarr + - External - External authentication is handled by a reverse proxy. Prowlarr will trust authentication headers passed by the proxy. +- Authentication Required - Controls which requests require authentication + - Enabled - All requests require authentication + - Disabled for Local Addresses - Requests from local network addresses bypass authentication; all remote requests still require authentication - API Key - API key is used by outside apps accessing Prowlarr. This is secret and should not be shared with anyone. If it gets shared, you should regenerate it and update your apps. - Certificate Validation - Change how strict HTTPS certification validation is - Enabled - Validate all HTTPS certificates (recommended) @@ -301,12 +306,13 @@ Proxy - This option allows you to run the information your Prowlarr pulls and se ![general_logging.png](/assets/prowlarr/general_logging.png) -The default log level is `Info`. This is very basic logging. You can change it here for more detailed logging. Log files will rotate, so there is no danger of taking up too much space. +The default log level is `Debug`. This is very basic logging. You can change it here for more detailed logging. Log files will rotate, so there is no danger of taking up too much space. - Log level - Probably one of the most useful troubleshooting tools - Info - This is the most basic way that Prowlarr gathers information this will include very minimal amount of information in the logs. This log file contains fatal, error, warn and info entries. - Debug - Debug will include all the information that Info includes plus more information that can be useful. This log files contains fatal, error, warn, info and debug entries - Trace - The most advance and detailed logging on Prowlarr, Trace will include all the information gathered by Info and Debug and more. This is the most common type of log that is going to be asked for when troubleshooting on Discord or Reddit. If you're needing help please select your log to Trace and redo the task that was giving you problems to capture the log. This log files contains fatal, error, warn, info, debug and trace entries. +- (Advanced Option) Log Size Limit - Maximum log file size in MB before archiving. Valid range is 1-10 MB. (default: `1`) ## Analytics diff --git a/prowlarr/supported.md b/prowlarr/supported.md index 58457cc93..0ca32d7a4 100644 --- a/prowlarr/supported.md +++ b/prowlarr/supported.md @@ -2,7 +2,7 @@ title: Prowlarr Supported description: List of supported indexers, trackers, and download clients compatible with Prowlarr published: true -date: 2022-10-18T19:43:50.037Z +date: 2026-06-07T00:00:00.000Z tags: supported, indexers, trackers, download-clients, compatibility, prowlarr editor: markdown dateCreated: 2021-06-23T03:06:57.769Z @@ -30,6 +30,8 @@ Prowlarr can automatically sync indexers with various applications - [Refer to the Settings Page](/prowlarr/settings#applications) - Sonarr {#sonarr} - [Refer to the Settings Page](/prowlarr/settings#applications) +- Whisparr {#whisparr} + - [Refer to the Settings Page](/prowlarr/settings#applications) # Download Clients @@ -45,6 +47,8 @@ Prowlarr can automatically sync indexers with various applications - [Refer to the Settings Page](/prowlarr/settings#download-clients) - Flood {#flood} - [Refer to the Settings Page](/prowlarr/settings#download-clients) +- Freebox Download {#torrentfreeboxdownload} + - [Refer to the Settings Page](/prowlarr/settings#download-clients) - Hadouken {#hadouken} - [Refer to the Settings Page](/prowlarr/settings#download-clients) - NZBGet {#nzbget} @@ -92,7 +96,7 @@ Prowlarr can automatically sync indexers with various applications {#notification} -- Boxcar {#boxcar} +- Apprise {#apprise} - Custom Script {#customscript} - This allows you to make a custom script for when a particular action happens this script will run. See [Custom Scripts](/prowlarr/custom-scripts) for more details. - Discord {#discord} @@ -102,11 +106,16 @@ Prowlarr can automatically sync indexers with various applications - > You can use a "pretty address" like `SomePrettyName ` {.is-info} - Gotify {#gotify} - Join {#join} +- Mailgun {#mailgun} - Notifiarr {#notifiarr} +- Ntfy {#ntfy} - Prowl {#prowl} - Pushbullet {#pushbullet} +- Pushcut {#pushcut} - Pushover {#pushover} - SendGrid {#sendgrid} +- Signal {#signal} +- Simplepush {#simplepush} - Slack {#slack} - Telegram {#telegram} - Twitter {#twitter} diff --git a/prowlarr/system.md b/prowlarr/system.md index d3bcb45ab..31149a943 100644 --- a/prowlarr/system.md +++ b/prowlarr/system.md @@ -2,7 +2,7 @@ title: Prowlarr System description: System information, logs, scheduled tasks, and status monitoring for Prowlarr administration and troubleshooting published: true -date: 2025-08-24T14:57:37.363Z +date: 2026-06-07T00:00:00.000Z tags: system, administration, logs, tasks, status, prowlarr editor: markdown dateCreated: 2021-08-03T21:21:08.969Z @@ -24,11 +24,9 @@ dateCreated: 2021-08-03T21:21:08.969Z - [Failed to resolve the IP Address for the Configured Proxy Host](#failed-to-resolve-the-ip-address-for-the-configured-proxy-host) - [Proxy Failed Test](#proxy-failed-test) - [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day) + - [Invalid API Key](#invalid-api-key) - [Download Clients](#download-clients) - - [No download client is available](#no-download-client-is-available) - - [Unable to communicate with download client](#unable-to-communicate-with-download-client) - - [Download clients are unavailable due to failure](#download-clients-are-unavailable-due-to-failure) - - [Bad Download Client Settings](#bad-download-client-settings) + - [Download clients are unavailable due to failures](#download-clients-are-unavailable-due-to-failures) - [Indexers](#indexers) - [Indexers Have No Definition](#indexers-have-no-definition) - [Indexers are Obsolete](#indexers-are-obsolete) @@ -36,10 +34,17 @@ dateCreated: 2021-08-03T21:21:08.969Z - [Obsolete due to Site Removals](#obsolete-due-to-site-removals) - [No indexers are enabled](#no-indexers-are-enabled) - [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures) + - [Indexers are unavailable due to failures for more than 6 hours](#indexers-are-unavailable-due-to-failures-for-more-than-6-hours) - [Indexer VIP Expiring](#indexer-vip-expiring) - [Indexer VIP Expired](#indexer-vip-expired) + - [Indexers with invalid download clients](#indexers-with-invalid-download-clients) + - [Indexer Proxies](#indexer-proxies) + - [Indexer proxies are unavailable due to failures](#indexer-proxies-are-unavailable-due-to-failures) - [Applications](#applications) - [Applications are unavailable due to failures](#applications-are-unavailable-due-to-failures) + - [Applications are unavailable due to failures for more than 6 hours](#applications-are-unavailable-due-to-failures-for-more-than-6-hours) + - [Notifications](#notifications) + - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures) - [Disk Space](#disk-space) - [About](#about) - [More Info](#more-info) @@ -74,6 +79,9 @@ This page contains a list of health checks errors. These health checks are perio > This warning will not appear if your current version is less than 14 days old {.is-info} +> If your installed version is more than 180 days old, this escalates from a Warning to an Error. +{.is-warning} + #### Cannot install update because startup folder is not writable by the user - This means Prowlarr will be unable to update itself. You’ll have to update Prowlarr manually or set the permissions on Prowlarr’s Startup directory (the installation directory) to allow Prowlarr to update itself. @@ -149,31 +157,18 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12 - System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected - Review your system time and ensure it is synced to an authoritative time server and accurate -### Download Clients - -#### No download client is available - -- A properly configured and enabled download client is required for Prowlarr to be able to download media. Since Prowlarr supports different download clients, you should determine which best matches your requirements. If you already have a download client installed, you should configure Prowlarr to use it and create a category. See Settings => Download Client. +#### Invalid API Key -#### Unable to communicate with download client +- Your Prowlarr API key is shorter than the required minimum of 20 characters. Update your API key in Settings or the config file to be at least 20 characters long. -- Prowlarr was unable to communicate with the configured download client. Please verify if the download client is operational and double check the url. This could also indicate an authentication error. -- This is typically due to improperly configured download client. Things you can typically check: -- Your download clients IP Address if its on the same bare metal machine this is typically 127.0.0.1 -- The Port number of that your download client is using these are filled out with the default port number but if you've changed it you will need to have the same one entered into Prowlarr. -- Ensure SSL encryption is not turned on if you're using both your Prowlarr instance and your download client on a local network. See the SSL FAQ entry for more information. -- Using rutorrent requires special settings changes as it requires https. +### Download Clients -#### Download clients are unavailable due to failure +#### Download clients are unavailable due to failures -- One or more of your download clients is not responding to requests made by Prowlarr. Therefore Prowlarr has decided to temporarily stop querying the download client on it’s normal 1 minute cycle, which is normally used to track active downloads and import finished ones. However, Prowlarr will continue to attempt to send downloads to the client, but will in all likeliness fail. +- One or more of your download clients is not responding to requests made by Prowlarr. Therefore Prowlarr has decided to temporarily stop querying the download client on its normal cycle. However, Prowlarr will continue to attempt to send downloads to the client, but will in all likelihood fail. - You should inspect System=>Logs to see what the reason is for the failures. - If you no longer use this download client, disable it in Prowlarr to prevent the errors. -#### Bad Download Client Settings - -- The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from Windows to Linux or Linux to Windows without a remote path map. - ### Indexers #### Indexers Have No Definition @@ -212,6 +207,13 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12 - You can prevent the warning by disabling the affected indexer. - Run the Test on the indexer to force Prowlarr to recheck the indexer, please note that the Health Check warning will not always disappear immediately. +#### Indexers are unavailable due to failures for more than 6 hours + +- One or more of your indexers has been continuously unavailable for more than 6 hours. Prowlarr will continue to back off retries for the affected indexer(s). +- Check Events and filter for Warnings to get a quick idea of what issues have occurred historically. +- Please inspect the logs to determine what kind of error causes the problem. +- You can prevent the warning by disabling the affected indexer. + #### Indexer VIP Expiring - Your VIP subscription or benefits to your indexer expire within the next 7 days or less based on the expiration date you configured for your indexer in Prowlarr. @@ -220,6 +222,17 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12 - Your VIP subscription or benefits to your indexer have expired based on the expiration date you configured into for indexer in Prowlarr. +#### Indexers with invalid download clients + +- One or more of your indexers is configured with a download client that is either disabled or no longer exists. Check Settings => Download Clients and update or remove the download client assignment on the affected indexer(s). + +### Indexer Proxies + +#### Indexer proxies are unavailable due to failures + +- One or more of your configured indexer proxies is failing its test. Check Settings => Indexer Proxies and verify that the proxy configuration is correct and the proxy is reachable. +- You can prevent the warning by disabling the affected proxy. + ### Applications #### Applications are unavailable due to failures @@ -231,6 +244,21 @@ If Prowlarr is not running on the same machine as your reverse proxy. Replace 12 - You can prevent the warning by disabling the affected application. - Run the Test on the application to force Prowlarr to recheck the application, please note that the Health Check warning will not always disappear immediately. +#### Applications are unavailable due to failures for more than 6 hours + +- One or more of your applications has been continuously unavailable for more than 6 hours. Prowlarr will be unable to sync indexers to the affected application(s). +- Check Events and filter for Warnings to get a quick idea of what issues have occurred historically. +- Please inspect the logs to determine what kind of error causes the problem. +- You can prevent the warning by disabling the affected application. + +### Notifications + +#### Notifications are unavailable due to failures + +- One or more of your configured notifications is failing. Prowlarr will temporarily back off sending notifications to the affected notification provider(s). +- Please inspect the logs to determine what kind of error causes the problem. +- You can prevent the warning by disabling the affected notification. + ## Disk Space This section will show you available disk space @@ -264,8 +292,11 @@ This page lists all scheduled tasks that Prowlarr runs - Backup - This will run a backup of your Prowlarr's database on a set schedule more details on this can be found here. More information about backups can be found System => Backups. - Check Health - Check Health will run on the displayed schedule in the UI checking the overall health of your Prowlarr. To see a list of possible health related issues see the Wiki Entry on Health Checks. +- Clean Up History - This will clean up history records on the configured schedule. History retention is configured in Settings => General. - Housekeeping - On the displayed schedule in the UI this will dust out all the cobwebs, sweeps and vacuums the floors, mops, shines, and even makes nice neat little folded notes just for you. But does not take out the trash. That it just was not paid enough for. - Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Prowlarr +- Refresh Indexer Definitions - Downloads and refreshes Cardigann/YML indexer definitions from the Prowlarr Indexers repository. +- Sync Application Indexers - Syncs the indexer list in Prowlarr to all configured applications (e.g. Sonarr, Radarr, Lidarr). > All these tasks can be ran manually outside their scheduled times by hitting the icon to the far right of each of the tasks. {.is-info} diff --git a/prowlarr/troubleshooting.md b/prowlarr/troubleshooting.md index e5447a033..ad6a3993d 100644 --- a/prowlarr/troubleshooting.md +++ b/prowlarr/troubleshooting.md @@ -2,7 +2,7 @@ title: Prowlarr Troubleshooting description: Comprehensive troubleshooting guide for common Prowlarr issues and problems published: true -date: 2026-02-01T14:29:00.489Z +date: 2026-06-07T00:00:00.000Z tags: prowlarr, troubleshooting, help, problems, issues, debugging editor: markdown dateCreated: 2021-06-20T20:05:25.223Z @@ -72,7 +72,7 @@ To provide good and useful logs for sharing: 1. [Turn Logging up to Trace (Settings => General => Log Level or Edit The Config File)](#tracedebug-logs) 2. [Clear Logs (System => Logs => Clear Logs or Delete all the Logs in the Log Folder)](#clearing-logs) 3. Reproduce the Issue (Redo what is breaking things) -4. [Open the trace log file (Lidarr.trace.txt) via the UI or the log file](#standard-logs-location) on the filesystem and find the relevant context +4. [Open the trace log file (prowlarr.trace.txt) via the UI or the log file](#standard-logs-location) on the filesystem and find the relevant context 5. Copy a big chunk before the issue, the issue itself, and a big chunk after the issue. 6. Use [Gist](https://gist.github.com/), [0bin (**Be sure to disable colorization**)](https://0bin.net/), [PrivateBin](https://privatebin.net/), [Notifiarr PrivateBin](http://logs.notifiarr.com/), [Hastebin](https://hastebin.com/), [Ubuntu's Pastebin](https://pastebin.ubuntu.com/), or similar sites - excluding those noted to avoid below - to share the copied logs from above diff --git a/radarr/contributing.md b/radarr/contributing.md index 76c6808ae..d87c5d8b6 100644 --- a/radarr/contributing.md +++ b/radarr/contributing.md @@ -2,7 +2,7 @@ title: Radarr Contributing description: Guide for contributing to Radarr development including setup, building, testing, and submitting changes published: true -date: 2022-09-26T15:56:47019Z +date: 2026-06-07T00:00:00.000Z tags: radarr, development, contributing, guide, setup editor: markdown dateCreated: 2021-05-16T21:58:50.719Z @@ -18,13 +18,13 @@ Setup guides, [FAQ](/radarr/faq), the more information we have on the [wiki](htt # Development -Radarr is written in C# (backend) and JS (frontend). The backend is built on the .NET6 (and _soon_ .NET8) framework, while the frontend utilizes Reactjs. +Radarr is written in C# (backend) and JS (frontend). The backend is built on the .NET8 framework, while the frontend utilizes Reactjs. ## Tools required - Visual Studio 2022 or higher is recommended (). The community version is free and works (). -> VS 2022 V17.0 or higher is recommended as it includes the .NET6 SDK +> VS 2022 V17.0 or higher is recommended as it includes the .NET8 SDK {.is-info} - HTML/Javascript editor of choice (VS Code/Sublime Text/Webstorm/Atom/etc) @@ -69,7 +69,7 @@ The backend solution is most easily built and ran in Visual Studio or Rider, how #### Visual Studio -> Ensure startup project is set to `Radarr.Console` and framework to `net6.0` +> Ensure startup project is set to `Radarr.Console` and framework to `net8.0` {.is-info} 1. First `Build` the solution in Visual Studio, this will ensure all projects are correctly built and dependencies restored diff --git a/radarr/custom-scripts.md b/radarr/custom-scripts.md index fe64fd772..54c943e7e 100644 --- a/radarr/custom-scripts.md +++ b/radarr/custom-scripts.md @@ -2,7 +2,7 @@ title: Radarr Custom Scripts description: Guide for creating and implementing custom scripts for automation and integration in Radarr published: true -date: 2025-08-12T13:58:51.517Z +date: 2026-06-07T00:00:00.000Z tags: radarr, scripts, automation, custom, integration, hooks, api editor: markdown dateCreated: 2021-06-16T15:55:44.765Z @@ -29,62 +29,96 @@ Note that the following will only be logged for custom scripts: | Environment Variable | Details | | ------------------------------------ | -------------------------------------------------------------------------------------------- | | `radarr_eventtype` | `Grab` | -| `radarr_download_client` | Download client (empty if unknown) | -| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | | `radarr_movie_id` | Internal ID of the movie | -| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | -| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) | -| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) | | `radarr_movie_title` | Title of the movie | -| `radarr_movie_tmdbid` | TMDb ID for the movie | | `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | | `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) | +| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) | +| `radarr_movie_overview` | Overview/description of the movie | +| `radarr_release_title` | Torrent/NZB title | | `radarr_release_indexer` | Indexer from which the release was grabbed | -| `radarr_indexerflags` | Indexer flags associated with the release | +| `radarr_release_size` | Size of the release, as reported by the indexer | +| `radarr_release_releasegroup` | Release group (empty if unknown) | | `radarr_release_quality` | Quality name of the release, as detected by Radarr | | `radarr_release_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | -| `radarr_release_releasegroup` | Release group (empty if unknown) | -| `radarr_release_size` | Size of the release, as reported by the indexer | -| `radarr_release_title` | Torrent/NZB title | +| `radarr_indexerflags` | Indexer flags associated with the release | +| `radarr_release_customformat` | \|-delimited list of custom formats for the release | +| `radarr_release_customformatscore` | Custom format score for the release | +| `radarr_download_client` | Download client (empty if unknown) | +| `radarr_download_client_type` | Download client type (empty if unknown) | +| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | ## On Import/On Upgrade -| Environment Variable | Details | -| ------------------------------------ | -------------------------------------------------------------------------------------------- | -| `radarr_eventtype` | `Download` | -| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | -| `radarr_download_client` | Download client | -| `radarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise | -| `radarr_movie_id` | Internal ID of the movie | -| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | -| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) | -| `radarr_movie_path` | Full path to the movie | -| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) | -| `radarr_movie_title` | Title of the movie | -| `radarr_movie_tags` | Tags set for the movie | -| `radarr_movie_tmdbid` | TMDb ID for the movie | -| `radarr_movie_year` | Release year of the movie | -| `radarr_moviefile_id` | Internal ID of the movie file | -| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path | -| `radarr_moviefile_path` | Full path to the movie file | -| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr | -| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | -| `radarr_moviefile_releasegroup` | Release group (empty if unknown) | -| `radarr_moviefile_scenename` | Original release name (empty if unknown) | -| `radarr_moviefile_sourcepath` | Full path to the imported movie file | -| `radarr_moviefile_sourcefolder` | Full path to the folder the movie file was imported from | -| `radarr_deletedrelativepaths` | \|-delimited list of files that were deleted to import this file | -| `radarr_deletedpaths` | \|-delimited list of full paths to files that were deleted to import this file | +| Environment Variable | Details | +| --------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `radarr_eventtype` | `Download` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise | +| `radarr_movie_id` | Internal ID of the movie | +| `radarr_movie_title` | Title of the movie | +| `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_path` | Full path to the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_in_cinemas_date` | Cinema release date (empty if unknown) | +| `radarr_movie_physical_release_date` | Physical release date (empty if unknown) | +| `radarr_movie_overview` | Overview/description of the movie | +| `radarr_moviefile_id` | Internal ID of the movie file | +| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path | +| `radarr_moviefile_path` | Full path to the movie file | +| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr | +| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | +| `radarr_moviefile_releasegroup` | Release group (empty if unknown) | +| `radarr_moviefile_scenename` | Original release name (empty if unknown) | +| `radarr_moviefile_sourcepath` | Full path to the imported movie file | +| `radarr_moviefile_sourcefolder` | Full path to the folder the movie file was imported from | +| `radarr_moviefile_mediainfo_audiochannels` | Number of audio channels in the movie file | +| `radarr_moviefile_mediainfo_audiocodec` | Audio codec of the movie file | +| `radarr_moviefile_mediainfo_audiolanguages` | Audio languages in the movie file (distinct, space/slash-delimited) | +| `radarr_moviefile_mediainfo_languages` | Audio languages in the movie file (space/slash-delimited) | +| `radarr_moviefile_mediainfo_height` | Video height in pixels | +| `radarr_moviefile_mediainfo_width` | Video width in pixels | +| `radarr_moviefile_mediainfo_subtitles` | Subtitle languages in the movie file (space/slash-delimited) | +| `radarr_moviefile_mediainfo_videocodec` | Video codec of the movie file | +| `radarr_moviefile_mediainfo_videodynamicrangetype` | Dynamic range type of the video (e.g. HDR, DV) | +| `radarr_moviefile_customformat` | \|-delimited list of custom formats for the movie file | +| `radarr_moviefile_customformatscore` | Custom format score for the movie file | +| `radarr_release_indexer` | Indexer from which the release was grabbed (empty if unknown) | +| `radarr_release_size` | Size of the release (empty if unknown) | +| `radarr_release_title` | Torrent/NZB title (empty if unknown) | +| `radarr_download_client` | Download client | +| `radarr_download_client_type` | Download client type | +| `radarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | +| `radarr_deletedrelativepaths` | \|-delimited list of files that were deleted to import this file (only if upgrade) | +| `radarr_deletedpaths` | \|-delimited list of full paths to files that were deleted to import this file (only if upgrade) | +| `radarr_deleteddateadded` | \|-delimited list of dates the deleted files were added (only if upgrade) | +| `radarr_deletedrecyclebinpaths` | \|-delimited list of recycle bin paths for deleted files (only if upgrade; empty if not moved to recycle bin) | ## On Rename | Environment Variable | Details | | ---------------------------------------- | ---------------------------------------------- | | `radarr_eventtype` | `Rename` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | | `radarr_movie_id` | Internal ID of the movie | | `radarr_movie_title` | Title of the movie | -| `radarr_movie_tags` | Tags set for the movie | | `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | | `radarr_movie_path` | Full path to the movie | | `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | | `radarr_movie_tmdbid` | TMDb ID for the movie | @@ -96,29 +130,135 @@ Note that the following will only be logged for custom scripts: | `radarr_moviefile_previousrelativepaths` | \|-delimited list of previous relative path(s) | | `radarr_moviefile_previouspaths` | \|-delimited list of previous path(s) | +## On Movie Added + +| Environment Variable | Details | +| ------------------------------- | ------------------------------------------------------------ | +| `radarr_eventtype` | `MovieAdded` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_movie_id` | Internal ID of the movie | +| `radarr_movie_title` | Title of the movie | +| `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_path` | Full path to the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_addmethod` | Method used to add the movie (e.g. `Manual`, `List`, `Api`) | + +## On Movie Delete + +| Environment Variable | Details | +| ------------------------------- | ------------------------------------------------------------ | +| `radarr_eventtype` | `MovieDelete` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_movie_id` | Internal ID of the movie | +| `radarr_movie_title` | Title of the movie | +| `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_path` | Full path to the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_overview` | Overview/description of the movie | +| `radarr_movie_deletedfiles` | `True` if files were deleted with the movie, `False` otherwise | +| `radarr_movie_folder_size` | Size of the movie file (only present if files were deleted) | + +## On Movie File Delete + +| Environment Variable | Details | +| ------------------------------- | ------------------------------------------------------------ | +| `radarr_eventtype` | `MovieFileDelete` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_moviefile_deletereason` | Reason for deletion | +| `radarr_movie_id` | Internal ID of the movie | +| `radarr_movie_title` | Title of the movie | +| `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_path` | Full path to the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_overview` | Overview/description of the movie | +| `radarr_moviefile_id` | Internal ID of the movie file | +| `radarr_moviefile_relativepath` | Path to the movie file, relative to the movie path | +| `radarr_moviefile_path` | Full path to the movie file | +| `radarr_moviefile_size` | Size of the movie file | +| `radarr_moviefile_quality` | Quality name of the release, as detected by Radarr | +| `radarr_moviefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | +| `radarr_moviefile_releasegroup` | Release group (empty if unknown) | +| `radarr_moviefile_scenename` | Original release name (empty if unknown) | + ## On Health Check | Environment Variable | Details | | ----------------------------- | ------------------------------------------------------------ | | `radarr_eventtype` | `HealthIssue` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | | `radarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) | | `radarr_health_issue_message` | Message from the health issue | | `radarr_health_issue_type` | Area that failed and triggered the health issue | | `radarr_health_issue_wiki` | Wiki URL (empty if does not exist) | +## On Health Restored + +| Environment Variable | Details | +| --------------------------------- | ------------------------------------------------------------ | +| `radarr_eventtype` | `HealthRestored` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_health_restored_level` | Type of health issue that was restored (`Ok`, `Notice`, `Warning`, or `Error`) | +| `radarr_health_restored_message` | Message from the health issue that was restored | +| `radarr_health_restored_type` | Area that triggered the health issue that was restored | +| `radarr_health_restored_wiki` | Wiki URL (empty if does not exist) | + ## On Application Update | Environment Variable | Details | | ------------------------------- | ------------------------------------ | | `radarr_eventtype` | `ApplicationUpdate` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | | `radarr_update_message` | Message from Update | | `radarr_update_newversion` | Version Radarr updated to (string) | | `radarr_update_previousversion` | Version Radarr updated from (string) | +## On Manual Interaction Required + +| Environment Variable | Details | +| ------------------------------- | ------------------------------------------------------------ | +| `radarr_eventtype` | `ManualInteractionRequired` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | +| `radarr_movie_id` | Internal ID of the movie | +| `radarr_movie_title` | Title of the movie | +| `radarr_movie_year` | Release year of the movie | +| `radarr_movie_originallanguage` | Original language of the movie (ISO 639-2 three-letter code) | +| `radarr_movie_genres` | \|-delimited list of genres for the movie | +| `radarr_movie_tags` | Tags set for the movie | +| `radarr_movie_path` | Full path to the movie | +| `radarr_movie_imdbid` | IMDb ID for the movie (empty if unknown) | +| `radarr_movie_tmdbid` | TMDb ID for the movie | +| `radarr_movie_overview` | Overview/description of the movie | +| `radarr_download_client` | Download client (empty if unknown) | +| `radarr_download_client_type` | Download client type (empty if unknown) | +| `radarr_download_id` | Download ID (empty if unknown) | +| `radarr_download_size` | Total size of the download item | +| `radarr_download_title` | Title of the download item | + ## On Test When adding the script to Radarr and clicking 'Test,' the script will be invoked with the following parameters. The script should be able to gracefully ignore any unsupported event type. -| Environment Variable | Details | -| -------------------- | ------- | -| `radarr_eventtype` | `Test` | +| Environment Variable | Details | +| ----------------------- | ------------------------------------- | +| `radarr_eventtype` | `Test` | +| `radarr_instancename` | Instance name from Settings > General | +| `radarr_applicationurl` | Application URL from Settings > General | diff --git a/radarr/environment-variables.md b/radarr/environment-variables.md index 46fef3930..e9b64a276 100644 --- a/radarr/environment-variables.md +++ b/radarr/environment-variables.md @@ -2,7 +2,7 @@ title: Radarr Environment Variables description: Complete guide to Radarr environment variables for configuration management including Docker, database, authentication, and server settings published: true -date: 2025-12-16T17:03:58.213Z +date: 2026-06-07T00:00:00.000Z tags: radarr, docker, installation, configuration, postgres, environment-variables editor: markdown dateCreated: 2025-09-06T22:32:10.936Z @@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the | `AuthenticationEnabled` | `AUTH` | `ENABLED` | `RADARR__AUTH__ENABLED` | | `AuthenticationMethod` | `AUTH` | `METHOD` | `RADARR__AUTH__METHOD` | | `AuthenticationRequired` | `AUTH` | `REQUIRED` | `RADARR__AUTH__REQUIRED` | +| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `RADARR__AUTH__TRUSTCGNATIPADDRESSES` | | `LogLevel` | `LOG` | `LEVEL` | `RADARR__LOG__LEVEL` | | `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `RADARR__LOG__FILTERSENTRYEVENTS` | | `LogRotate` | `LOG` | `ROTATE` | `RADARR__LOG__ROTATE` | @@ -47,13 +48,15 @@ The config namespaces are shared between all Servarr apps and correspond to the | `SyslogServer` | `LOG` | `SYSLOGSERVER` | `RADARR__LOG__SYSLOGSERVER` | | `SyslogPort` | `LOG` | `SYSLOGPORT` | `RADARR__LOG__SYSLOGPORT` | | `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `RADARR__LOG__SYSLOGLEVEL` | -| `DbEnabled` | `LOG` | `DBENABLED` | `RADARR__LOG__DBENABLED` | +| `LogDbEnabled` | `LOG` | `DBENABLED` | `RADARR__LOG__DBENABLED` | | `PostgresHost` | `POSTGRES` | `HOST` | `RADARR__POSTGRES__HOST` | | `PostgresPort` | `POSTGRES` | `PORT` | `RADARR__POSTGRES__PORT` | | `PostgresUser` | `POSTGRES` | `USER` | `RADARR__POSTGRES__USER` | | `PostgresPassword` | `POSTGRES` | `PASSWORD` | `RADARR__POSTGRES__PASSWORD` | | `PostgresMainDb` | `POSTGRES` | `MAINDB` | `RADARR__POSTGRES__MAINDB` | | `PostgresLogDb` | `POSTGRES` | `LOGDB` | `RADARR__POSTGRES__LOGDB` | +| `PostgresMainDbConnectionString` | `POSTGRES` | `MAINDBCONNECTIONSTRING` | `RADARR__POSTGRES__MAINDBCONNECTIONSTRING` | +| `PostgresLogDbConnectionString` | `POSTGRES` | `LOGDBCONNECTIONSTRING` | `RADARR__POSTGRES__LOGDBCONNECTIONSTRING` | | `UrlBase` | `SERVER` | `URLBASE` | `RADARR__SERVER__URLBASE` | | `BindAddress` | `SERVER` | `BINDADDRESS` | `RADARR__SERVER__BINDADDRESS` | | `Port` | `SERVER` | `PORT` | `RADARR__SERVER__PORT` | diff --git a/radarr/faq.md b/radarr/faq.md index 002732807..e87810bd6 100644 --- a/radarr/faq.md +++ b/radarr/faq.md @@ -2,7 +2,7 @@ title: Radarr FAQ description: Radarr FAQ published: true -date: 2025-09-12T22:47:21.936Z +date: 2026-06-07T00:00:00.000Z tags: radarr, troubleshooting, faq editor: markdown dateCreated: 2021-05-16T20:44:27.778Z @@ -110,7 +110,7 @@ If Radarr is exposed so that the UI can be accessed from outside your local netw **As of Radarr v5, Authentication is Mandatory.** -- `AuthenticationType` and `AuthenticationMethod` are mandatory required attributes in the configuration file. +- `AuthenticationRequired` and `AuthenticationMethod` are mandatory required attributes in the configuration file. ### Authentication Method @@ -123,8 +123,8 @@ If Radarr is exposed so that the UI can be accessed from outside your local netw ### Authentication Required - If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN (i.e. Link Local, [Class A, Class C, or Class B](https://en.wikipedia.org/wiki/Classful_network#Classful_addressing_definition) addresses)) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses` - - The config file equivalent of this is `DisabledForLocalAddresses` -- `Enabled` is also a valid value + - The config file equivalent of this is `DisabledForLocalAddresses` +- `Enabled` is also a valid value ## What is Minimum Availability diff --git a/radarr/installation/multiple-instances.md b/radarr/installation/multiple-instances.md index 459827b35..844f5bf3d 100644 --- a/radarr/installation/multiple-instances.md +++ b/radarr/installation/multiple-instances.md @@ -2,7 +2,7 @@ title: Radarr Multiple Instances description: Requirements and how to install multiple instances of Radarr published: true -date: 2024-07-13T15:28:02.725Z +date: 2026-06-07T00:00:00.000Z tags: installation, radarr editor: markdown dateCreated: 2023-07-03T20:12:10.189Z @@ -121,8 +121,9 @@ separate locations. {.is-warning} 2. Start Radarr-4k (Service or Tray App) 3. Open up Radarr-4k and Navigate within the app to [Settings => General => Host](/radarr/settings/#host) 4. Change `Port Number` from `7878` to a different port e.g. `7879` so Radarr and Radarr4k do not conflict -5. You should now be able to start both apps -6. Continue to [Dealing with Updates](#dealing-with-updates) +5. Change the `Instance Name` to something that identifies this instance, e.g. `Radarr-4K`. The instance name must contain `Radarr` (case-insensitive). This name is shown in the browser tab and used in notifications. +6. You should now be able to start both apps +7. Continue to [Dealing with Updates](#dealing-with-updates) ### Dealing with Updates diff --git a/radarr/installation/reverse-proxy.md b/radarr/installation/reverse-proxy.md index 451000b3e..403fd1862 100644 --- a/radarr/installation/reverse-proxy.md +++ b/radarr/installation/reverse-proxy.md @@ -2,7 +2,7 @@ title: Radarr Reverse Proxy description: Configuring reverse proxy setup for Radarr with nginx, Apache, and other web servers published: true -date: 2024-01-04T16:42:39.425Z +date: 2026-06-07T00:00:00.000Z tags: reverse-proxy, nginx, apache, web-server, configuration, radarr editor: markdown dateCreated: 2023-07-03T20:12:15.231Z @@ -19,7 +19,7 @@ Sample config examples for configuring Radarr to be accessible from the outside Add the following configuration to `nginx.conf` located in the root of your Nginx configuration. The code block should be added inside the `server context`. [Full example of a typical Nginx configuration](https://www.nginx.com/resources/wiki/start/topics/examples/full/) -> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning} +> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning} ```nginx location ^~ /radarr { @@ -65,7 +65,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi > For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `7878` and Radarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `radarr` is chosen (line 5). {.is-info} -> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning} +> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning} ```nginx server { diff --git a/radarr/library.md b/radarr/library.md index f673b129c..58ddef9e1 100644 --- a/radarr/library.md +++ b/radarr/library.md @@ -2,7 +2,7 @@ title: Radarr Library description: Manage your movie collection, monitor status, and organize film library in Radarr published: true -date: 2022-11-14T15:04:06.364Z +date: 2026-06-07T00:00:00.000Z tags: radarr, library, movies, management, collection, organization editor: markdown dateCreated: 2021-05-25T01:24:18.386Z @@ -46,6 +46,8 @@ dateCreated: 2021-05-25T01:24:18.386Z - In Cinemas - Released - Title \[contains\] (String) + - Original Title \[contains\] (String) + - Original Language (Enum Languages) - Release Status (Enum) - TBA - Announced @@ -61,15 +63,21 @@ dateCreated: 2021-05-25T01:24:18.386Z - In Cinemas (static DateTime, relative TimeDelta) - Physical Release (static DateTime, relative TimeDelta) - Digital Release (static DateTime, relative TimeDelta) + - Release Date (static DateTime, relative TimeDelta) - Runtime (Int) - Path \[contains\] (String) - Size on Disk (Int) - Genres \[contains\] (Enum Genres) + - Keywords \[contain\] (Array) + - Release Groups (Array) - TMDB Rating (Float) - TMDB Votes (Int) - - IMDb Rating - - Tomato Rating - - IMDb Votes + - IMDb Rating (Float) + - IMDb Votes (Int) + - Rotten Tomatoes Rating (Float) + - Trakt Rating (Float) + - Trakt Votes (Int) + - Popularity (Float) - Certification (Enum Rating (PG-13, R, etc)) - Tags \[contain\] (Enum Tags) diff --git a/radarr/postgres-setup.md b/radarr/postgres-setup.md index 426806291..39e854365 100644 --- a/radarr/postgres-setup.md +++ b/radarr/postgres-setup.md @@ -2,7 +2,7 @@ title: Radarr Configuring PostgreSQL Database description: Configuring Radarr with a Postgres Database published: true -date: 2025-05-29T21:30:30.766Z +date: 2026-06-07T00:00:00.000Z tags: radarr, postgres, database, installation editor: markdown dateCreated: 2022-01-10T15:42:34.178Z @@ -70,6 +70,16 @@ If you want to specify a database name then should also include the following co LogDbName ``` +Alternatively, if you need to pass a full Postgres connection string (e.g. to include additional parameters like `sslmode`), you can use the connection string options **instead of** the host/user/password/port settings above. Both must be provided if either is set: + +```xml +Host=postgres14;Database=radarr-main;Username=qstick;Password=qstick;Port=5432 +Host=postgres14;Database=radarr-log;Username=qstick;Password=qstick;Port=5432 +``` + +> You cannot mix connection string settings and host/user/password/port settings — use one approach or the other, not both. +{.is-warning} + Only **after creating** both databases you can start the Radarr migration from SQLite to Postgres. ## Migrating data diff --git a/radarr/quick-start-guide.md b/radarr/quick-start-guide.md index 531c3bda6..e90ed2af2 100644 --- a/radarr/quick-start-guide.md +++ b/radarr/quick-start-guide.md @@ -2,7 +2,7 @@ title: Radarr Quick Start Guide description: Step-by-step guide to setting up and configuring Radarr for movie management published: true -date: 2023-10-08T19:12:23.566Z +date: 2026-06-07T00:00:00.000Z tags: radarr, quick-start, setup, configuration, guide, installation, movies editor: markdown dateCreated: 2021-06-20T20:05:44.814Z @@ -326,7 +326,7 @@ When you see the movie you want click on it. > For More Information on TMDB's Dates that impact the below Availabilities See [How Does Radarr Determine the Year of the Movie](#how-does-radarr-determine-the-year-of-a-movie) {.is-info} - - **Announced**: Radarr shall consider movies available as soon as they are added to Radarr. This setting is recommended if you have good private trackers (or really good public ones, e.g. rarbg.to) that do not have fakes. + - **Announced**: Radarr shall consider movies available as soon as they are added to Radarr. This setting is recommended if you have good private trackers that do not have fakes. - **In Cinemas**: Radarr shall consider movies available as soon as movies hit cinemas (Theatrical Date on TMDb) This option is not recommended. - **Released**: Radarr shall consider movies available as soon as the Blu-Ray or streaming version is released (Digital and Physical dates on TMDb) This option is recommended and likely should be combined with an Availability Delay of `-14` or `-21` days. - If TMDb is not populated with a date, it is assumed 90 days after `Theatrical Date` (Oldest in theater's date) the movie is available in web or physical services. diff --git a/radarr/settings.md b/radarr/settings.md index 1378f8736..91f799717 100644 --- a/radarr/settings.md +++ b/radarr/settings.md @@ -2,7 +2,7 @@ title: Radarr Settings description: Description of Radarr's Settings Menus published: true -date: 2025-01-03T03:39:01.266Z +date: 2026-06-07T00:00:00.000Z tags: settings, configuration, radarr, profiles, quality, indexers editor: markdown dateCreated: 2021-05-29T15:57:25.304Z @@ -147,12 +147,14 @@ Also, note that for each individual settings page, there are some options at the - The characters are: `:` `\` `/` `>` `<` `?` `*` `|` `"` - Colon (`:`) Replacement - This setting will dictate how Radarr handles colons within the movie file. This is only available when Replace Illegal Characters is enabled. + - Smart Replace - Uses a dash when a colon is followed by a space (`": "` → `" - "`), and a dash otherwise (`":"` → `"-"`). This is the default. + - Example: Movie,The.mkv => Movie - The.mkv - Delete - Self explanatory - Example: Movie,The.mkv => MovieThe.mkv - Replace with Dash - Removes the colon and adds a dash in its place - Example: Movie,The.mkv => Movie-The.mkv - - Replace with Space - Removes the colon and adds a space in its place - - Example: Movie,The.mkv => Movie The.mkv + - Replace with Space Dash - Removes the colon and adds a space dash in its place + - Example: Movie,The.mkv => Movie -The.mkv - Replace with Space Dash Space - self explanatory - Example: Movie,The.mkv => Movie - The.mkv @@ -177,10 +179,13 @@ Also, note that for each individual settings page, there are some options at the - `{Movie Title:DE}` = Titel des Films - `{Movie CleanTitle}` = The Movies Title! - `{Movie TitleThe}` = Movie's Title!, The +- `{Movie CleanTitleThe}` = Movies Title!, The - `{Movie OriginalTitle}` = Τίτλος ταινίας - `{Movie CleanOriginalTitle}` = Τίτλος ταινίας - `{Movie TitleFirstCharacter}` = S - `{Movie Collection}` = The Movie Collection +- `{Movie CollectionThe}` = Movie Collection, The +- `{Movie CleanCollectionThe}` = Movie Collection, The - `{Movie Certification}` = R - `{Release Year}` = 2009 @@ -197,7 +202,7 @@ Also, note that for each individual settings page, there are some options at the ### Movie IDs - `{ImdbId}` = tt12345 -- `{Tmdbid}` = 123456 +- `{TmdbId}` = 123456 > Imdb Tags used in Plex naming format will conditionally hide when value is blank `{imdb-{ImdbId}}` {.is-info} @@ -205,6 +210,8 @@ Also, note that for each individual settings page, there are some options at the - `{Quality Full}` = HDTV 720p Proper - `{Quality Title}` = HDTV 720p +- `{Quality Proper}` = Proper +- `{Quality Real}` = REAL ### Media Info @@ -213,11 +220,14 @@ Also, note that for each individual settings page, there are some options at the - `{MediaInfo AudioCodec}` = DTS - `{MediaInfo AudioChannels}` = 5.1 - `{MediaInfo AudioLanguages}` = \[EN+DE\] +- `{MediaInfo AudioLanguagesAll}` = \[EN+DE\] - `{MediaInfo SubtitleLanguages}` = \[EN\] +- `{MediaInfo SubtitleLanguagesAll}` = \[EN\] - `{MediaInfo VideoCodec}` = x264 - `{MediaInfo VideoBitDepth}` = 8 - `{MediaInfo VideoDynamicRange}` = HDR - `{MediaInfo VideoDynamicRangeType}` = DV HDR10 +- `{MediaInfo 3D}` = 3D > `MediaInfo Full`, `AudioLanguages`, and `SubtitleLanguages` do not currently support a `:EN+DE` suffix allowed in Sonarr to filter the languages included in the filename. There is an open [issue](https://github.com/Radarr/Radarr/issues/4710) regarding this. ~~`MediaInfo Full`, `AudioLanguages`, and `SubtitleLanguages` support a `:EN+DE` suffix allowing you to filter the languages included in the filename. Use `-DE` to exclude specific languages. Appending + (e.g.: `:EN+`) will output `[EN]`,`[EN+--]` or `[--]` depending on excluded languages. For example - `{MediaInfo Full:EN+DE}`.~~ @@ -263,16 +273,20 @@ Here you will set the naming convention for the folder that contains the season - `{Movie Title:DE}` = FileTitle - `{Movie CleanTitle}` = Movie Title - `{Movie TitleThe}` = Movie Title, The +- `{Movie CleanTitleThe}` = Movie Title, The - `{Movie OriginalTitle}` = Τίτλος ταινίας +- `{Movie CleanOriginalTitle}` = Τίτλος ταινίας - `{Movie TitleFirstCharacter}` = S - `{Movie Collection}` = The Movie Collection +- `{Movie CollectionThe}` = Movie Collection, The +- `{Movie CleanCollectionThe}` = Movie Collection, The - `{Movie Certification}` = R - `{Release Year}` = 2009 ### Movie ID - `{ImdbId}` = tt12345 -- `{Tmdbid}` = 123456 +- `{TmdbId}` = 123456 ## Folders @@ -847,8 +861,8 @@ Connections are how you want Radarr to communicate with the outside world. ## Connection Triggers - On Grab - Be notified when movies are available for download and has been sent to a download client -- On Import - Be notified when movies are successfully imported -- On Upgrade - Be notified when movies are upgraded to a better quality +- On File Import - Be notified when movies are successfully imported +- On File Upgrade - Be notified when movies are upgraded to a better quality - On Rename - Be notified when movies are renamed - On Movie Added - Be notified when movies are added to Radarr's library to manage or monitor - On Movie Delete - Be notified when movies are deleted @@ -856,7 +870,9 @@ Connections are how you want Radarr to communicate with the outside world. - On Movie File Delete For Upgrade - Be notified when movie files are deleted for upgrades - On Health Issue - Be notified on health check failures - Include Health Warnings - Be notified on health warnings in addition to errors. +- On Health Restored - Be notified when a previously reported health issue is resolved - On Application Update - Be notified when Radarr gets updated to a new version +- On Manual Interaction Required - Be notified when manual interaction is required for a download # Metadata diff --git a/radarr/supported.md b/radarr/supported.md index baf71502a..5904f2b1d 100644 --- a/radarr/supported.md +++ b/radarr/supported.md @@ -2,7 +2,7 @@ title: Radarr Supported description: Comprehensive list of supported indexers, download clients, and services for Radarr published: true -date: 2024-06-16T13:47:46.803Z +date: 2026-06-07T00:00:00.000Z tags: radarr, supported, indexers, download-clients, services, compatibility editor: markdown dateCreated: 2021-06-23T07:55:24.002Z @@ -28,6 +28,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - [Refer to the Settings Page](/radarr/settings#download-clients) - Flood {#flood} - [Refer to the Settings Page](/radarr/settings#download-clients) +- Freebox Download {#torrentfreeboxdownload} + - [Refer to the Settings Page](/radarr/settings#download-clients) - Hadouken {#hadouken} - [Refer to the Settings Page](/radarr/settings#download-clients) - NZBGet {#nzbget} @@ -64,9 +66,6 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - [Refer to the Settings Page](/radarr/settings#indexer-settings) - Newznab is a standardized API used by many usenet indexing sites. Many presets are available, but all require an API key to be accessible. - Indexer Applications like [Prowlarr](/prowlarr) and [NZBHydra2](https://github.com/theotherp/nzbhydra2) can provide advanced capabilities such as stat tracking. -- omgwtfnzbs {#omgwtfnzbs} - - A defunct legacy implementation of a private usenet indexer. Use Newznab instead. - - [Refer to the Settings Page](/radarr/settings#indexer-settings) ## Torrents @@ -109,7 +108,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica {#notification} -- Boxcar {#boxcar} +- Apprise {#apprise} - Custom Script {#customscript} - This allows you to make a custom script for when a particular action happens this script will run. See [Custom Scripts](/radarr/custom-scripts) for more details. - Discord {#discord} @@ -119,7 +118,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica > You can use a "pretty address" like `SomePrettyName ` {.is-info} -- Emby {#mediabrowser} +- Emby / Jellyfin {#mediabrowser} - Gotify {#gotify} - Join {#join} - Kodi {#xbmc} @@ -127,6 +126,7 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - Mailgun {#mailgun} - Notifiarr {#notifiarr} - See the entry on [Useful Tools - Notifiarr](/useful-tools#notifiarr-fka-discord-notifier) +- ntfy.sh {#ntfy} - Plex Media Server {#plexserver} - The server for your self hosted Plex system, Enabling this is much like Kodi will allow you to push an update to your plex server notifying it that a new/upgraded movie is available. - This is rarely needed and is only required if Plex is unable to watch the file system for changes. @@ -137,7 +137,10 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - Pushbullet {#pushbullet} - Pushcut {#pushcut} - Pushover {#pushover} +- Pushsafer {#pushsafer} - SendGrid {#sendgrid} +- Signal {#signal} +- Simplepush {#simplepush} - Slack {#slack} - Synology Indexer {#synologyindexer} - Telegram {#telegram} @@ -164,6 +167,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - Requires: v4.1.0.6176+ - Simply add a Plex watchlist for the authenticated Plex user to Radarr. Note that it's required that your list contain movies on it. - To have multiple user's watchlists you'll need to add each user's lists and authenticate with their Plex user. +- Plex Watchlist RSS {#plexrss} + - Add a Plex watchlist via an RSS feed URL. - Radarr {#radarrimport} - TRaSH has [a guide](https://trash-guides.info/Radarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances - RSS List {#rssimport} @@ -191,6 +196,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica ``` +- Simkl User Watchlist {#simkl} + - Add movies from your Simkl watchlist. - StevenLu Custom {#stevenluimport} - Allows you to create custom movies lists in json format. Your feed requires for each movie either a `title` or an `imdb_id`, both can be provided. @@ -245,6 +252,8 @@ This page is the disambiguation page for all `supported` wiki links (i.e. typica - Emby (Legacy) {#mediabrowsermetadata} - Enable - Enable metadata file creation for this metadata type - Movie Metadata - Enable metadata file creation for this metadata type +- Kometa {#kometametadata} + - Deprecated - This metadata consumer has been deprecated - Kodi (XBMC) / Emby {#xbmcmetadata} - Enable - Enable metadata file creation for this metadata type - Movie Metadata - Create a `.nfo` with the movie metadata diff --git a/radarr/system.md b/radarr/system.md index 5362e6cf7..55f95bd67 100644 --- a/radarr/system.md +++ b/radarr/system.md @@ -2,7 +2,7 @@ title: Radarr System description: System information, logs, scheduled tasks, and status monitoring for Radarr administration and troubleshooting published: true -date: 2023-10-26T10:56:09.737Z +date: 2026-06-07T00:00:00.000Z tags: system, administration, logs, tasks, status, radarr editor: markdown dateCreated: 2021-05-25T02:28:35.194Z @@ -34,7 +34,8 @@ dateCreated: 2021-05-25T02:28:35.194Z - [Proxy Failed Test](#proxy-failed-test) - [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day) - [PTP Indexer Settings Out of Date](#ptp-indexer-settings-out-of-date) - - [Mono and x86 builds are ending](#mono-and-x86-builds-are-ending) + - [Invalid API Key](#invalid-api-key) + - [Package Maintainer Message](#package-maintainer-message) - [Download Clients](#download-clients) - [No download client is available](#no-download-client-is-available) - [Unable to communicate with download client](#unable-to-communicate-with-download-client) @@ -47,26 +48,29 @@ dateCreated: 2021-05-25T02:28:35.194Z - [Permissions Error](#permissions-error) - [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing) - [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed) + - [Download Client Sorting Enabled](#download-client-sorting-enabled) - [Completed/Failed Download Handling](#completedfailed-download-handling) - [Completed Download Handling is disabled](#completed-download-handling-is-disabled) - [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads) - [Indexers](#indexers) - [No indexers available with automatic search enabled, Radarr will not provide any automatic search results](#no-indexers-available-with-automatic-search-enabled-radarr-will-not-provide-any-automatic-search-results) - [No indexers available with RSS sync enabled, Radarr will not grab new releases automatically](#no-indexers-available-with-rss-sync-enabled-radarr-will-not-grab-new-releases-automatically) - - [No indexers are enabled](#no-indexers-are-enabled) - - [Enabled indexers do not support searching](#enabled-indexers-do-not-support-searching) - [No indexers available with Interactive Search Enabled](#no-indexers-available-with-interactive-search-enabled) - [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures) - [Jackett All Endpoint Used](#jackett-all-endpoint-used) - [Solutions](#solutions) + - [Invalid Indexer Download Client Setting](#invalid-indexer-download-client-setting) - [Movie Folders](#movie-folders) - [Missing Root Folder](#missing-root-folder) - [Movie Path Mount is Read Only](#movie-path-mount-is-read-only) - [Movies](#movies) - [Movie was removed from TMDb](#movie-was-removed-from-tmdb) - [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures) + - [Import List Missing Root Folder](#import-list-missing-root-folder) - [Notifications](#notifications) - - [Discord as Slack Notification](#discord-as-slack-notification) + - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures) + - [Discord as Slack Notification](#discord-as-slack-notification) + - [Cannot Write Recycle Bin](#cannot-write-recycle-bin) - [Disk Space](#disk-space) - [About](#about) - [More Info](#more-info) @@ -287,9 +291,17 @@ Note: you will also need to add the websocket directive to your radarr configura - The following PassThePopcorn indexers have deprecated settings and should be updated. -#### Mono and x86 builds are ending +#### Invalid API Key -- Mono and x86 builds are no longer be supported with v4. If you are receiving this error then you are running the mono version of the application or the x86 version. Unfortunately, due to increasing difficulty in development support for these legacy versions we will be discontinuing their support and thus releases for them going forward. Thus it is advised you upgrade to a supported Operating System that does not require neither x86 nor mono. You may also be able to explore using Docker for your needs. +{#invalid-api-key} + +- Your API key is too short. The API key must be at least 20 characters long. You can update it in Settings => General or in the config file. + +#### Package Maintainer Message + +{#package-maintainer-message} + +- Your package maintainer has provided a message. This is typically used to communicate important information about your Radarr installation or package. ### Download Clients @@ -375,6 +387,12 @@ Note: you will also need to add the websocket directive to your radarr configura - Check your logs for more info; Refer to our Troubleshooting Guides +#### Download Client Sorting Enabled + +{#download-folder-and-library-folder-not-different-folders} + +- Your download client has sorting enabled. Sorting will reorganize downloaded files in ways that may conflict with Radarr's import logic. Disable sorting in your download client settings. + ### Completed/Failed Download Handling #### Completed Download Handling is disabled @@ -403,14 +421,6 @@ Note: you will also need to add the websocket directive to your radarr configura - Radarr uses the RSS feed to pick up new releases as they come along. More info on that here - To correct this issue go to Settings => Indexers, select an indexer you have and enable RSS Sync -#### No indexers are enabled - -- Radarr requires indexers to be able to discover new releases. Please read the wiki on instructions how to add indexers. - -#### Enabled indexers do not support searching - -- None of the indexers you have enabled support searching. This means Radarr will only be able to find new releases via the RSS feeds. But searching for movies (either Automatic Search or Manual Search) will never return any results. Obviously, the only way to remedy it is to add another indexer. - #### No indexers available with Interactive Search Enabled - None of the indexers you have enabled support interactive searching. This means the application will only be able to find new releases via the RSS feeds or an automatic search. @@ -440,6 +450,12 @@ Note: you will also need to add the websocket directive to your radarr configura - Check out [Prowlarr](/prowlarr) which can sync indexers to \*Arr and from the Lidarr/Radarr/Readarr development team. - Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to \*Arr. But do not use their single aggregate endpoint and use `multi` if sync will be used. +#### Invalid Indexer Download Client Setting + +{#invalid-indexer-download-client-setting} + +- One or more of your indexers has a download client configured that no longer exists or is disabled. Go to Settings => Indexers and update or clear the download client assigned to the affected indexer(s). + ### Movie Folders #### Missing Root Folder @@ -493,12 +509,31 @@ A mount containing a movie path is read only and is not writable by the user Rad - Typically this simply means that Radarr is no longer able to communicate via API or via logging in to your chosen list provider. Your best bet if the problem persists is to contact them in order to rule them out, as their systems maybe overloaded from time to time. - Review System => Events filtered for Warning (Warning & Errors) to see the historical failures or check logs for details. +#### Import List Missing Root Folder + +{#import-list-missing-root-folder} + +- One or more of your import lists is pointing to a root folder that does not exist or is no longer available. Go to Settings => Import Lists and update the root folder path for the affected list(s). + ### Notifications -### Discord as Slack Notification +#### Notifications are unavailable due to failures + +{#notifications-are-unavailable-due-to-failures} + +- One or more of your configured notifications is unavailable due to failures. Radarr has temporarily stopped sending notifications to the affected provider(s). Review System => Events for details on the failures or check the logs. +- If you no longer use the notification connection, disable it in Radarr to prevent the errors. + +#### Discord as Slack Notification - You have Discord configured to use a Slack webhook. This is not advised and the native Discord functionality should be used instead. If you're receiving this that likely means you just configured this by following an outdated guide. Please advise the guide author to update their steps. +### Cannot Write Recycle Bin + +{#cannot-write-recycle-bin} + +- The recycle bin path configured in Settings => Media Management is not writable by the user Radarr is running as. Correct the permissions on the recycle bin folder or choose a different path. + ## Disk Space - This section will show you available disk space @@ -536,6 +571,7 @@ A mount containing a movie path is read only and is not writable by the user Rad - Housekeeping - On the displayed schedule in the UI this will dust out all the cobwebs, sweeps and vacuums the floors, mops, shines, and even makes nice neat little folded notes just for you. But does not take out the trash. That it just was not paid enough for. - Import List Sync - On the displayed schedule in the UI this will run your Lists and import any possible new movies. More info about lists can be found Settings => Lists. - Messaging Cleanup - On the displayed schedule in the UI this cleans up those messages that appear in the bottom left corner of Radarr +- Refresh Collections - This goes through and refreshes all the metadata for all collections. - Refresh Monitored Downloads - This goes through and refreshes the downloads queue located under Activity. Essentially pinging your download client to check for finished downloads. - Refresh Movie - This goes through and refreshes all the metadata for all monitored and unmonitored movies - RSS Sync - This will run the RSS Sync. This can be changed in settings => options. More information on the RSS function can be found on our FAQ diff --git a/radarr/tips-and-tricks.md b/radarr/tips-and-tricks.md index 03f4fbc2c..2d4777db4 100644 --- a/radarr/tips-and-tricks.md +++ b/radarr/tips-and-tricks.md @@ -2,7 +2,7 @@ title: Radarr Tips and Tricks description: Advanced tips and tricks for optimizing Radarr configuration and workflow published: true -date: 2025-05-24T19:18:45.779Z +date: 2026-06-07T00:00:00.000Z tags: radarr, tips, tricks, configuration, optimization, workflow editor: markdown dateCreated: 2021-08-14T15:12:58.934Z @@ -79,7 +79,7 @@ This will move all of your files into the new directories. If you need to clean up empty directories, this command will do that: -`for /f "usebackq delims=" %d in ("dir /ad/b/s | sort /R") do rd "%d"` +`for /f "usebackq delims=" %d in (`dir /ad/b/s | sort /R`) do rd "%d"` ## Windows Powershell diff --git a/radarr/troubleshooting.md b/radarr/troubleshooting.md index ff8b9302a..6ccdcb59e 100644 --- a/radarr/troubleshooting.md +++ b/radarr/troubleshooting.md @@ -2,7 +2,7 @@ title: Radarr Troubleshooting description: Troubleshooting for Radarr including getting log files, search troubleshooting and common problems, and downloading / importing troubleshooting and common problems published: true -date: 2026-02-01T14:30:34.852Z +date: 2026-06-07T00:00:00.000Z tags: radarr, troubleshooting editor: markdown dateCreated: 2021-08-03T21:05:52.988Z @@ -595,7 +595,7 @@ Adding each indexer separately It allows for fine tuning of categories on a per Using NZBHydra2 as a single indexer entry (i.e. 1 NZBHydra2 Entry in Radarr for many indexers in NZBHydra2) rather than multiple (i.e. many NZBHydra2 entries in Radarr for many indexers in NZBHydra2) has the same problems as noted above with Jackett's `/all` endpoint. -### Invalid response received from TMDB +### Invalid response received from RadarrAPI If you are performing a search, and get this error message, please check your log. If the error code is "503.ServiceUnavailable", then you have one of these issues going on: diff --git a/sonarr/calendar.md b/sonarr/calendar.md index 11ff2681b..7c4eaded6 100644 --- a/sonarr/calendar.md +++ b/sonarr/calendar.md @@ -2,7 +2,7 @@ title: Sonarr Calendar description: View upcoming and aired episodes in a calendar format for better scheduling published: true -date: 2022-04-26T01:49:26.770Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, calendar, schedule, episodes, planning editor: markdown dateCreated: 2021-06-11T23:31:36.392Z @@ -14,7 +14,7 @@ The calendar shows you recently aired episodes, as well as upcoming episodes. # iCal Feed -- Sonarr can provide your calendar as an iCal feed. This will contain the previous [7 days](https://github.com/Sonarr/Sonarr/blob/22f044844c33187450dcc2d6b329ad3e1d241e74/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs#L35) and the next [28 days](https://github.com/Sonarr/Sonarr/blob/22f044844c33187450dcc2d6b329ad3e1d241e74/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs#L36) +- Sonarr can provide your calendar as an iCal feed. This will contain the previous [7 days](https://github.com/Sonarr/Sonarr/blob/main/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs) and the next [28 days](https://github.com/Sonarr/Sonarr/blob/main/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs) > Google Calendar has internal issues that results in it no longer updating. This is a Google issue and not a Sonarr issue. It can often be resolved by removing and re-adding the calendar. {.is-warning} diff --git a/sonarr/contributing.md b/sonarr/contributing.md index dc673acd2..1ed25358b 100644 --- a/sonarr/contributing.md +++ b/sonarr/contributing.md @@ -2,7 +2,7 @@ title: Sonarr Contributing description: Guide for contributing to Sonarr development including setup, building, testing, and submitting changes published: true -date: 2023-09-03T13:55:05.394Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, contributing, development, guide, setup editor: markdown dateCreated: 2021-06-11T23:10:04.820Z @@ -18,7 +18,7 @@ Setup guides, [FAQ](/sonarr/faq), the more information we have on the [wiki](htt # Development -Sonarr is written in C# (backend) and JS (frontend). The backend is built on the .NET8 framework, while the frontend utilizes Reactjs. +Sonarr is written in C# (backend) and JS (frontend). The backend is built on the .NET6 framework, while the frontend utilizes Reactjs. ## Tools required @@ -162,7 +162,7 @@ Adding translations to Sonarr requires two steps ## Adding Translation Strings in Code -The English translation, `src/NzbDrone.Core/Localization/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows: +The English translation, `src/NzbDrone.Core/Localization/Core/en.json`, serves as the source for all other translations and is managed on GitHub repo. When adding a new string to either the UI or backend a key must also be added to `en.json` along with the default value in English. This key may then be consumed as follows: > PRs for translation of log messages will not be accepted {.is-warning} diff --git a/sonarr/custom-scripts.md b/sonarr/custom-scripts.md index 73580ba52..10523753a 100644 --- a/sonarr/custom-scripts.md +++ b/sonarr/custom-scripts.md @@ -2,7 +2,7 @@ title: Sonarr Custom Scripts description: Guide for creating and implementing custom scripts for automation and integration published: true -date: 2022-06-13T15:52:03.477Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, scripts, automation, custom, integration, hooks, api editor: markdown dateCreated: 2021-06-16T15:55:53.999Z @@ -29,17 +29,19 @@ Note that the following will only be logged for custom scripts: | Environment Variable | Details | | --------------------------------------- | -------------------------------------------------------------------------------------------- | | `sonarr_eventtype` | `Grab` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | | `sonarr_series_id` | Internal ID of the series | | `sonarr_series_title` | Title of the series | | `sonarr_series_titleslug` | Common formatted title slug of the series | -| `sonarr_series_tmdbid` | TMDB ID for the series | | `sonarr_series_tvdbid` | TVDB ID for the series | | `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | | `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | | `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | | `sonarr_series_year` | Year of the series | -| `sonarr_series_genres` | `\|`-delimited list of genres | | `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | | `sonarr_series_tags` | `\|`-delimited list of tags | | `sonarr_release_episodecount` | Number of episodes in the release | | `sonarr_release_seasonnumber` | Season number from release | @@ -62,115 +64,255 @@ Note that the following will only be logged for custom scripts: | `sonarr_download_client` | Download client | | `sonarr_download_client_type` | Download client type | | `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | -| `sonarr_instance_name` | Instance name of the Sonarr installation | -| `sonarr_applicationurl` | URL of the Sonarr application | ## On Import/On Upgrade +| Environment Variable | Details | +| ------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `sonarr_eventtype` | `Download` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise | +| `sonarr_series_id` | Internal ID of the series | +| `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | +| `sonarr_series_path` | Full path to the series | +| `sonarr_series_tvdbid` | TVDB ID for the series | +| `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | +| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | +| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | +| `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | +| `sonarr_episodefile_id` | Internal ID of the episode file | +| `sonarr_episodefile_episodecount` | Number of episodes in the file | +| `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series path | +| `sonarr_episodefile_path` | Full path to the episode file | +| `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file | +| `sonarr_episodefile_seasonnumber` | Season number of episode file | +| `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers | +| `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network | +| `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC | +| `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles | +| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions | +| `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr | +| `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | +| `sonarr_episodefile_releasegroup` | Release group (empty if unknown) | +| `sonarr_episodefile_scenename` | Original release name (empty if unknown) | +| `sonarr_episodefile_sourcepath` | Full path to the imported episode file | +| `sonarr_episodefile_sourcefolder` | Full path to the folder the episode file was imported from | +| `sonarr_episodefile_mediainfo_audiochannels` | Number of audio channels | +| `sonarr_episodefile_mediainfo_audiocodec` | Audio codec of the episode file | +| `sonarr_episodefile_mediainfo_audiolanguages` | Audio languages of the episode file (distinct, space/slash-delimited) | +| `sonarr_episodefile_mediainfo_languages` | Audio languages of the episode file (space/slash-delimited) | +| `sonarr_episodefile_mediainfo_height` | Video height of the episode file | +| `sonarr_episodefile_mediainfo_width` | Video width of the episode file | +| `sonarr_episodefile_mediainfo_subtitles` | Subtitle languages of the episode file (space/slash-delimited) | +| `sonarr_episodefile_mediainfo_videocodec` | Video codec of the episode file | +| `sonarr_episodefile_mediainfo_videodynamicrangetype` | Dynamic range type of the episode file (e.g. `HDR`, `SDR`) | +| `sonarr_episodefile_customformat` | `\|`-delimited list of custom formats | +| `sonarr_episodefile_customformatscore` | Numerical score of the custom formats of the episode file | +| `sonarr_download_client` | Download client | +| `sonarr_download_client_type` | Download client type | +| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | +| `sonarr_release_indexer` | Indexer from which the release was grabbed | +| `sonarr_release_size` | Size of the release, as reported by the indexer (in bytes) | +| `sonarr_release_title` | Torrent/NZB title | +| `sonarr_release_releasetype` | Release type (`SingleEpisode`, `SeasonPack`) | +| `sonarr_deletedrelativepaths` | `\|`-delimited list of files that were deleted to import this file | +| `sonarr_deletedpaths` | `\|`-delimited list of full paths of files that were deleted to import this file | +| `sonarr_deleteddateadded` | `\|`-delimited list of dates the deleted files were added (only set when upgrading) | +| `sonarr_deletedrecyclebinpaths` | `\|`-delimited list of recycle bin paths for deleted files (only set when upgrading) | + +## On Import Complete + | Environment Variable | Details | | --------------------------------------- | -------------------------------------------------------------------------------------------- | | `sonarr_eventtype` | `Download` | -| `sonarr_isupgrade` | `True` when an existing file is upgraded, `False` otherwise | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | | `sonarr_series_id` | Internal ID of the series | | `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | | `sonarr_series_path` | Full path to the series | | `sonarr_series_tvdbid` | TVDB ID for the series | | `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | | `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | | `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | | `sonarr_series_year` | Year of the series | -| `sonarr_episodefile_id` | Internal ID of the episode file | -| `sonarr_episodefile_episodecount` | Number of episodes in the file | -| `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series path | -| `sonarr_episodefile_path` | Full path to the episode file | -| `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file | -| `sonarr_episodefile_seasonnumber` | Season number of episode file | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | +| `sonarr_episodefile_ids` | `\|`-delimited list of internal IDs of the imported episode files | +| `sonarr_episodefile_count` | Number of episode files imported | +| `sonarr_episodefile_relativepaths` | `\|`-delimited list of relative paths of the episode files | +| `sonarr_episodefile_paths` | `\|`-delimited list of full paths of the episode files | +| `sonarr_episodefile_episodeids` | Comma-delimited list of internal episode IDs | +| `sonarr_episodefile_seasonnumber` | Season number of the episodes | | `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers | | `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network | | `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC | | `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles | -| `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr | -| `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | -| `sonarr_episodefile_releasegroup` | Release group (empty if unknown) | -| `sonarr_episodefile_scenename` | Original release name (empty if unknown) | -| `sonarr_episodefile_sourcepath` | Full path to the imported episode file | -| `sonarr_episodefile_sourcefolder` | Full path to the folder the episode file was imported from | +| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions | +| `sonarr_episodefile_qualities` | `\|`-delimited list of quality names for each episode file | +| `sonarr_episodefile_qualityversions` | `\|`-delimited list of quality versions for each episode file | +| `sonarr_episodefile_releasegroups` | `\|`-delimited list of release groups for each episode file | +| `sonarr_episodefile_scenenames` | `\|`-delimited list of original release names for each episode file | | `sonarr_download_client` | Download client | +| `sonarr_download_client_type` | Download client type | | `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | -| `sonarr_deletedrelativepaths` | `\|`-delimited list of files that were deleted to import this file | -| `sonarr_deletedpaths` | `\|`-delimited list of full paths of files that were deleted to import this file | +| `sonarr_release_group` | Release group of the import | +| `sonarr_release_quality` | Quality name of the release | +| `sonarr_release_qualityversion` | Quality version of the release | +| `sonarr_release_indexer` | Indexer from which the release was grabbed | +| `sonarr_release_size` | Size of the release, as reported by the indexer (in bytes) | +| `sonarr_release_title` | Torrent/NZB title | +| `sonarr_release_releasetype` | Release type (`SingleEpisode`, `SeasonPack`) | +| `sonarr_sourcepath` | Full path to the source of the import | +| `sonarr_sourcefolder` | Full path to the folder containing the source of the import | +| `sonarr_destinationpath` | Full path to the destination of the import | +| `sonarr_destinationfolder` | Full path to the destination folder of the import | ## On Rename -| Environment Variable | Details | -| ------------------------ | ---------------------------------------------------- | -| `sonarr_eventtype` | `Rename` | -| `sonarr_series_id` | Internal ID of the series | -| `sonarr_series_title` | Title of the series | -| `sonarr_series_path` | Full path to the series | -| `sonarr_series_tvdbid` | TVDB ID for the series | -| `sonarr_series_tvmazeid` | TVMaze ID for the series | -| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | -| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | -| `sonarr_series_year` | Year of the series | +| Environment Variable | Details | +| ----------------------------------------- | ------------------------------------------------------------ | +| `sonarr_eventtype` | `Rename` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_series_id` | Internal ID of the series | +| `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | +| `sonarr_series_path` | Full path to the series | +| `sonarr_series_tvdbid` | TVDB ID for the series | +| `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | +| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | +| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | +| `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | +| `sonarr_episodefile_ids` | Comma-delimited list of internal IDs of the renamed files | +| `sonarr_episodefile_relativepaths` | `\|`-delimited list of new relative paths of renamed files | +| `sonarr_episodefile_paths` | `\|`-delimited list of new full paths of renamed files | +| `sonarr_episodefile_previousrelativepaths`| `\|`-delimited list of old relative paths of renamed files | +| `sonarr_episodefile_previouspaths` | `\|`-delimited list of old full paths of renamed files | ## On Episode File Delete | Environment Variable | Details | | --------------------------------------- | -------------------------------------------------------------------------------- | | `sonarr_eventtype` | `EpisodeFileDelete` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_episodefile_deletereason` | Reason for the deletion (`MissingFromDisk`, `Manual`, `Upgrade`, `NoLinkedEpisodes`) | | `sonarr_series_id` | Internal ID of the series | | `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | | `sonarr_series_path` | Full path to the series | | `sonarr_series_tvdbid` | TVDB ID for the series | | `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | | `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | | `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | | `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | | `sonarr_episodefile_id` | Internal ID of the episode file | | `sonarr_episodefile_episodecount` | Number of episodes in the file | | `sonarr_episodefile_relativepath` | Path to the episode file, relative to the series' path | -| `sonarr_episodefile_paths` | Full path to the episode file | +| `sonarr_episodefile_path` | Full path to the episode file | | `sonarr_episodefile_episodeids` | Internal ID(s) of the episode file | | `sonarr_episodefile_seasonnumber` | Season number of episode file | | `sonarr_episodefile_episodenumbers` | Comma-delimited list of episode numbers | | `sonarr_episodefile_episodeairdates` | Comma-delimited list of air dates from original network | | `sonarr_episodefile_episodeairdatesutc` | Comma-delimited list of air dates in UTC | | `sonarr_episodefile_episodetitles` | `\|`-delimited list of episode titles | +| `sonarr_episodefile_episodeoverviews` | `\|`-delimited list of episode overview descriptions | | `sonarr_episodefile_quality` | Quality name of the episode file, as detected by Sonarr | | `sonarr_episodefile_qualityversion` | `1` is the default, `2` is for proper, and `3`+ could be used for anime versions | | `sonarr_episodefile_releasegroup` | Release group (empty if unknown) | | `sonarr_episodefile_scenename` | Original release name (empty if unknown) | +## On Series Add + +| Environment Variable | Details | +| -------------------------------- | ------------------------------------------------------------ | +| `sonarr_eventtype` | `SeriesAdd` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_series_id` | Internal ID of the series | +| `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | +| `sonarr_series_path` | Full path to the series | +| `sonarr_series_tvdbid` | TVDB ID for the series | +| `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | +| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | +| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | +| `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | + ## On Series Delete -| Environment Variable | Details | -| ---------------------------- | ------------------------------------------------------------------------ | -| `sonarr_eventtype` | `SeriesDelete` | -| `sonarr_series_id` | Internal ID of the series | -| `sonarr_series_title` | Title of the series | -| `sonarr_series_path` | Full path to the series | -| `sonarr_series_tvdbid` | TVDB ID for the series | -| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | -| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | -| `sonarr_series_year` | Year of the series | -| `sonarr_series_deletedfiles` | `True` when the delete files option has been selected, otherwise `False` | +| Environment Variable | Details | +| -------------------------------- | ------------------------------------------------------------------------ | +| `sonarr_eventtype` | `SeriesDelete` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_series_id` | Internal ID of the series | +| `sonarr_series_title` | Title of the series | +| `sonarr_series_titleslug` | Common formatted title slug of the series | +| `sonarr_series_path` | Full path to the series | +| `sonarr_series_tvdbid` | TVDB ID for the series | +| `sonarr_series_tvmazeid` | TVMaze ID for the series | +| `sonarr_series_tmdbid` | TMDB ID for the series | +| `sonarr_series_imdbid` | IMDB ID for the series (empty if unknown) | +| `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | +| `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | `\|`-delimited list of genres | +| `sonarr_series_tags` | `\|`-delimited list of tags | +| `sonarr_series_deletedfiles` | `True` when the delete files option has been selected, otherwise `False` | ## On Health Issue | Environment Variable | Details | | ----------------------------- | ------------------------------------------------------------ | | `sonarr_eventtype` | `HealthIssue` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | | `sonarr_health_issue_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) | | `sonarr_health_issue_message` | Message from the health issue | | `sonarr_health_issue_type` | Area that failed and triggered the health issue | | `sonarr_health_issue_wiki` | Wiki URL (empty if does not exist) | +## On Health Restored + +| Environment Variable | Details | +| --------------------------------- | ------------------------------------------------------------ | +| `sonarr_eventtype` | `HealthRestored` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | +| `sonarr_health_restored_level` | Type of health issue (`Ok`, `Notice`, `Warning`, or `Error`) | +| `sonarr_health_restored_message` | Message from the health issue | +| `sonarr_health_restored_type` | Area that previously failed and triggered the health issue | +| `sonarr_health_restored_wiki` | Wiki URL (empty if does not exist) | + ## On Application Update | Environment Variable | Details | | ------------------------------- | ------------------------------------ | | `sonarr_eventtype` | `ApplicationUpdate` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | | `sonarr_update_message` | Message from Update | | `sonarr_update_newversion` | Version Sonarr updated to (string) | | `sonarr_update_previousversion` | Version Sonarr updated from (string) | @@ -180,26 +322,26 @@ Note that the following will only be logged for custom scripts: | Environment Variable | Details | | -------------------------------- | -------------------------------------------------------------------------------------------- | | `sonarr_eventtype` | `ManualInteractionRequired` | +| `sonarr_instancename` | Instance name of the Sonarr installation | | `sonarr_applicationurl` | URL of the application | -| `sonarr_download_client` | Download client name | -| `sonarr_download_client_type` | Download client type | -| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | -| `sonarr_download_size` | Download size | -| `sonarr_download_title` | Download title | -| `sonarr_instancename` | Instance name | -| `sonarr_series_genres` | Genres of the series | | `sonarr_series_id` | Internal ID of the series | -| `sonarr_series_imdbid` | IMDB ID of the series (empty if unknown) | -| `sonarr_series_originallanguage` | Original language of the series | -| `sonarr_series_path` | Full path to the series | -| `sonarr_series_tags` | Tags of the series | | `sonarr_series_title` | Title of the series | | `sonarr_series_titleslug` | Common formatted title slug of the series | -| `sonarr_series_tmdbid` | TMDB ID of the series | +| `sonarr_series_path` | Full path to the series | | `sonarr_series_tvdbid` | TVDB ID of the series | | `sonarr_series_tvmazeid` | TVMaze ID of the series | +| `sonarr_series_tmdbid` | TMDB ID of the series | +| `sonarr_series_imdbid` | IMDB ID of the series (empty if unknown) | | `sonarr_series_type` | Type of the series (`Anime`, `Daily`, or `Standard`) | | `sonarr_series_year` | Year of the series | +| `sonarr_series_originallanguage` | Original language of the series | +| `sonarr_series_genres` | Genres of the series | +| `sonarr_series_tags` | Tags of the series | +| `sonarr_download_client` | Download client name | +| `sonarr_download_client_type` | Download client type | +| `sonarr_download_id` | Hash of the torrent/NZB file (used to uniquely identify the download in the download client) | +| `sonarr_download_size` | Download size | +| `sonarr_download_title` | Download title | ## On Test @@ -208,3 +350,5 @@ When adding the script to Sonarr and clicking 'Test,' the script will be invoked | Environment Variable | Details | | -------------------- | ------- | | `sonarr_eventtype` | `Test` | +| `sonarr_instancename` | Instance name of the Sonarr installation | +| `sonarr_applicationurl` | URL of the Sonarr application | diff --git a/sonarr/environment-variables.md b/sonarr/environment-variables.md index 628aab1b2..43e17ef0a 100644 --- a/sonarr/environment-variables.md +++ b/sonarr/environment-variables.md @@ -2,7 +2,7 @@ title: Sonarr Environment Variables description: Complete guide to Sonarr environment variables for configuration management including Docker, database, authentication, and server settings published: true -date: 2025-12-16T17:03:24.201Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, docker, installation, configuration, postgres, environment-variables editor: markdown dateCreated: 2025-09-06T22:34:56.401Z @@ -36,6 +36,7 @@ The config namespaces are shared between all Servarr apps and correspond to the | `AuthenticationEnabled` | `AUTH` | `ENABLED` | `SONARR__AUTH__ENABLED` | | `AuthenticationMethod` | `AUTH` | `METHOD` | `SONARR__AUTH__METHOD` | | `AuthenticationRequired` | `AUTH` | `REQUIRED` | `SONARR__AUTH__REQUIRED` | +| `TrustCgnatIpAddresses` | `AUTH` | `TRUSTCGNATIPADDRESSES` | `SONARR__AUTH__TRUSTCGNATIPADDRESSES` | | `LogLevel` | `LOG` | `LEVEL` | `SONARR__LOG__LEVEL` | | `FilterSentryEvents` | `LOG` | `FILTERSENTRYEVENTS` | `SONARR__LOG__FILTERSENTRYEVENTS` | | `LogRotate` | `LOG` | `ROTATE` | `SONARR__LOG__ROTATE` | @@ -47,7 +48,7 @@ The config namespaces are shared between all Servarr apps and correspond to the | `SyslogServer` | `LOG` | `SYSLOGSERVER` | `SONARR__LOG__SYSLOGSERVER` | | `SyslogPort` | `LOG` | `SYSLOGPORT` | `SONARR__LOG__SYSLOGPORT` | | `SyslogLevel` | `LOG` | `SYSLOGLEVEL` | `SONARR__LOG__SYSLOGLEVEL` | -| `DbEnabled` | `LOG` | `DBENABLED` | `SONARR__LOG__DBENABLED` | +| `LogDbEnabled` | `LOG` | `DBENABLED` | `SONARR__LOG__DBENABLED` | | `PostgresHost` | `POSTGRES` | `HOST` | `SONARR__POSTGRES__HOST` | | `PostgresPort` | `POSTGRES` | `PORT` | `SONARR__POSTGRES__PORT` | | `PostgresUser` | `POSTGRES` | `USER` | `SONARR__POSTGRES__USER` | diff --git a/sonarr/faq-v4.md b/sonarr/faq-v4.md index 831f49e13..992a68629 100644 --- a/sonarr/faq-v4.md +++ b/sonarr/faq-v4.md @@ -2,7 +2,7 @@ title: Sonarr v4 FAQ description: Sonarr v4 FAQ published: true -date: 2025-03-30T15:46:47.811Z +date: 2026-06-07T00:00:00.000Z tags: editor: markdown dateCreated: 2022-11-25T14:02:10.493Z @@ -52,8 +52,8 @@ As of Sonarr v4, Authentication is Mandatory. ### Authentication Required - If you do not expose the app externally and/or do not wish to have auth required for local (e.g. LAN) access then change in Settings => General Security => Authentication Required to `Disabled For Local Addresses` - - The config file equivalent of this is `DisabledForLocalAddresses` -- `Enabled` is also a valid value + - The config file equivalent of this is `DisabledForLocalAddresses` +- `Enabled` is also a valid value ## Preferred Words to Custom Formats Migration diff --git a/sonarr/faq.md b/sonarr/faq.md index f0286df93..e7517c01d 100644 --- a/sonarr/faq.md +++ b/sonarr/faq.md @@ -2,7 +2,7 @@ title: Sonarr FAQ description: Sonarr Frequently Asked Questions published: true -date: 2025-10-31T12:30:19.410Z +date: 2026-06-07T00:00:00.000Z tags: editor: markdown dateCreated: 2025-10-31T12:02:16.100Z @@ -15,7 +15,7 @@ dateCreated: 2025-10-31T12:02:16.100Z ## How does Sonarr find episodes -- Sonarr does *not* regularly search for episode files that are missing or have not met their quality goals. Instead, it fairly frequently queries your indexers and trackers for *all* the newly posted episodes/newly uploaded releases, then compares that with its list of episodes that are missing or need to be upgraded. Any matches are downloaded. This lets Sonarr cover a library of *any size* with just 24-100 queries per day (RSS interval of 15-60 minutes). If you understand this, you will realize that it only covers the *future* though. +- Sonarr does *not* regularly search for episode files that are missing or have not met their quality goals. Instead, it fairly frequently queries your indexers and trackers for *all* the newly posted episodes/newly uploaded releases, then compares that with its list of episodes that are missing or need to be upgraded. Any matches are downloaded. This lets Sonarr cover a library of *any size* with just 10-144 queries per day (RSS interval of 10-120 minutes). If you understand this, you will realize that it only covers the *future* though. - So how do you deal with the present and past? When you're adding a show, you will need to set the correct path, profile and monitoring status then use the Start search for missing checkbox. If the show has had no episodes and hasn't been released yet, you do not need to initiate a search. - Put another way, Sonarr will only find releases that are newly uploaded to your indexers. It will not actively try to find releases uploaded in the past. - If you've already added the show, but now you want to search for it, you have a few choices. You can go to the show's page and use the search button, which will do a search and then automatically pick episode(s). You can search individual episodes or seasons automatically or manually. Or you can go to the [Wanted](/sonarr/wanted) tab and search from there. @@ -688,7 +688,7 @@ First, make sure you read and understand the section above called ["How does Son ## Forced Authentication -- In Sonarr v4 (beta) authentication is mandatory. Please see the [Sonarr v4 FAQ - Forced Authentication](/sonarr/faq-v4#forced-authentication) for details +- In Sonarr v4 authentication is mandatory. Please see the [Sonarr v4 FAQ - Forced Authentication](/sonarr/faq-v4#forced-authentication) for details ## Removing Completed Torrents diff --git a/sonarr/installation/freebsd.md b/sonarr/installation/freebsd.md index 6f13aee22..9aae08c27 100644 --- a/sonarr/installation/freebsd.md +++ b/sonarr/installation/freebsd.md @@ -2,7 +2,7 @@ title: Sonarr FreeBSD Installation description: FreeBSD installation guide for Sonarr published: true -date: 2023-07-03T20:23:52.657Z +date: 2026-06-07T00:00:00.000Z tags: sonarr editor: markdown dateCreated: 2021-07-10T16:07:37.425Z diff --git a/sonarr/installation/reverse-proxy.md b/sonarr/installation/reverse-proxy.md index 7fb3f150f..99d37aabb 100644 --- a/sonarr/installation/reverse-proxy.md +++ b/sonarr/installation/reverse-proxy.md @@ -9,7 +9,7 @@ Sample config examples for configuring Sonarr to be accessible from the outside Add the following configuration to `nginx.conf` located in the root of your Nginx configuration. The code block should be added inside the `server context`. [Full example of a typical Nginx configuration](https://www.nginx.com/resources/wiki/start/topics/examples/full/) -> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning} +> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning} ```nginx location ^~ /sonarr { @@ -55,7 +55,7 @@ By default Nginx includes the `sites-enabled` folder. You can check this in `ngi > For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default `8989` and Sonarr is accessible on the localhost (127.0.0.1). For this configuration the subdomain `sonarr` is chosen (line 5). {.is-info} -> If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.: `proxy_set_header Host $host:$server_port` or `proxy_set_header Host $http_host` {.is-warning} +> If you're using a non-standard http/https server port, make sure your `X-Forwarded-Host` header also includes it, i.e.: `proxy_set_header X-Forwarded-Host $host:$server_port` or `proxy_set_header X-Forwarded-Host $http_host` {.is-warning} ```nginx server { diff --git a/sonarr/library.md b/sonarr/library.md index 313ad9a94..5f1b83b1f 100644 --- a/sonarr/library.md +++ b/sonarr/library.md @@ -2,7 +2,7 @@ title: Sonarr Library description: Manage your TV series collection, monitor status, and organize media in Sonarr published: true -date: 2022-10-28T17:18:11.116Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, library, series, management, collection, organization editor: markdown dateCreated: 2021-06-11T23:31:01.289Z @@ -25,9 +25,13 @@ The add new feature allows you to add a new series for Sonarr to monitor and dow - All Episodes - Monitor all episodes except specials - Future Episodes - Monitor episodes that have not aired yet - Missing Episodes - Monitor episodes that do not have files or have not aired yet - - Existing Episodes - Monitor episodes that have files + - Existing Episodes - Monitor episodes that have files or have not aired yet + - Recent Episodes - Monitor episodes aired within the last 90 days and future episodes + - Pilot Episode - Only monitor the first episode of the first season - First Season - Monitor all episodes of the first season; all other seasons will be ignored - - Latest Season - Monitor all episodes of the latest season and future seasons + - Last Season - Monitor all episodes of the last season + - Monitor Specials - Monitor all special episodes without changing the monitored status of other episodes + - Unmonitor Specials - Unmonitor all special episodes without changing the monitored status of other episodes - None - No episodes will be monitored - Quality Profile - The [quality profile](/sonarr/settings#quality-profiles) to use for this series - Series Type - Which Series Type to use for this series; this changes how searches occur [See the FAQ entry for more info](/sonarr/faq#whats-the-different-series-types) diff --git a/sonarr/postgres-setup.md b/sonarr/postgres-setup.md index 3b95b06a7..eb4579551 100644 --- a/sonarr/postgres-setup.md +++ b/sonarr/postgres-setup.md @@ -2,7 +2,7 @@ title: Sonarr Configuring PostgreSQL Database description: Configuring Sonarr with a Postgres Database published: true -date: 2025-05-29T21:37:27.122Z +date: 2026-06-07T00:00:00.000Z tags: database, postgres, postgresql, setup, configuration, sonarr editor: markdown dateCreated: 2023-08-12T12:26:25.094Z @@ -136,6 +136,7 @@ DELETE FROM "ScheduledTasks"; select setval('public."ExtraFiles_Id_seq"',(SELECT MAX("Id")+1 FROM "ExtraFiles")); select setval('public."History_Id_seq"',(SELECT MAX("Id")+1 FROM "History")); select setval('public."ImportListExclusions_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListExclusions")); + select setval('public."ImportListItems_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListItems")); select setval('public."ImportListStatus_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportListStatus")); select setval('public."ImportLists_Id_seq"',(SELECT MAX("Id")+1 FROM "ImportLists")); select setval('public."IndexerStatus_Id_seq"',(SELECT MAX("Id")+1 FROM "IndexerStatus")); @@ -155,6 +156,7 @@ DELETE FROM "ScheduledTasks"; select setval('public."Series_Id_seq"',(SELECT MAX("Id")+1 FROM "Series")); select setval('public."SubtitleFiles_Id_seq"',(SELECT MAX("Id")+1 FROM "SubtitleFiles")); select setval('public."Tags_Id_seq"',(SELECT MAX("Id")+1 FROM "Tags")); + select setval('public."UpdateHistory_Id_seq"',(SELECT MAX("Id")+1 FROM "UpdateHistory")); select setval('public."Users_Id_seq"',(SELECT MAX("Id")+1 FROM "Users")); ``` diff --git a/sonarr/settings.md b/sonarr/settings.md index 44f8d288d..8c241fc6b 100644 --- a/sonarr/settings.md +++ b/sonarr/settings.md @@ -2,7 +2,7 @@ title: Sonarr Settings description: Documentation of Sonarr Settings Page. Needs work to reflect v4 changes. published: true -date: 2025-05-15T17:27:34.383Z +date: 2026-06-07T00:00:00.000Z tags: settings, configuration, sonarr, profiles, quality, indexers editor: markdown dateCreated: 2021-06-11T23:29:12.300Z @@ -147,6 +147,14 @@ Also, note that for each individual settings page, there are some options at the - Replace Illegal Characters - If unchecked, Sonarr will remove them instead. - The characters are: `:` `\` `/` `>` `<` `?` `*` `|` `"` +- Colon Replacement Format - Select how colons are handled in episode names + - Delete - Remove colons (e.g. `Series Title Part 1`) + - Dash - Replace with a dash (e.g. `Series Title - Part 1`) + - Space Dash - Replace with a space and a dash (e.g. `Series Title - Part 1`) + - Space Dash Space - Replace with a space, dash, and space (e.g. `Series Title - Part 1`) + - Smart - Replaces a colon followed by a space with ` - `, otherwise deletes the colon (Default) + - Custom - Use a custom replacement string + ### Standard Episode Format Standard Episode Format - Set the naming convention for your Standard Series Type episodes. Click on the `?` icon to bring up the `File Name Tokens` dialog box. @@ -165,18 +173,26 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ ### Series Naming - `{Series Title}` = The Series Name's Title! -- `{Series CleanTitleYear}` = The Series Names Title! 2010 -- `{Series TitleFirstCharacter}` = S - `{Series CleanTitle}` = The Series Names Title! - `{Series TitleThe}` = Series Name's Title!, The +- `{Series CleanTitleThe}` = Series Names Title!, The - `{Series TitleYear}` = The Series Name's Title (2010) +- `{Series CleanTitleYear}` = The Series Names Title! 2010 +- `{Series TitleTheYear}` = Series Name's Title!, The (2010) +- `{Series CleanTitleTheYear}` = Series Names Title!, The 2010 +- `{Series TitleWithoutYear}` = The Series Name's Title! +- `{Series CleanTitleWithoutYear}` = The Series Names Title! +- `{Series TitleTheWithoutYear}` = Series Name's Title!, The +- `{Series CleanTitleTheWithoutYear}` = Series Names Title!, The +- `{Series TitleFirstCharacter}` = S - `{Series Year}` = (2010) ### Series IDs - `{ImdbId}` = tt12345 -- `{Tmdbid}` = 123456 -- `{TvMazeId}`= 54321 +- `{TvdbId}` = 123456 +- `{TmdbId}` = 123456 +- `{TvMazeId}` = 54321 ### Seasons @@ -202,6 +218,8 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ - `{Quality Full}` = HDTV 720p Proper - `{Quality Title}` = HDTV 720p +- `{Quality Proper}` = Proper +- `{Quality Real}` = REAL ### Media Info @@ -209,9 +227,10 @@ Standard Episode Format - Set the naming convention for your Standard Series Typ - `{MediaInfo Full}` = x264 DTS \[EN+DE\] - `{MediaInfo AudioCodec}` = DTS - `{MediaInfo AudioChannels}` = 5.1 +- `{MediaInfo AudioLanguages}` = \[EN+DE\] - `{MediaInfo AudioLanguagesAll}` = \[DE\] -- `{MediaInfo AudioLanguagesAll}` = \[EN+DE\] - `{MediaInfo SubtitleLanguages}` = \[EN\] +- `{MediaInfo SubtitleLanguagesAll}` = \[EN+DE\] - `{MediaInfo VideoCodec}` = x264 - `{MediaInfo VideoBitDepth}` = 8 - `{MediaInfo VideoDynamicRange}` = HDR @@ -271,17 +290,25 @@ See [Standard Episode Format](/sonarr/settings#standard-episode-format) for more ### Series Naming - `{Series Title}` = Series Name! -- `{Series CleanTitleYear}` = Series Title 2010 -- `{Series TitleFirstCharacter}` = S - `{Series CleanTitle}` = Series Title - `{Series TitleThe}` = Series Title, The +- `{Series CleanTitleThe}` = Series Title, The - `{Series TitleYear}` = Series Title (2010) +- `{Series CleanTitleYear}` = Series Title 2010 +- `{Series TitleTheYear}` = Series Title, The (2010) +- `{Series CleanTitleTheYear}` = Series Title, The 2010 +- `{Series TitleWithoutYear}` = Series Name! +- `{Series CleanTitleWithoutYear}` = Series Title +- `{Series TitleTheWithoutYear}` = Series Title, The +- `{Series CleanTitleTheWithoutYear}` = Series Title, The +- `{Series TitleFirstCharacter}` = S - `{Series Year}` = (2010) ### Series IDs - `{ImdbId}` = tt12345 -- `{Tmdbid}` = 123456 +- `{TvdbId}` = 123456 +- `{TmdbId}` = 123456 - `{TvMazeId}` = 54321 ## Season Folder Format @@ -862,10 +889,11 @@ If you download using a BitTorrent client, the process is slightly different: ### List Options - (Advanced Option) List Update Interval - How often should Radarr poll the list for updates? This is provided dependent as per the UI. -- (Advanced Option) Clean Library Level - Series in library will be removed or unmonitored if not in at leasf one of your list(s) +- (Advanced Option) Clean Library Level - Series in library will be removed or unmonitored if not in at least one of your list(s) - Disabled - Do not clean the library (Recommended) - Log Only - Only log the series are not on the list(s) and take no other actions - Keep and Unmonitor Series - Keep series that are not on the list(s), but unmonitor them in Sonarr. + - Keep and Tag Series - Keep series that are not on the list(s) and tag them in Sonarr. ## List Exclusions @@ -889,13 +917,17 @@ If you download using a BitTorrent client, the process is slightly different: - On Grab - Be notified when episodes are available for download and has been sent to a download client - On Import - {Formerly Known as On Download} Be notified when episodes are successfully imported - On Upgrade - Be notified when episodes are upgraded to a better quality +- On Import Complete - Be notified when a download has been fully processed (fired after On Import/On Upgrade) - On Rename - Be notified when episodes are renamed +- On Series Add - Be notified when a new series is added to Sonarr - On Series Delete - Be notified when series are deleted - On Episode File Delete - Be notified when episodes files are deleted - On Episode File Delete For Upgrade - Be notified when episode files are deleted for upgrades - On Health Issue - Be notified on health check failures - Include Health Warnings - Be notified on health warnings in addition to errors. +- On Health Restored - Be notified when a previously reported health issue is resolved - On Application Update - Be notified when Sonarr gets updated to a new version +- On Manual Interaction Required - Be notified when manual interaction is required to resolve an import # Metadata @@ -1028,3 +1060,5 @@ If you download using a BitTorrent client, the process is slightly different: ## Style - Enable Color-Impaired Mode - Altered style to allow color-impaired users to better distinguish color coded information +- Theme - Select the light or dark theme for the UI (Light/Dark/Auto) +- UI Language - Select the language for the Sonarr UI diff --git a/sonarr/supported.md b/sonarr/supported.md index ad7bb3cbf..1036fdfa1 100644 --- a/sonarr/supported.md +++ b/sonarr/supported.md @@ -2,7 +2,7 @@ title: Sonarr Supported description: Comprehensive list of supported indexers, download clients, and services for Sonarr published: true -date: 2024-08-02T12:07:02.466Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, supported, indexers, download-clients, services, compatibility editor: markdown dateCreated: 2021-06-23T07:55:33.769Z @@ -40,6 +40,8 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica - [Refer to the Settings Page](/sonarr/settings#download-clients) - SABnzbd {#sabnzbd} - [Refer to the Settings Page](/sonarr/settings#download-clients) +- Freebox Download {#torrentfreeboxdownload} + - [Refer to the Settings Page](/sonarr/settings#download-clients) - Torrent Blackhole {#torrentblackhole} - [Refer to the Settings Page](/sonarr/settings#download-clients) - Transmission {#transmission} @@ -126,14 +128,14 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica > You can use a "pretty address" like `SomePrettyName ` {.is-info} -- Emby {#mediabrowser} +- Emby / Jellyfin {#mediabrowser} - Gotify {#gotify} - Join {#join} - Kodi {#xbmc} - Kodi spawned from the love of media. It is an entertainment hub that brings all your digital media together into a beautiful and user friendly package. It is 100% free and open source, very customizable and runs on a wide variety of devices. It is supported by a dedicated team of volunteers and a huge community. By adding Kodi as a connection you can update Kodi's library when a new episode has been added to Sonarr. - Mailgun {#mailgun} -- Notifiar {#notifiar} -- Ntfy.sh {#ntfysh} +- Notifiarr {#notifiarr} +- Ntfy.sh {#ntfy} - Plex Media Server {#plexserver} - The server for your self hosted Plex system, Enabling this is much like Kodi will allow you to push an update to your plex server notifying it that a new/upgraded episode is available. @@ -148,7 +150,7 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica - Pushcut {#pushcut} - Pushover {#pushover} - SendGrid {#sendgrid} -- Signal {#signal-cli} +- Signal {#signal} - Requires [Signal-CLI](https://github.com/AsamK/signal-cli) - Simplepush {#simplepush} - Slack {#slack} @@ -169,11 +171,23 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica {#importlist} -- Sonarr {#sonarrimport} - - TRaSH has [a guide](https://trash-guides.info/Sonarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances +- AniList {#anilistimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) +- Custom Lists {#customimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) +- IMDb Lists {#imdblistimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) +- MyAnimeList {#myanimelistimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) - Plex Watchlist {#pleximport} - - Simply add a Plex watchlist for the authenticated Plex user to Radarr. Note that it's required that your list contain shows on it. + - Simply add a Plex watchlist for the authenticated Plex user to Sonarr. Note that it's required that your list contain shows on it. - To have multiple user's watchlists you'll need to add each user's lists and authenticate with their Plex user. +- Plex Watchlist RSS {#plexrssimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) +- Simkl {#simkluserimport} + - [Refer to the Settings Page](/sonarr/settings#import-lists) +- Sonarr {#sonarrimport} + - TRaSH has [a guide](https://trash-guides.info/Sonarr/Tips/Sync-2-radarr-sonarr/) for syncing two instances - Trakt List {#traktlistimport} - Username - Ensure you enter the actual username of the user and not the user's name - List - Ensure you use the list name as presented in the list URL @@ -190,6 +204,9 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica {#metadata} +- Kometa {#kometametadata} + - Enable - Enable metadata file creation for this metadata type + > Kometa metadata is deprecated. {.is-warning} - Kodi (XBMC) / Emby {#xbmcmetadata} - Enable - Enable metadata file creation for this metadata type - Series Metadata - Create a `tvshow.nfo` with full series metadata @@ -198,6 +215,9 @@ This page is the disambiguation page for all "supported" wiki links (i.e. typica - Series Images - Create various Series images including posters and banners named as `poster.jpg` and `banner.jpg` - Season Images - Create various Season images including posters and banners named as `season##-poster.jpg` and `season##-banner.jpg` - Episode Images - Create various Episode images such as thumnbnails named as named as `-thumb.jpg` +- Plex {#plexmetadata} + - Enable - Enable metadata file creation for this metadata type + - Series Metadata - Create a `.plexmatch` file in the series root folder - Roksbox {#roksboxmetadata} - Enable - Enable metadata file creation for this metadata type - Episode Metadata - Create `Season##\.xml` for each episode diff --git a/sonarr/system.md b/sonarr/system.md index ee2434b4e..a6b16bbc2 100644 --- a/sonarr/system.md +++ b/sonarr/system.md @@ -2,7 +2,7 @@ title: Sonarr System description: System information, logs, scheduled tasks, and status monitoring for Sonarr administration and troubleshooting published: true -date: 2023-10-12T15:54:39.615Z +date: 2026-06-07T00:00:00.000Z tags: system, administration, logs, tasks, status, sonarr editor: markdown dateCreated: 2021-09-08T17:58:43.288Z @@ -14,9 +14,7 @@ dateCreated: 2021-09-08T17:58:43.288Z - [Status](#status) - [Health](#health) - [System Warnings](#system-warnings) - - [Currently installed .NET Framework is old and unsupported](#currently-installed-net-framework-is-old-and-unsupported) - - [Currently installed .NET Framework is supported but upgrading is recommended](#currently-installed-net-framework-is-supported-but-upgrading-is-recommended) - - [Currently installed mono version is old and unsupported](#currently-installed-mono-version-is-old-and-unsupported) + - [Invalid API Key](#invalid-api-key) - [Package Maintainer Message](#package-maintainer-message) - [New update is available](#new-update-is-available) - [Cannot install update because startup folder and/or UI folder are not writable by the user](#cannot-install-update-because-startup-folder-andor-ui-folder-are-not-writable-by-the-user) @@ -25,16 +23,21 @@ dateCreated: 2021-09-08T17:58:43.288Z - [Failed to resolve the IP Address for the Configured Proxy Host](#failed-to-resolve-the-ip-address-for-the-configured-proxy-host) - [Proxy Failed Test](#proxy-failed-test) - [System Time is off by more than 1 day](#system-time-is-off-by-more-than-1-day) - - [MediaInfo Library Could not be Loaded](#mediainfo-library-could-not-be-loaded) - - [Mono Legacy TLS enabled](#mono-legacy-tls-enabled) - [Download Clients](#download-clients) - [No download client is available](#no-download-client-is-available) - [Unable to communicate with download client](#unable-to-communicate-with-download-client) - - [Download clients are unavailable due to failure](#download-clients-are-unavailable-due-to-failure) + - [Download clients are unavailable due to failures](#download-clients-are-unavailable-due-to-failures) - [Enable Completed Download Handling](#enable-completed-download-handling) - [Downloading into Root Folder](#downloading-into-root-folder) + - [Bad Download Client Settings](#bad-download-client-settings) + - [Bad Remote Path Mapping](#bad-remote-path-mapping) + - [Docker bad remote path mapping](#docker-bad-remote-path-mapping) + - [Permissions Error](#permissions-error) + - [Remote File was removed part way through processing](#remote-file-was-removed-part-way-through-processing) + - [Remote Path is Used and Import Failed](#remote-path-is-used-and-import-failed) - [Completed Download Handling is disabled](#completed-download-handling-is-disabled) - [Download Client Removes Completed Downloads](#download-client-removes-completed-downloads) + - [Download Client Has Sorting Enabled](#download-client-has-sorting-enabled) - [Indexers](#indexers) - [No indexers available with automatic search enabled, Sonarr will not provide any automatic search results](#no-indexers-available-with-automatic-search-enabled-sonarr-will-not-provide-any-automatic-search-results) - [No indexers available with RSS sync enabled, Sonarr will not grab new releases automatically](#no-indexers-available-with-rss-sync-enabled-sonarr-will-not-grab-new-releases-automatically) @@ -44,13 +47,19 @@ dateCreated: 2021-09-08T17:58:43.288Z - [Indexers are unavailable due to failures](#indexers-are-unavailable-due-to-failures) - [Jackett All Endpoint Used](#jackett-all-endpoint-used) - [Solutions](#solutions) + - [Indexer Download Client is Invalid](#indexer-download-client-is-invalid) + - [Notifications](#notifications) + - [Notifications are unavailable due to failures](#notifications-are-unavailable-due-to-failures) - [Media & Lists](#media--lists) - [Series Removed from TheTVDB](#series-removed-from-thetvdb) - [Lists are unavailable due to failures](#lists-are-unavailable-due-to-failures) - [Import List Missing Root Folder](#import-list-missing-root-folder) - [Missing Root Folder](#missing-root-folder) - - [Missing root folder](#missing-root-folder-1) - [Series Path Mount is Read Only](#series-path-mount-is-read-only) + - [Metadata](#metadata) + - [Metadata Consumer using deprecated Kometa integration](#metadata-consumer-using-deprecated-kometa-integration) + - [Other](#other) + - [Cannot Write to Recycling Bin](#cannot-write-to-recycling-bin) - [Disk Space](#disk-space) - [About](#about) - [More Info](#more-info) @@ -70,32 +79,11 @@ dateCreated: 2021-09-08T17:58:43.288Z ### System Warnings -#### Currently installed .NET Framework is old and unsupported +#### Invalid API Key -- Sonarr uses the .NET Framework. We need to build Sonarr against the lowest supported version still used by our users. Occasionally we increase the version we build against to be able to utilize new features. Apparently you haven't applied the appropriate Windows updates in a while and need to upgrade .NET to be able to use newer versions of Sonarr. +{#invalid-api-key} -- Upgrading the .NET Framework is very straightforward on Windows, although it often requires a restart. - -#### Currently installed .NET Framework is supported but upgrading is recommended - -- Sonarr uses the .NET Framework. We need to build Sonarr against the lowest supported version still used by our users. Upgrading to newer versions allows us to build against newer versions and use new Framework features. - -- Upgrading the .NET Framework is very straightforward on Windows, although it often requires a - -#### Currently installed mono version is old and unsupported - -- Sonarr v4 is written in .NET and v3 required Mono. Mono 5.20 is the absolute minimum for Sonarr. -- The upgrade procedure for Mono varies per platform. - -> Mono is no longer supported starting in Sonarr version 4.0 -{.is-warning} - -#### Currently installed SQLite version is not supported - -- Sonarr stores its data in an SQLite database. The SQLite3 library installed on your system is too old. Sonarr requires at least version 3.9.0. - -> Note that Sonarr uses `libSQLite3.so` which may or may not be contained in a SQLite3 upgrade package. -{.is-info} +- Your API key is invalid or too short. The API key must be at least 20 characters long. You can update your API key in Settings or the config file. #### Package Maintainer Message @@ -130,43 +118,45 @@ If you're on Linux, you will probably have to change the home directory for the #### Failed to resolve the IP Address for the Configured Proxy Host +{#proxy-failed-resolve-ip} + Review your proxy settings and ensure they are accurate Ensure your proxy is up, running, and accessible #### Proxy Failed Test +{#proxy-failed-test} + Your configured proxy failed to test successfully, review the HTTP error provided and/or check logs for more details. #### System Time is off by more than 1 day +{#system-time-off} + System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected Review your system time and ensure it is synced to an authoritative time server and accurate -#### MediaInfo Library Could not be Loaded - -MediaInfo Library could not be loaded. Sonarr requires MediaInfo (`libmediainfo`) to evaluate the video attributes of files. - -#### Mono Legacy TLS enabled - -{#sonarr-mono-4.x-tls-workaround-still-enabled-consider-removing-mono_tls_provider-legacy-environment-option} - -Mono 4.x tls workaround still enabled, consider removing MONO_TLS_PROVIDER=legacy environment option. - ### Download Clients #### No download client is available +{#no-download-client-is-available} + A properly configured and enabled download client is required for Sonarr to be able to download media. Since Sonarr supports different download clients, you should determine which best matches your requirements. If you already have a download client installed, you should configure Sonarr to use it and create a category. See Settings => Download Client. #### Unable to communicate with download client +{#unable-to-communicate-with-download-client} + Sonarr was unable to communicate with the configured download client. Please verify if the download client is operational and double check the url. This could also indicate an authentication error. This is typically due to improperly configured download client. Things you can typically check: Your download clients IP Address if its on the same bare metal machine this is typically 127.0.0.1 The Port number of that your download client is using these are filled out with the default port number but if you've changed it you will need to have the same one entered into Sonarr. Ensure SSL encryption is not turned on if you're using both your Sonarr instance and your download client on a local network. See the SSL FAQ entry for more information. -#### Download clients are unavailable due to failure +#### Download clients are unavailable due to failures + +{#download-clients-are-unavailable-due-to-failures} One or more of your download clients is not responding to requests made by Sonarr. Therefore Sonarr has decided to temporarily stop querying the download client on it's normal 1 minute cycle, which is normally used to track active downloads and import finished ones. However, Sonarr will continue to attempt to send downloads to the client, but will in all likeliness fail. You should inspect System => Logs to see what the reason is for the failures. @@ -179,6 +169,8 @@ If you no longer use this download client, disable it in Sonarr to prevent the e #### Docker bad remote path mapping +{#docker-bad-remote-path-mapping} + - This error is typically associated with bad docker paths within either your download client or Sonarr - An example of this would be: @@ -213,38 +205,33 @@ If you no longer use this download client, disable it in Sonarr to prevent the e #### Bad Download Client Settings +{#bad-download-client-settings} + - The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from windows to linux or linux to windows without a remote path map. #### Bad Remote Path Mapping +{#bad-remote-path-mapping} + - The location your download client is downloading files to is causing problems. Check the logs for further information. This may be permissions or attempting to go from windows to linux or linux to windows without a remote path map. See [TRaSH's Remote Path Guide](https://trash-guides.info/Sonarr/sonarr-remote-path-mapping/) for more information. #### Permissions Error +{#permissions-error} + - Sonarr or the user sonarr is running as cannot access the location your download client is downloading files to. This is typically a permission issue. #### Remote File was removed part way through processing +{#remote-path-file-removed} + - A file accessible via a remote path map appears to have been removed prior to processing completing. #### Remote Path is Used and Import Failed -- Check your logs for more info; Refer to our Troubleshooting Guides - -### Downloading into Root Folder - -{#downloads-in-root-folder} +{#remote-path-import-failed} -- Within the application, a root folder is defined as the configured media library folder. This is not the root folder of a mount. Your download client has an incomplete or complete (or is moving completed downloads) into your root (library) folder. -- This frequently causes issues - including data loss - and should not be done. To fix this change your download client so it is not placing downloads within your root folder. Note that 'placing' also includes if your download client category is set to your root folder or if NZBGet/SABnzbd have sort enabled and are sorting to your root folder. -- Please note that this check looks at all defined/configured root folders added not only root folders currently in use. In other words, the folder your download client downloads into or moves completed downloads to, should not be the same folder you have configured as your root/library/final media destination folder in the *arr application. -- Configured Root Folders (aka Library folders) can be found in [Settings => Media Management => Root Folders](/sonarr/settings/#root-folders) -- One example is if your downloads are going into `/data/downloads` then you have a root folder set as `/data/downloads`. -- It is suggested to use paths like `/data/media/` for your root folder/library and `/data/downloads/` for your downloads. -- Review our [Docker Guide](/docker-guide) and TRaSH's [Hard links and Instant Moves (Atomic-Moves) Guide](https://trash-guides.info/hardlinks/) for more information on the correct and optimal path setup. Note that the concepts apply for docker and non-docker - -> Your download folder where your download client places the downloads and your root/library folder MUST be separate. \*Arr will import the file(s) from your download client's folder into your library. The download client should not move anything or download anything to your library. -{.is-warning} +- Check your logs for more info; Refer to our Troubleshooting Guides #### Completed Download Handling is disabled @@ -271,6 +258,12 @@ If you no longer use this download client, disable it in Sonarr to prevent the e - Sabnzbd: Switches => Post Processing => Keep Jobs **must** be set to 14 days or greater OR be set to Keep All History - Removing completed downloads from your client can be managed by Sonarr and enabled via the download client settings in \*Arr. Thus \*Arr can ensure that your download client history is cleaned up. +#### Download Client Has Sorting Enabled + +{#download-folder-and-library-folder-not-different-folders} + +- One of your download clients has sorting enabled. This causes Sonarr to be unable to find completed downloads because the files are moved or renamed by the download client before Sonarr can import them. Disable sorting in your download client to resolve this. + ### Indexers #### No indexers available with automatic search enabled, Sonarr will not provide any automatic search results @@ -327,6 +320,20 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea - Check out [Prowlarr](/prowlarr) which can sync indexers to \*Arr and from the Lidarr/Radarr/Readarr development team. - Check out [NZBHydra2](https://github.com/theotherp/nzbhydra2) which can sync indexers to \*Arr. But do not use their single aggregate endpoint and use `multi` if sync will be used. +#### Indexer Download Client is Invalid + +{#invalid-indexer-download-client-setting} + +- One or more of your indexers has a download client configured that no longer exists or is disabled in Sonarr. Go to Settings => Indexers and select the affected indexer, then update or remove the download client setting. + +### Notifications + +#### Notifications are unavailable due to failures + +{#notifications-are-unavailable-due-to-failures} + +- One or more of your notification connections is failing. Sonarr will back off and reduce the frequency of attempts. Review System => Events and check the logs to determine the cause of the failures. If you no longer use this notification, disable it in Sonarr to prevent the errors. + ### Media & Lists #### Series Removed from TheTVDB @@ -342,12 +349,16 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea #### Import List Missing Root Folder +{#import-list-missing-root-folder} + - One or more of your import lists are configured to a root folder that is not accessible to Sonarr. - This may be permissions issues, a missing mount, or simply needing to update the lists after reorganizing your setup. #### Missing Root Folder -- A root folder is added to Sonarr and dies nor exist or is not accessible +{#missing-root-folder} + +- A root folder is added to Sonarr and does not exist or is not accessible. - This error is typically identified if a Series is looking for a root folder but that root folder is no longer available. - This error may also be if a list is still pointed at a root folder but that root folder is no longer available. - If you would like to remove this warning simply find the series that is still using the old root folder and edit it to the correct root folder. @@ -366,6 +377,20 @@ Go into Settings > Indexers, select an indexer you'd like to allow Automatic Sea A mount containing a series path is read only and is not writable by the user Sonarr is running as. +### Metadata + +#### Metadata Consumer using deprecated Kometa integration + +- A metadata consumer is using the Kometa (formerly Plex Meta Manager) integration which has been deprecated. Please remove or reconfigure the Kometa metadata consumer in Settings => Metadata. + +### Other + +#### Cannot Write to Recycling Bin + +{#cannot-write-recycle-bin} + +- Sonarr is unable to write to the configured Recycling Bin path. Check that the path exists and that the user Sonarr is running as has write permissions to it. + ## Disk Space - This section will show you available disk space diff --git a/sonarr/troubleshooting.md b/sonarr/troubleshooting.md index 978fb798d..6078995c5 100644 --- a/sonarr/troubleshooting.md +++ b/sonarr/troubleshooting.md @@ -2,7 +2,7 @@ title: Sonarr Troubleshooting description: Common issues, error codes, and solutions for troubleshooting Sonarr installation, configuration, and operational problems published: true -date: 2026-02-01T14:30:13.515Z +date: 2026-06-07T00:00:00.000Z tags: sonarr, troubleshooting, support, issues, debugging, errors editor: markdown dateCreated: 2021-06-20T19:13:01.108Z @@ -95,7 +95,7 @@ The logs can be long and hard to read as part of a forum or Reddit post and they You can change the log level at Settings => General => Logging. Sonarr does not need to restarted for the change to take effect. This change only affects the log files, not the logging database. The latest debug/trace log files are named `sonarr.debug.txt` and `sonarr.trace.txt` respectively. -If you're unable to access the UI to set the logging level you can do so by editing config.xml in the AppData directory by setting the LogLevel value to Debug or Trace instead of Info. +If you're unable to access the UI to set the logging level you can do so by editing config.xml in the AppData directory by setting the LogLevel value to Debug or Trace instead of the current value. ```xml diff --git a/sonarr/wanted.md b/sonarr/wanted.md index 02a75c522..1f6c25c70 100644 --- a/sonarr/wanted.md +++ b/sonarr/wanted.md @@ -2,7 +2,7 @@ title: Sonarr Wanted description: Managing wanted episodes, manual searches, and download monitoring in Sonarr's Wanted section published: true -date: 2021-11-29T22:12:55.806Z +date: 2026-06-07T00:00:00.000Z tags: wanted, episodes, search, monitoring, missing, sonarr editor: markdown dateCreated: 2021-06-10T01:40:02.329Z @@ -15,11 +15,11 @@ The Wanted => Missing section contains a list of the episodes you have marked to > This will only include episodes completely missing from your disk, not episodes which exist on disk, but have their cutoff profile unmet. {.is-info} -- "Search Selected" - Here you can select certain episodes if you wish to search for them with your indexers +- "Search Selected" / "Search All" - When episodes are selected, this button searches only the selected episodes with your indexers. When no episodes are selected, it searches all current missing episodes. Once "Search All" is confirmed, a dialog box will pop up with a warning letting you know how many episodes will be searched for; this is particularly helpful to know if your indexers limit your API calls. -- "Unmonitor Selected" - Here you can select certain episodes and unmonitor them if you're no longer interested in them. +- "Unmonitor Selected" / "Monitor Selected" - When viewing monitored episodes, selecting certain episodes and clicking this button will unmonitor them. When viewing unmonitored episodes, this button will monitor the selected episodes. -- "Search All" - Selecting here will send a search to all of your indexers for all current missing episodes. Once pressed, a dialog box will pop up with a warning to you, letting you know how many episodes will be searched for; this is particularly helpful to know if your indexers limit your api calls. +- Filter - The filter button (top right) lets you toggle between viewing Monitored and Unmonitored missing episodes. > This search process cannot be canceled once started without restarting Sonarr. {.is-info} @@ -40,7 +40,6 @@ The cut off is where you essentially tell Sonarr that the quality of the video f There are a couple of options available to you on this page ![wanted-cut-off-unmet.png](/assets/sonarr/wanted-cut-off-unmet.png) -1. Search Selected - By selecting episodes on your list you can perform an Automatic search to try to see if there are any upgrades to your existing files. -1. Unmonitor Selected - By selecting certain episodes on your list you can tell Sonarr to no longer look for any upgrades by Unmonitoring that episode. -1. Search All - This can be dangerous (depending on how big your list is) as you're telling Sonarr to search every file that hasn't met the cut off. This can be useful if you do not have a massive list. -1. Filter - This will allow you to filter out your results. This is useful if you're wanting to search a specific set of episodes or series +1. Search Selected / Search All - When episodes are selected, this button performs an automatic search for upgrades to only the selected files. When no episodes are selected, it searches all cutoff unmet episodes. This can be resource-intensive depending on the size of your list. +1. Unmonitor Selected / Monitor Selected - When viewing monitored episodes, selecting certain episodes and clicking this button will unmonitor them so Sonarr no longer looks for upgrades. When viewing unmonitored episodes, this button will re-monitor the selected episodes. +1. Filter - The filter button (top right) lets you toggle between viewing Monitored and Unmonitored cutoff unmet episodes.