이번 글에서는 토렌트 자동화를 위한 Radarr, Sonarr를 이전 글에서 설정한 Prowlarr와 연동하여 파싱된 토렌트 피드를 이용해 토렌트 자동 다운로드를 수행해 보겠습니다.
설명하기 전, 현재 제 TrueNAS에 미디어 라이브러리 용으로 사용할 dataset의 경로는 /mnt/RN428/media
인데, 여기에 영화, 드라마, 음악 등을 마구 짬뽕으로 넣을 순 없으므로 3개의 하위 경로를 만들어주겠습니다.
fentablog@rn428:/mnt/RN428/media$ mkdir music tv movie

Contents
Radarr
초기 설정
Docker Compose와 .env
는 아래 부분입니다.
services:
torrent_radarr:
container_name: torrent_radarr
image: linuxserver/radarr:latest
restart: unless-stopped
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TZ}
volumes:
- ${LIBRARY}/movie:/mnt/movie
- ${CONFIG}/radarr/config:/config
- ${DOWNLOADS}:${DOWNLOADSMOUNT}
depends_on:
- gluetun
network_mode: "service:gluetun"
CONFIG=/mnt/RN428/arr
DOWNLOADS=/mnt/RN428/torrent
DOWNLOADSMOUNT=/mnt/torrent
LIBRARY=/mnt/RN428/media
UID=3001
GID=0
TZ=Asia/Seoul
CAPTCHA_SOLVER=hcaptcha-solver
USER="3001:0"
VPN_PROVIDER=mullvad
FIREWALL_OUTBOUND_SUBNETS=192.168.0.1/24
2행의 DOWNLOADS
와 3행의 DOWNLOADSMOUNT
은 이전 글에서 설명한 바와 같이, qBittorrent가 사용하는 경로와 동일하게 접근하기 위한 설정입니다.
4행의 LIBRARY의 경우 미디어 파일이 모여있는 경로입니다. 영화, TV프로그램, 음악 등을 모두 구별해야 하므로 하위 경로로 movie
폴더를 사용할 예정이며 이를 컨테이너 내부의 /mnt/movie
경로로 마운트합니다.
TrueNAS IP:7878
로 접속할 경우 Radarr의 초기 화면을 만날 수 있습니다. Prowlarr때와 동일하므로 개별적으로 계정을 생성하시면 됩니다.

계정 생성 후 제일 먼저 Settings → Media Management로 이동해 Root Folder를 추가해 줍니다.
Root Folder는 Radarr에서 관리할 영화 파일들이 모여있는 라이브러리, 즉, 기본 폴더를 뜻합니다.
Root Folder가 지정되지 않으면 다운받을 영화를 추가하는 등의 행위가 불가능합니다.

컨테이너 내부에 마운트했던 경로 그대로 /mnt/movie
를 추가해 줍니다.

Root Folder 추가를 완료 했다면, Settings – Download Clients로 이동해 qBittorrent를 추가해 줍니다.


마지막으로, 피드생성기인 Prowlarr와 연동해야 합니다.
먼저, Settings – General에서 아래와 같이 Radarr의 API Key를 복사해 둡니다.

이전 글에서 셋팅했던 Prowlarr에 접속해 Settings – Apps로 이동한 뒤 Applications탭에서 +를 클릭해 Radarr를 선택합니다.

API Key를 붙여넣고 Test를 클릭해 통신이 원활하게 이루어지는 것을 확인해주고 저장(Save)합니다.

상단에서 Sync App Indexers를 한 번 클릭해 준 뒤, Radarr로 돌아옵니다.

Settings – Indexer에서 추가된 Indexer리스트를 확인합니다. Prowlarr에 추가된 Indexer들 중 Movie카테고리가 있는 것들만 넘어오게 됩니다.

