Omegabrr
Omegabrr transforms items monitored by arrs or lists into autobrr filters. Useful for automating your filters for monitored media or racing criteria.
Installation
Download
Download the latest release , or download the source code and build it yourself using make build
.
wget $(curl -s https://api.github.com/repos/autobrr/omegabrr/releases/latest | grep download | grep linux_amd64 | cut -d\" -f4)
Extract
sudo tar -C /usr/local/bin -xzf omegabrr*.tar.gz
Docker compose
- Set
user: 1000:1000
with your user ID, or remove to run as root. You can your user ID with theid
command. - Set the
volume
so it matches your system. To run from the same path as thedocker compose
first create a config dir likemkdir config
, and place./config:/config
in the compose file. This will create a default config on the first run.
If you have custom networks then make sure to add those, so it can communicate with autobrr, Sonarr and Radarr.
version: "3.9"
services:
omegabrr:
container_name: omegabrr
image: ghcr.io/autobrr/omegabrr:latest
ports:
- "7441:7441"
user: 1000:1000
volumes:
- "./config:/config"
Configuration
Arr
You can set multiple filters per arr. Find the filter ID by going into the autobrr webui and get the ID from the url like http://localhost:7474/filters/10
where 10
is the filter ID.
Create a config like config.yaml
somewhere like ~/.config/omegabrr
.
mkdir ~/.config/omegabrr && touch ~/.config/omegabrr/config.yaml
server:
host: 0.0.0.0
port: 7441
apiToken: GENERATED_TOKEN
schedule: "0 */6 * * *"
clients:
autobrr:
# host: http://localhost:7474
# apikey: AUTOBRR_API_KEY
# basicAuth:
# user: username
# pass: password
arr:
# - name: radarr
# type: radarr
# host: http://localhost:7878
# apikey: API_KEY
# filters:
# - 15 # Change me
# - name: radarr4k
# type: radarr
# host: http://localhost:7878
# apikey: API_KEY
# filters:
# - 16 # Change me
# - name: sonarr
# type: sonarr
# host: http://localhost:8989
# apikey: API_KEY
# filters:
# - 14 # Change me
# #excludeAlternateTitles: true # defaults to false
# - name: readarr
# type: readarr
# host: http://localhost:8787
# apikey: API_KEY
# filters:
# - 18 # Change me
# - name: lidarr
# type: lidarr
# host: http://localhost:8686
# apikey: API_KEY
# filters:
# - 32 # Change me
# - name: whisparr
# type: whisparr
# host: http://localhost:6969
# apikey: API_KEY
# filters:
# - 69 # Change me
If you're trying to reach Radarr or Sonarr hosted on swizzin from some other location, you need to do it like this with basic auth:
arr:
- name: radarr
type: radarr
host: https://domain.com/radarr
apikey: YOUR_API_KEY
basicAuth:
user: username
pass: password
filters:
- 15
Same goes for autobrr if it's behind basic auth.
autobrr:
host: http://localhost:7474
apikey: YOUR_API_KEY
basicAuth:
user: username
pass: password
Optionally use Match Releases field in your autobrr filter
By setting matchRelease: true
in your config, it will use the Match releases field in your autobrr filter instead of fields like Movies / Shows and Albums.
Readarr will only use the Match releases field for now, so setting matchRelease: false for Readarr will be ignored.
Exclude alternative titles from Sonarr
You can drop alternate show titles from being added by setting excludeAlternateTitles: true
for Sonarr in your config.
Tags
This works for both Sonarr and Radarr.
If you want to match only certain tags you can use the tagsInclude
.
- name: sonarr
type: sonarr
host: http://localhost:8989
apikey: API_KEY
filters:
- 14
tagsInclude:
- mytag
If you want to exclude certain tags, you can use the tagsExclude
.
- name: sonarr
type: sonarr
host: http://localhost:8989
apikey: API_KEY
filters:
- 14
tagsExclude:
- myothertag
Lists configuration
Formerly known as regbrr and maintained by community members is now integrated into omegabrr.
Supported list types
trakt
- Trakt.tv lists
Please check the Trakt info section if you plan to use offical trakt.tv endpoints.
This does not apply to lists hosted by autobrr.
Trakt lists hosted by autobrr:
https://api.autobrr.com/lists/trakt/popular-tv
https://api.autobrr.com/lists/trakt/anticipated-tv
https://api.autobrr.com/lists/trakt/upcoming-movies
https://api.autobrr.com/lists/trakt/upcoming-bluray
https://api.autobrr.com/lists/stevenlu # needs to be specified as a trakt list
lists:
- name: Anticipated TV
type: trakt
url: https://api.autobrr.com/lists/trakt/anticipated-tv
filters:
- 22 # Change me
mdblists
- MDBLists
Takes any mdblist url with /json
appended to the end of the URL.
lists:
- name: Latest TV Shows
type: mdblist
url: https://mdblist.com/lists/garycrawfordgc/latest-tv-shows/json
filters:
- 1 # Change me
metacritic
- Music lists curated by Metacritic
These URLs are supported:
https://api.autobrr.com/lists/metacritic/upcoming-albums
https://api.autobrr.com/lists/metacritic/new-albums
lists:
- name: New Albums
type: metacritic
url: https://api.autobrr.com/lists/metacritic/new-albums
filters:
- 9 # Change me
Steam wishlist
Takes any Steam wishlist URL like https://store.steampowered.com/wishlist/id/USERNAME/wishlistdata
lists:
- name: New Games
type: steam
url: https://store.steampowered.com/wishlist/id/USERNAME/wishlistdata
filters:
- 1 # Change me
plaintext
- Plaintext lists
Plaintext lists can be anything, therefore you can optionally set matchRelease: true
or album: true
to use these fields in your autobrr filter. If not set, it will use the Movies / Shows field.
lists:
- name: Personal list
type: plaintext
url: https://gist.githubusercontent.com/autobrr/somegist/raw
filters:
- 27 # change me
album: true # optional
#matchRelease: true # optional
Trakt info
If you are using the Trakt api directly you need to have an API key which you can set via the headers object along with any other header needed for the request.
lists:
- name: Some custom Trakt endpoint
type: trakt
url: https://api.trakt.tv/calendars/all
headers:
trakt-api-key: your_key_goes_here
filters:
- 22 # Change me
Sample configuration
server:
host: 0.0.0.0
port: 7441
apiToken: GENERATED_TOKEN
schedule: "0 */6 * * *"
clients:
autobrr:
host: http://localhost:7474
apikey: YOUR_API_KEY
arr:
- name: Radarr
type: radarr
host: https://yourdomain.com/radarr
apikey: YOUR_API_KEY
filters:
- 15 # Change me
#matchRelease: false / true
- name: Radarr-4K
type: radarr
host: https://yourdomain.com/radarr4k
apikey: YOUR_API_KEY
filters:
- 16 # Change me
#matchRelease: false / true
- name: Sonarr
type: sonarr
host: https://yourdomain.com/sonarr
apikey: YOUR_API_KEY
basicAuth:
user: username
pass: password
filters:
- 14 # Change me
#matchRelease: false / true
#excludeAlternateTitles: false / true
- name: lidarr
type: lidarr
host: https://yourdomain.com/lidarr
apikey: YOUR_API_KEY
filters:
- 13 # Change me
#matchRelease: false / true
- name: readarr
type: readarr
host: https://yourdomain.com/readarr
apikey: YOUR_API_KEY
filters:
- 12 # Change me
- name: whisparr
type: whisparr
host: https://yourdomain.com/whisparr
apikey: YOUR_API_KEY
filters:
- 69 # Change me
#matchRelease: false / true
lists:
- name: Latest TV Shows
type: mdblist
url: https://mdblist.com/lists/garycrawfordgc/latest-tv-shows/json
filters:
- 1 # Change me
- name: Anticipated TV
type: trakt
url: https://api.autobrr.com/lists/trakt/anticipated-tv
filters:
- 22 # Change me
- name: Upcoming Movies
type: trakt
url: https://api.autobrr.com/lists/trakt/upcoming-movies
filters:
- 21 # Change me
- name: Upcoming Bluray
type: trakt
url: https://api.autobrr.com/lists/trakt/upcoming-bluray
filters:
- 24 # Change me
- name: Popular TV
type: trakt
url: https://api.autobrr.com/lists/trakt/popular-tv
filters:
- 25 # Change me
- name: StevenLu
type: trakt
url: https://api.autobrr.com/lists/stevenlu
filters:
- 23 # Change me
- name: New Albums
type: metacritic
url: https://api.autobrr.com/lists/metacritic/new-albums
filters:
- 9 # Change me
- name: Upcoming Albums
type: metacritic
url: https://api.autobrr.com/lists/metacritic/upcoming-albums
filters:
- 20 # Change me
- name: Personal list
type: plaintext
url: https://gist.githubusercontent.com/autobrr/somegist/raw
filters:
- 27 # change me
album: true # album or matchRelease can be optionally set to use these fields in your autobrr filter. If not set, it will use the Movies / Shows field.
- name: Steam Wishlist
type: steam
url: https://store.steampowered.com/wishlist/id/USERNAME/wishlistdata
filters:
- 20 # Change me
Commands
Available commands.
run
omegabrr run --config config.yaml
Run as a service and process on cron schedule. Defaults to every 6 hour 0 */6 * * *
.
arr
omegabrr arr --config config.yaml
Supports to run with --dry-run
to only fetch shows and skip filter update.
lists
omegabrr lists --config config.yaml
Supports to run with --dry-run to only fetch shows and skip filter update.
generate-token
Generate an API Token to use when triggering via webhook.
omegabrr generate-token
docker exec omegabrr omegabrr generate-token
Optionally call with --length <number>
for a custom length.
Copy the output and put it in your config:
server:
host: 0.0.0.0
port: 7441
apiToken: MY_NEW_LONG_SECURE_TOKEN
Webhook endpoints
Hit these to trigger an update outside the cron schedule. Can be set up inside the *arrs to trigger an update when you add new monitored titles etc.
arrs only:
curl -X POST 'http://127.0.0.1:7441/api/webhook/trigger/arr?apikey=api_key' # arrs only
Lists only:
curl -X POST 'http://127.0.0.1:7441/api/webhook/trigger/lists?apikey=api_key' # lists only
Everything:
curl -X POST 'http://127.0.0.1:7441/api/webhook/trigger?apikey=api_key' # everything
Service
When run as a service it exposes an HTTP server as well. Generate an API Token (see instructions above) and add to your config.
To refresh the filters you can make a POST or GET request to http://localhost:7441/api/webhook/trigger
.
The API Token can be set as either an HTTP header like X-API-Token
, or be passed in the url as a query param like ?apikey=MY_NEW_LONG_SECURE_TOKEN
.