Package: buildarr-sonarr
Buildarr Sonarr PluginThe Buildarr Sonarr plugin (buildarr-sonarr) is a plugin for Buildarr that adds the capability to configure and manageSonarrinstances.Sonarr is a PVR application which downloads, renames and manages the lifecycle of TV shows in your media library. It is capable of scanning for higher quality versions of your media and automatically upgrading them when a suitable version is available.Currently, Sonarr V3 is the only supported version. Sonarr V4 support is planned for the future.InstallationFromversion 0.4.0onwards, the Buildarr Sonarr plugin is now an independent package, developed separately from the core Buildarr package.When using Buildarr as astandalone application, it can simply be installed usingpip:$pipinstallbuildarrbuildarr-sonarrWhen using Buildarr as aDocker container, the Sonarr plugin is still bundled in the official container (callum027/buildarr). There is no need to install it separately.You can upgrade, or pin the version of the plugin to a specific version, within the container by setting the$BUILDARR_INSTALL_PACKAGESenvironment variable in thedocker runcommand using--env/-e:-eBUILDARR_INSTALL_PACKAGES="buildarr-sonar==<version>"In Buildarr version 0.3.0 and earlier, the Sonarr plugin was vendored within the core Buildarr package. On these versions, it is not necessary to install the Sonarr plugin separately.Quick StartTo use the Sonarr plugin, create asonarrblock withinbuildarr.yml, and enter the connection information required for the Buildarr instance to connect to the Sonarr instance you'd like to manage.Buildarr won't modify anything yet since no configuration has been defined, but you are able to test if Buildarr is able to connect to and authenticate with the Sonarr instance.---buildarr:watch_config:truesonarr:hostname:"localhost"# Defaults to `sonarr`, or the instance name for instance-specific configs.port:8989# Defaults to 8989.protocol:"http"# Defaults to `http`.api_key:"..."# Optional. If undefined, auto-fetch (authentication must be disabled).Now try abuildarr run. If the output is similar to the below output, Buildarr was able to connect to your Sonarr instance.2023-03-29 20:39:50,856 buildarr:1 buildarr.cli.run [INFO] Buildarr version 0.4.0 (log level: INFO)
2023-03-29 20:39:50,856 buildarr:1 buildarr.cli.run [INFO] Loading configuration file '/config/buildarr.yml'
2023-03-29 20:39:50,872 buildarr:1 buildarr.cli.run [INFO] Finished loading configuration file
2023-03-29 20:39:50,874 buildarr:1 buildarr.cli.run [INFO] Loaded plugins: sonarr (0.4.0)
2023-03-29 20:39:50,875 buildarr:1 buildarr.cli.run [INFO] Loading instance configurations
2023-03-29 20:39:50,877 buildarr:1 buildarr.cli.run [INFO] Finished loading instance configurations
2023-03-29 20:39:50,877 buildarr:1 buildarr.cli.run [INFO] Running with plugins: sonarr
2023-03-29 20:39:50,877 buildarr:1 buildarr.cli.run [INFO] Resolving instance dependencies
2023-03-29 20:39:50,877 buildarr:1 buildarr.cli.run [INFO] Finished resolving instance dependencies
2023-03-29 20:39:50,877 buildarr:1 buildarr.cli.run [INFO] Loading secrets file from '/config/secrets.json'
2023-03-29 20:39:50,886 buildarr:1 buildarr.cli.run [INFO] Finished loading secrets file
2023-03-29 20:39:50,886 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Checking secrets
2023-03-29 20:39:50,912 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Connection test successful using cached secrets
2023-03-29 20:39:50,912 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Finished checking secrets
2023-03-29 20:39:50,912 buildarr:1 buildarr.cli.run [INFO] Saving updated secrets file to '/config/secrets.json'
2023-03-29 20:39:50,914 buildarr:1 buildarr.cli.run [INFO] Finished saving updated secrets file
2023-03-29 20:39:50,914 buildarr:1 buildarr.cli.run [INFO] Updating configuration on remote instances
2023-03-29 20:39:50,914 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Getting remote configuration
2023-03-29 20:39:51,406 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Finished getting remote configuration
2023-03-29 20:39:51,463 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Updating remote configuration
2023-03-29 20:39:52,019 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Remote configuration is up to date
2023-03-29 20:39:52,019 buildarr:1 buildarr.cli.run [INFO] <sonarr> (default) Finished updating remote configuration
2023-03-29 20:39:52,019 buildarr:1 buildarr.cli.run [INFO] Finished updating configuration on remote instancesConfiguring your Sonarr instanceThe following sections cover comprehensive configuration of a Sonarr instance.Note that these documents do not show how youshouldconfigure a Sonarr instance. Rather, they show how youcanconfigure a Sonarr instance the way you want with Buildarr. For more information on how to optimally configure Sonarr, you can refer to the excellent guides fromWikiArrandTRaSH-Guides.Host ConfigurationMedia ManagementProfilesQuality ProfilesLanguage ProfilesDelay ProfilesRelease ProfilesQualityIndexersDownload ClientsImport ListsConnectMetadataTagsGeneralUIDumping an existing Sonarr instance configurationBuildarr is capable of dumping a running Sonarr instance's configuration.$buildarrsonarrdump-confighttp://localhost:8989>sonarr.yml
SonarrinstanceAPIkey:<PasteAPIkeyhere>The dumped YAML object can be placed directly under thesonarrconfiguration block, or used as aninstance-specific configuration.Most values are explicitly defined in this dumped configuration, ensuring that when used with Buildarr, the configuration will always remain static.api_key:1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4dhostname:localhostport:8989protocol:httpsettings:connect:definitions:Trakt:access_token:1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2bauth_user:exampleexpires:'2023-05-10T15:34:08.117451+00:00'notification_triggers:include_health_warnings:falseon_application_update:falseon_episode_file_delete:trueon_episode_file_delete_for_upgrade:trueon_grab:falseon_health_issue:falseon_import:trueon_rename:falseon_series_delete:trueon_upgrade:truerefresh_token:1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2btags:[]download_clients:definitions:Transmission:add_paused:falsecategory:sonarrdirectory:nullenable:truehost:transmissionolder_priority:lastpassword:nullport:9091priority:1recent_priority:lastremove_completed_downloads:trueremove_failed_downloads:truetags:[]url_base:/transmission/use_ssl:falseusername:nullenable_completed_download_handling:trueredownload_failed:trueremote_path_mappings:definitions:[]general:analytics:send_anonymous_usage_data:truebackup:folder:Backupsinterval:7retention:28host:bind_address:'*'instance_name:Sonarr (Example)port:8989ssl_port:9898url_base:nulluse_ssl:falselogging:log_level:INFOproxy:bypass_proxy_for_local_addresses:trueenable:falsehostname:nullignored_addresses:[]password:nullport:8080proxy_type:httpusername:nullsecurity:authentication:nonecertificate_validation:enabledpassword:nullusername:nullupdates:automatic:falsebranch:mainmechanism:dockerscript_path:nullimport_lists:definitions:{}indexers:definitions:{}maximum_size:0minimum_age:0retention:0rss_sync_interval:15media_management:analyze_video_files:trueanime_episode_format:'{SeriesTitleYear}-S{season:00}E{episode:00}-{absolute:000}-{EpisodeCleanTitle}{[PreferredWords]}{[QualityFull]}{[MediaInfoVideoDynamicRangeType]}[{MediaInfoVideoBitDepth}bit]{[MediaInfoVideoCodec]}[{MediainfoAudioCodec}{MediainfoAudioChannels}]{MediaInfoAudioLanguages}{[ReleaseGroup]}-Default'change_file_date:nonechmod_folder:drwxr-xr-xchown_group:nullcreate_empty_series_folders:falsedaily_episode_format:'{SeriesTitleYear}-{Air-Date}-{EpisodeCleanTitle}-{[PreferredWords]}{[QualityFull]}{[MediaInfoVideoDynamicRangeType]}[{MediaInfoVideoBitDepth}bit]{[MediaInfoVideoCodec]}[{MediainfoAudioCodec}{MediainfoAudioChannels}]{[MediaInfoAudioLanguages]}{[ReleaseGroup]}-Default'delete_empty_folders:falseepisode_title_required:alwaysimport_extra_files:falseminimum_free_space:100multiepisode_style:rangepropers_and_repacks:do-not-preferrecycling_bin:nullrecycling_bin_cleanup:7rename_episodes:truereplace_illegal_characters:truerescan_series_folder_after_refresh:alwaysroot_folders:[]season_folder_format:Season {season:00}series_folder_format:'{SeriesTitleYear}[imdbid-{ImdbId}]'set_permissions:falseskip_free_space_check:falsespecials_folder_format:Specialsstandard_episode_format:'{SeriesTitleYear}-S{season:00}E{episode:00}-{EpisodeCleanTitle}-{[PreferredWords]}{[QualityFull]}{[MediaInfoVideoDynamicRangeType]}[{MediaInfoVideoBitDepth}bit]{[MediaInfoVideoCodec]}[{MediainfoAudioCodec}{MediainfoAudioChannels}]{[MediaInfoAudioLanguages]}{[ReleaseGroup]}-Default'use_hardlinks:truemetadata:kodi_emby:enable:falseepisode_images:trueepisode_metadata:trueseason_images:trueseries_images:trueseries_metadata:trueseries_metadata_url:trueroksbox:enable:falseepisode_images:trueepisode_metadata:trueseason_images:trueseries_images:truewdtv:enable:falseepisode_images:trueepisode_metadata:trueseason_images:trueseries_images:trueprofiles:delay_profiles:definitions:-bypass_if_highest_quality:truepreferred_protocol:usenet-prefertags:[]torrent_delay:0usenet_delay:0language_profiles:definitions:Shows:languages:-englishupgrade_until:englishupgrades_allowed:truequality_profiles:definitions:SD/HD:qualities:-Bluray-1080p-members:-WEBDL-1080p-WEBRip-1080pname:WEB 1080p-HDTV-1080p-Bluray-720p-members:-WEBDL-720p-WEBRip-720pname:WEB 720p-HDTV-720p-Raw-HD-Bluray-480p-DVD-members:-WEBDL-480p-WEBRip-480pname:WEB 480p-SDTVupgrade_until:Bluray-1080pupgrades_allowed:truerelease_profiles:definitions:'[Trash]LowQualityGroups':enable:trueinclude_preferred_when_renaming:falseindexer:nullmust_contain:[]must_not_contain:[]preferred:-score:-10000term:/(-BRiNK|-CHX|-GHOSTS|-EVO|-FGT|JFF|PSA|MeGusta|-NERO|nhanc3|Pahe\.ph|Pahe\.in|TBS|-VIDEOHOLE|-worldmkv|-XLF)\b/itags:[]'[Trash]Optionals':enable:trueinclude_preferred_when_renaming:falseindexer:nullmust_contain:[]must_not_contain:-/^(?=.*(1080|720))(?=.*((x|h)[ ._-]?265|hevc)).*/i-/\b(-alfaHD|-BAT|-BNd|-C\.A\.A|-Cory|-EXTREME|-FF|-FOXX|-G4RiS|-GUEIRA|-N3G4N|-PD|-PTHome|-RiPER|-RK|-SiGLA|-Tars|-WTV|-Yatogam1|-YusukeFLA|-ZigZag)\b/i-/\b(-scene)\b/i-/^(?!.*(HDR|HULU|REMUX))(?=.*\b(DV|Dovi|Dolby[- .]?Vision)\b).*/i-/\bAV1\b/i-/^(?!.*(web[ ]dl|-deflate|-inflate))(?=.*([_. ]WEB[_. ]|-CAKES\b|-GGEZ\b|-GGWP\b|-GLHF\b|-GOSSIP\b|-KOGI\b|-PECULATE\b|-SLOT\b)).*/ipreferred:-score:15term:/\bS\d+\b(?!E\d+\b)/i-score:-10000term:/(-4P|-4Planet|-AsRequested|-BUYMORE|-CAPTCHA|-Chamele0n|-GEROV|-iNC0GNiTO|-NZBGeek|-Obfuscated|-postbot|-Rakuv|-Scrambled|-WhiteRev|-WRTEAM|-xpost)\b/i-score:-10000term:/(?<!\d\.)(1-.+)$/i-score:-10000term:/(\[rartv\]|\[rarbg\]|\[eztv\]|\[TGx\])/i-score:-10000term:/\s?\ben\b$/itags:[]'[Trash]P2PGroups+Repack/Proper':enable:trueinclude_preferred_when_renaming:falseindexer:nullmust_contain:[]must_not_contain:[]preferred:-score:1800term:/(-deflate|-inflate)\b/i-score:1700term:/(-ABBIE|-AJP69|-APEX|-CasStudio|CRFW|-CtrlHD|-FLUX|\bHONE|-KiNGS|-monkee|NOSiViD|-NTb|-NTG|-PAXA|-PEXA|-QOQ|-RTN|-SiC|T6D|-TOMMY|-ViSUM|-XEPA)\b/i-score:1650term:/(3CTWeB|BLUTONiUM|-BTW|-Chotab|-Cinefeel|-CiT|Coo7|-dB|-DEEP|-END|-ETHiCS|-FC|-Flights|-GNOME|-iJP|-iKA|-iT00NZ|-JETIX|-KHN|-KiMCHI|-LAZY|-MZABI|-NPMS|-NYH|-orbitron|playWEB|PSiG|-ROCCaT|RTFM|-SA89|-SDCC|-SIGMA|-SMURF|-SPiRiT|-TEPES|-TVSmash|-WELP)\b/i-score:1600term:/(-DRACULA|SLiGNOME|T4H|-ViSiON|SwAgLaNdEr)\b/i-score:13term:/(repack3)/i-score:12term:/(repack2)/i-score:11term:/\b(repack|proper)\b/itags:[]'[Trash]ReleaseSources(StreamingService)':enable:trueinclude_preferred_when_renaming:trueindexer:nullmust_contain:[]must_not_contain:[]preferred:-score:100term:/\b(amzn|amazon)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:100term:/\b(atvp|aptv|Apple TV\+)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:95term:/\b(sho|showtime)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:90term:/\b(dsnp|dsny|disney|Disney\+)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:90term:/\b(hmax|hbom|hbo[ ._-]max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:90term:/\b(nf|netflix)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:90term:/\b(qibi|quibi)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:85term:/\b(hulu)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:85term:/\b(pcok|Peacock TV)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(dcu)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(hbo)(?![ ._-]max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(it)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(nlz)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(pmtp)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(red)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(stan)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i-score:75term:/\b(vdl)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/itags:[]quality:definitions:Bluray-1080p:max:227.0min:50.4title:nullBluray-1080p Remux:max:nullmin:69.1title:nullBluray-2160p:max:nullmin:94.6title:nullBluray-2160p Remux:max:nullmin:204.4title:nullBluray-480p:max:100.0min:2.0title:nullBluray-720p:max:137.3min:17.1title:nullDVD:max:100.0min:2.0title:nullHDTV-1080p:max:137.3min:15.0title:nullHDTV-2160p:max:350.0min:50.4title:nullHDTV-720p:max:67.5min:10.0title:nullRaw-HD:max:nullmin:4.0title:nullSDTV:max:100.0min:2.0title:nullUnknown:max:199.9min:1.0title:nullWEBDL-1080p:max:137.3min:15.0title:nullWEBDL-2160p:max:350.0min:50.4title:nullWEBDL-480p:max:100.0min:2.0title:nullWEBDL-720p:max:137.3min:10.0title:nullWEBRip-1080p:max:137.3min:15.0title:nullWEBRip-2160p:max:350.0min:50.4title:nullWEBRip-480p:max:100.0min:2.0title:nullWEBRip-720p:max:137.3min:10.0title:nulltags:definitions:[]ui:enable_color_impaired_mode:falsefirst_day_of_week:sundaylong_date_format:day-firstshort_date_format:word-month-secondshow_relative_dates:truetime_format:twentyfour-hourweek_column_header:day-firstversion:3.0.9.1549