이제 이 상태에서 다운받을 영화를 지정하고 검색을 시작하도록 할 수 있지만, 현재 상태로는 세부적인 설정(TrueHD, DTS-MA, HEVC, H264 등)을 하기 어렵기 때문에, 아래에서 옵션 다루는 법을 설명하겠습니다.
Profiles & Custom Formats
Radarr는 영상의 초당 전송률을 구간으로 나눠 품질(화질)을 판단하고, 프로필을 설정하고 사용하는 것을 통해 다운로드 받을 파일의 품질을 결정할 수 있습니다.
Settings – Profiles 탭으로 이동하면 이러한 프로필을 확인할 수 있습니다.

예시로 HD-1080p 프로필을 클릭해볼 경우, 아래처럼 1080p에 해당하는 옵션들이 체크되어 있는 것을 보실 수 있습니다.
이 옵션을 이해하려면 릴 네이밍 규칙을 이해해야 하는데, 간단히 설명하자면, 아래와 같습니다.
- Remux : 블루레이 원본
- Bluray : 블루레이 리핑(Ripping)
- WEB-DL : 웹 소스 원본(주로 넷플릭스, 디즈니 플러스, 아마존 등에서 나옵니다)
- WEBRip : 웹 소스 리핑
- HDTV : TV 혹은 IPTV 소스를 리핑한 것으로 대부분 저화질, 저음질

그러나, 이것만으로는 부족합니다. 돌비 비전(Dolby Vision, DV), HDR 등을 지정할 수 없고 TrueHD, DTS-HD 등의 오디오 소스에 대한 선택지도 없습니다.
이를 추가하기 위해선 아래와 같이 Custom Formats을 사용하셔야 하는데,

아마 여러분은 이렇게 텅 비어 있을 겁니다.

Custom Formats은 정규식을 이용해서 사용할 항목을 정의한 뒤 Profile에 적용하도록 되어 있습니다.
그런데, 현존하는 릴 규칙을 직접 모두 작성하는 것도 어렵고, 정확히 뭐가 있는지 확인하기도 어렵기 때문에, 이 곳에서 잘 짜여진 JSON을 복사 붙여넣기 하는 것이 제일 편하고 좋습니다.
페이지를 방문하면 아래처럼 여러 개의 규칙이 있는 것을 확인할 수 있습니다.

예시로 TrueHD ATMOS를 클릭해 보면, 해당하는 내용의 JSON을 복사할 수 있도록 되어 있습니다.

해당 내용을 복사 후 Radarr에서 아래처럼 Import 기능을 이용해 복사-붙여넣기 하면 간단하게 추가됩니다.



위와 같이 키워드를 복사-붙여넣기 하면 됩니다. 비디오/오디오 소스에 대한 규칙 외에도 아래처럼 원본 소스를 한정할 수도 있기 때문에 매우 유용합니다.

릴 그룹을 티어로 나누어 놓아 사용할 수도 있습니다.

사용할 키워드를 모두 추가했다면, Profiles에서 각 키워드에 대해 가중치를 주어야 합니다.
아래의 예시는 Custom Formats 점수가 150점을 초과하는 파일에 대해서만 다운로드를 한다는 뜻입니다.
그리고 각 키워드에 대한 점수는 하단에서 직접 설정해야 합니다.

영화의 경우 보통 최저품질의 캠버전이 돌아다니다가 OTT에 풀리고 나면 WEB버전이 돌아다니게 되고, 블루레이 발매 이후에 Bluray와 Remux파일이 나오게 됩니다.
그래서 위와 같은 방식으로 사용할 경우 맨 처음 다운받은 이후엔, 새 버전이나 수정 버전(PROPER), 혹은 감독판 무수정 원본이 나와도 Radarr는 이를 무시하게 됩니다.
그래서 Upgrades Allowed 기능을 사용해야 합니다.

