Radarr

From Indie IT Wiki
Revision as of 10:46, 18 November 2024 by Plittlefield (talk | contribs) (Plittlefield moved page Radaar to Radarr: Incorrect Spelling)

Introduction

Radarr is an independent fork of Sonarr reworked for automatic downloading of movies.

https://radarr.video

Installation

https://github.com/Radarr/Radarr/wiki/Installation

Information

Custom Scripts

API

List Movies

curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx"
curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq '.[] | .path'

Search Movie

curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq '.[] | select(.path=="/data/media/movies/Movie Name (Year)")'

Find ID of Movie

curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq '.[] | select(.path=="/data/media/movies/Movie Name (Year)") | {Id: .id}'
curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq '.[] | select(.path=="/data/media/movies/Movie Name (Year)") | .id'

Delete Movie

curl -s -X "DELETE" "http://192.168.0.252:7878/api/v3/movie/886?deleteFiles=true&addImportExclusion=false" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx"

Find and Delete Movie

With no BASH variable ...

ID=$(curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq '.[] | select(.path=="/data/media/movies/Movie Name (Year)") | .id'); echo "${ID}"; curl -s -X "DELETE" "http://192.168.0.252:7878/api/v3/movie/${ID}?deleteFiles=true&addImportExclusion=false" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx"

With a BASH variable ...

MOVIEPATH="/data/media/movies/Movie Name (Year)"; ID=$(curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq --arg MOVIEPATH "$MOVIEPATH" '.[] | select(.path==$MOVIEPATH) | .id'); echo "${ID}"; curl -s -X "DELETE" "http://192.168.0.252:7878/api/v3/movie/${ID}?deleteFiles=true&addImportExclusion=false" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx"

Unmonitor Movie

curl -s -X "PUT" "http://192.168.0.252:7878/api/v3/movie/editor" \
  -H "content-type: application/json" \
  -H "accept: application/json" \
  -H "X-Api-Key: xxxxxxxxxxxxxx" \
  -d '{"movieIds": [ ${ID} ], "monitored": false }';

So, combined with my BASH variable snippets above ...

MOVIEPATH="/data/media/movies/Movie Name (Year)"; ID=$(curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxx" | jq --arg MOVIEPATH "$MOVIEPATH" '.[] | select(.path==$MOVIEPATH) | .id'); echo "${ID}"; curl -s -X "PUT" "http://192.168.0.252:7878/api/v3/movie/editor" -H "content-type: application/json" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxx" -d '{"movieIds": [ ${ID} ], "monitored": false }';

Complete Script

#!/bin/bash
# ./radarr_delete_movie.sh "Movie Name (Year)"
MOVIE="$1";
echo "MOVIE=${MOVIE}";
MOVIEPATH="/data/media/movies/$MOVIE";
echo "MOVIEPATH=$MOVIEPATH";
ID=$(curl -s -X "GET" "http://192.168.0.252:7878/api/v3/movie" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxx" | jq --arg MOVIEPATH "$MOVIEPATH" '.[] | select(.path==$MOVIEPATH) | .id');
echo "ID=${ID}";
sleep 10s;
curl -s -X "DELETE" "http://192.168.0.252:7878/api/v3/movie/${ID}?deleteFiles=true&addImportExclusion=false" -H "accept: application/json" -H "X-Api-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxx";
exit;

Use in Tdarr

So, in theory, you should be able to use the variable "{{{args.inputFileObj._id}}}" in Tdarr to get the path and then right at the end of your flow, you call this command. Maybe :)