그러면 Minimum Custom Format Score 외에도 2개의 추가 옵션을 볼 수 있게 됩니다.
Upgrade Until Custom Format Score는 최초 다운로드 후에도 여기에 설정한 점수에 도달할 때까지 계속해서 새 릴을 모니터링하고 더 좋은 버전이 있을 경우 이를 다운받게 합니다.
그런데, 큰 차이가 없음에도 새로운 릴이 나올때마다 하나하나 다운받게 되면 비효율적이기 때문에 Minimum Custom Format Score Increment 값 이상 차이가 날 때만 다운로드 받도록 설정할 수 있습니다.
Release Profiles
릴 그룹을 Tier로 나누고 가중치를 두는 것을 통해 보다 좋은 릴 그룹을 우선할 수 있긴 하지만, 특정 릴 그룹을 선호할 때는 크게 도움이 되지 않습니다. 특히, 우리는 한국어 자막을 필요로 하는 것에 반해, 특정 릴 그룹은 English 외에는 모든 자막을 빼버리는 경우도 있어 더더욱 릴 그룹을 한정지을 필요가 있습니다.
이럴 때는, Custom Formats보다는 Release Profiles 기능을 이용하는 것이 훨씬 좋습니다. 해당 기능은 Settings – Profiles에 있습니다.

Must Contain에 무조건 포함되어야 할 릴 그룹 이름을 적으면 됩니다. 대소문자는 구별하지 않습니다.
예시로 FGT라는 릴 그룹을 적어 보겠습니다. 해당 릴 그룹은 소스 원본에 한국어 자막이 있는 경우 무조건 넣어줘서 선호했던 릴 그룹입니다.

Name은 Profiles때와 마찬가지로 자유롭게 붙이시면 됩니다.
맨 아래 Tags가 빈 칸일 경우 향후 추가할 모든 대기열에 이 릴 그룹이 강제됩니다. 특정 tag를 지정하고 개별 영화에 동일한 tag를 붙여줄 경우에는, 그 영화에만 강제됩니다.
해당 릴 그룹이 모든 영화를 다루는 것은 아니기 때문에, 태그를 지정해서 사용하는 것이 조금 더 안정적입니다.
여기까지 설정했다면, 이제 대부분의 준비는 끝났습니다. 더 세부적인 설정은 직접 사용해보면서 개인 환경에 맞게 설정해야 합니다.
다운로드
Moves – Add New를 클릭하면 검색창이 열립니다. 이 곳에서 다운로드 받을 영화를 검색합니다.
예시글에서는 The Night of the Living Dead라는, 저작권 만료된 영화를 검색해 보겠습니다.

검색된 리스트 중 내가 원하는 영화를 찾아 클릭합니다.

Root Folder 하위에 자동으로 영화명 폴더가 생성되는 것을 알 수 있습니다.
사용자가 할 일은 Quality Profile과 Tags를 확인하고 Add Movie를 클릭하는 것 뿐입니다. 만일 여기서 FGT릴만 찾겠다면 Tags에 fgt를 입력하면 되겠죠.
추가된 영화는 메인 페이지에 포스터 형식으로 나타납니다(포스터가 없거나, 다운로드 되지 않았을 경우 Text)

해당 포스터에 마우스를 올리면 나타나는 작은 몽키스패너 모양을 클릭해 Tags 혹은 Quality Profiles 등의 옵션을 빠르게 수정할 수 있습니다.


추가한 영화에 맞는 피드를 찾았을 경우 자동적으로 qBittorrent로 다운로드가 시작되고, Radarr에서도 다운로드 상태를 모니터링할 수 있습니다.

라이브러리 관리하기
Radarr는 기본적으로 qBittorrent와 같은 Download Client에서 다운로드 상태를 볼 수 있으며, 다운로드 완료된 파일을 직접 Root Folder로 이동시키는 기능을 갖고 있습니다.
또한, 위에서 설명했듯이, Custom Formats와 Upgrade기능을 통해 좀 더 나은 파일로 지속해서 미디어 파일을 업그레이드 할 수 있죠. 따라서, Docker Compose에서 경로 설정에 실수가 있거나, 파일 소유주 및 권한 설정에 문제가 있는 경우가 아니라면 Radarr를 통해 영화 라이브러리를 관리할 수 있게 됩니다. 사람에 따라 수백, 수천개 이상 갖고 있을 파일을 직접 관리할 필요가 없는 거죠.
그래서, Radarr는 단순한 토렌트 자동화 프로그램이 아니라, 미디어 라이브러리 관리 도구의 일종입니다. 단순한 토렌트 자동화 목적의 프로그램은 Tsharp가 더 가깝습니다.
방금 추가했던 영화를 클릭해 보면 각종 평점과 출연진까지 확인할 수 있습니다.

만일, 더 이상 다운로드, 업그레이드를 원치 않을 경우 책갈피 모양을 클릭해 모니터링 대상에서 제외시킬 수 있습니다.

Edit – Monitored 체크박스를 해제하는 방법도 있습니다.

며칠 정도 토렌트 자동화 용도로 사용해 본 뒤 셋팅에 문제가 없다고 판단될 경우 Library Import 기능을 통해 기존에 있던 파일들도 Radarr가 관리하도록 설정할 수 있습니다.
단, Radarr가 제대로 영화를 매칭시켰는지 확인한 후 Import해야 합니다.

여기까지 진행할 경우, 보유한지 오래된 720p 파일 등을 직접 손대지 않고도 업그레이드 할 수 있게 됩니다. 또한, 라이브러리 구축 과정이 자동화되기 때문에, Plex나 Jellyfin등과 연동 시에도 사용자의 수고가 줄어들게 됩니다.
알람 설정
여러 가지 기능들을 사용하다 보면 다 좋은데, 무슨 일이 일어나는지 모를 떄가 많습니다. 사용자가 느끼기에는 아무 징조 없이 파일이 교체되어버린다던지 하는 식이죠.
그래서 간단하게 Telegram Bot을 통한 알람을 설정하는 것이 좋습니다.
Telegram 봇 생성 방법 등은 검색을 통해 쉽게 알 수 있는 내용이니 넘기겠습니다.
생성한 봇의 Token과 Telegram 계정의 Chat ID를 입력 후 알람을 받고 싶은 Trigger를 체크하면 간단하게 설정을 완료할 수 있습니다.



설정 완료 후에는 아래처럼 간편하게 알람을 받아볼 수 있게 됩니다.

Sonarr
초기 설정
Docker Compose와 .env
의 해당 부분은 아래와 같습니다.
torrent_sonarr:
container_name: torrent_sonarr
image: linuxserver/sonarr:latest
restart: unless-stopped
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TZ}
volumes:
- ${LIBRARY}/tv:/mnt/tv
- ${CONFIG}/sonarr/config:/config
- ${DOWNLOADS}:${DOWNLOADSMOUNT}
depends_on:
- gluetun
network_mode: "service:gluetun"
CONFIG=/mnt/RN428/arr
DOWNLOADS=/mnt/RN428/torrent
DOWNLOADSMOUNT=/mnt/torrent
LIBRARY=/mnt/RN428/media
UID=3001
GID=0
TZ=Asia/Seoul
CAPTCHA_SOLVER=hcaptcha-solver
USER="3001:0"
VPN_PROVIDER=mullvad
FIREWALL_OUTBOUND_SUBNETS=192.168.0.1/24
기본적으로 Radarr와 거의 동일합니다. 따라서, 비교적 단순하게 넘어가고 차이점만 언급하겠습니다.
접속 경로는 TrueNAS IP:8989
입니다.

Radarr때와 동일하게 Sonarr 역시 Root Folder를 지정해줘야 합니다.

이 글에선 /mnt/tv
가 되겠죠.

이후 위의 Radarr 기본 설정을 참조하셔서 qBittorrent와 Prowlarr와의 연동까지 진행해 주세요.
Profiles & Custom Formats
Sonarr의 Profiles와 Custom Formats 기능은 Radarr와 완전히 동일합니다.

단, 제 환경에서는 Profiles에서 모든 품질(화질)을 체크해 놓았다는 점이 차이점입니다.

웹으로 릴되는 OTT서비스들의 파일은 대부분 규칙적이고 균등한 파일 크기 및 전송률을 가지고 있으나, 애니메이션의 경우 Viu나 Hulu등에서 릴 되는 파일들은 상대적으로 비트레이트가 낮습니다. 이 경우 Sonarr가 1080p를 1080p로 인식하지 않고 SDTV, HDTV등으로 처리해버려 모니터링 대상에서 제외되는 경우가 비일비재합니다.
꼭 애니메이션이 아니더라도, OTT이전 시절의 예능이나 드라마도 동일한 특징을 가지고 있습니다(특히 국내).
그래서, Sonarr는 모든 화질을 선택해 준 뒤, Custom Formats과 Release Profiles를 좀 더 적극적으로 활용하는 식으로 사용하고 있습니다.

Custom Formats을 위한 키워드는 조금 다릅니다. 따라서 위의 Radarr쪽 링크 말고 이 링크를 타고 가셔야 합니다.
감독판, IMAX 등의 종류가 있는 영화와는 다르기 때문에 상대적으로 아래처럼 단촐한 부분도 있고,

Anime관련 키워드들도 등장합니다.

요즘같은 OTT시대에 릴 되는 WEB-DL 드라마 파일들은 대부분 DD+에 해당하고, 애니메이션 블루레이 원본의 경우 TrueHD나 DTS로 릴되는 영화와는 달리 대부분 FLAC으로 릴 되기 때문에 해당 키워드들은 필수로 사용해주시는 것이 좋습니다.
Release Profiles
Radarr와 완전히 동일하므로 기능 설명은 생략하겠습니다.
실제 Sonarr를 사용하다보면 Radarr보다 Release Profiles 기능을 좀 더 적극적으로 사용하게 됩니다. 그 이유는, 1~2개의 파일로 끝나는 영화와 달리 드라마나 애니메이션의 경우 8부작, 16부작 등 여러 개의 연속된 파일로 이루어지는데, 릴 그룹을 지정해주지 않으면 여러 릴 그룹의 파일을 짬뽕으로 받게 되기 때문입니다.
또한, 해외 드라마의 경우 당연히 OTT자막이 포함된 파일을 선호하게 되는데(한국어 자막), 어떤 릴 그룹은 English 외의 다른 언어자막을 제거해버리기도 하기 때문에, 릴 그룹을 정해주는 것이 좋습니다.
다운로드 & 라이브러리 관리하기
Radarr와 동일합니다. 단, 영화와 달리 여러 화로 이루어진 TV프로그램의 특성 상 시즌별/파일별로 나누어 모니터링 대상을 지정/해제 할 수 있게 되어 있습니다.

또한, Edit창에서 Series Type을 선택할 수 있도록 되어 있습니다. 일반적으로 드라마 등의 경우는 시즌-에피소드의 네이밍 규칙을 갖지만(ex. S01E05),
애니메이션의 경우 릴 규칙이 상대적으로 비정형화되어 있습니다. TVDB의 시즌 정보를 따라가는 경우도 있지만, 시즌 없이 1화부터 숫자만 +1씩 늘려가는 경우도 있습니다(ex. E1176).
같은 작품이어도 릴 그룹마다 넘버링 규칙이 다른 경우가 많아 까다로운 경우가 많습니다. 제 기준 가장 최근 블리치:천년혈전이 그랬습니다.
그럴 경우 이 옵션을 설정해주면 Sonarr가 비교적 더 모니터링을 잘 진행할 수 있게 됩니다.

Library Import기능 또한 동일합니다. Sonarr가 제대로 매칭시키는지 확인 후 Import를 수행하면 됩니다.

알람 설정
Radarr와 동일하므로 생략합니다.
국내 예능의 경우 Sonarr로 검색 및 파싱이 잘 이루어지지 않습니다. 대체 검색어 설정이 이루어지지 않은 것도 있고, 국내 사이트 피드를 파싱하는 과정에서 아래처럼 한글이 깨지는 경우가 많아 검색이 잘 안 되기 때문입니다.

국내 예능 및 프로그램을 검색하기 위해선 Tsharp를 사용하는 것이 가장 좋지만, 최근 RSS Feed관리가 잘 안되어 추천드리기 어렵습니다…ㅠ_ㅠ
다음 글에서는 음악 라이브러리 관리 도구인 Lidarr에 대해 설명해 보겠습니다.