Bazarr는 Sonarr와 Radarr의 미디어를 탐지하여 설정한 언어의 자막을 다운받아주는 도구입니다. 소개는 하겠지만… 사실 한국어 자막은 개별적으로 구해지는 것이 더 잘 구해지기 때문에 큰 의미는 없음을 미리 알려드립니다 ㅠ_ㅠ.
Unpackerr는 다운로드 받아진 파일들 중 분할압축이 되어 있거나 기타 다른 방식으로 압축되어 있는 경우 이를 해제(extract)해주는 역할을 합니다. 비공개 토렌트 중에서는 간혹 분할압축된 파일로 시드를 만드는 경우가 있는데 이럴 때 유용합니다.
Bazarr
초기 설정
Compose와 .env
는 아래에 해당합니다.
torrent_bazarr:
image: linuxserver/bazarr:latest
container_name: torrent_bazarr
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TZ}
volumes:
- ${CONFIG}/bazarr/config:/config
- ${LIBRARY}:/mnt/media
- ${DOWNLOADS}:${DOWNLOADSMOUNT}
restart: unless-stopped
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
접속 주소는 TrueNAS IP:6767
이며, 접속하면 바로 아래와 같은 화면을 만날 수 있습니다.

먼저 중간의 Security 항목의 Authentication에서 로그인 정보를 설정해 주세요. Basic은 HTTP기반의 팝업창, Form은 별도 로그인 폼입니다. Sonarr등과 동일합니다. 저장을 완료했다면 상단의 Save를 클릭해 줍니다.

좌측의 Settings – Sonarr 탭에서 Enabled를 클릭한 뒤 Sonarr의 API 키를 복사 붙여넣기 하고 Test를 클릭합니다.

아래처럼 버전이 출력되면 정상적으로 연결된 것이니 상단의 Save를 클릭해 저장해 줍니다.

Radarr도 마찬가지로 진행해 주세요. 그러면 좌측 메뉴에 여태까지 없었던 메뉴들이 생긴 것을 보실 수 있습니다.

Languages & Provider 설정
Settings – Languages 탭으로 이동하면 아래와 같은 화면을 볼 수 있습니다.

우리가 필요한 건 보통 한국어 자막이니까, 한국어 자막으로 셋팅을 해보겠습니다.
Languages Filter는 여러 언어를 검색해서 선택하도록 되어 있습니다. 여기서 Korean을 선택해 줍니다.

Languages Profile에서 Add New Profile을 클릭합니다.

아래와 같이 입력해주고 Save를 클릭합니다.

새로 추가되는 영상들에 대해 기본으로 한국어 자막을 찾게 하고 싶다면 아래의 Series와 Movies의 토글을 켜주고 방금 설정한 Korean을 클릭하면 됩니다.

다 설정했다면 역시 Save를 클릭해 줍니다.
Settings – Providers로 이동해 Enabled Providers에서 +를 클릭합니다.

선택지가 많은 편인데, 이 글에선 예시로 SubDL을 이용해보겠습니다. SubScene이 사라지고 나서 이를 승계한 곳입니다.

SubDL을 이용하기 위해선 아래처럼 API Key가 필요합니다.

SubDL로 이동 후 회원가입을 진행합니다. 이후 우측 상단에서 API메뉴를 클릭합니다.

그러면 아래처럼 자신의 API Key를 얻을 수 있습니다.

해당 API Key를 Bazarr에 복사 붙여넣기 하고 Enable을 클릭하면 아래처럼 Subdl이 추가된 것을 확인할 수 있습니다.
이후 Save를 클릭해 저장해줍니다.

다운로드
모든 설정이 완료되었다면 Bazarr는 Sonarr와 Radarr의 라이브러리로부터 한국어 자막이 없는 미디어를 식별하고 Wanted에 추가합니다.
Bazarr는 이를 주기적으로 검색하고 다운로드해서 미디어 폴더에 추가해 줍니다. 수동으로 검색하려면 Search All을 클릭하면 됩니다.

알람 설정
Bazarr 역시 Telegram을 통해 쉽게 알람을 전송할 수 있습니다.
Settings – Notifications로 이동해 +를 클릭해서 Telegram을 찾아줍니다.

Bot Token과 Chat ID를 요구하는 일반적인 경우와 달리 URL을 직접 넣게 되어 있습니다.

아래처럼 URL을 입력하면 됩니다.
tgram://{Bot Token}/{Chat ID}
Bot Token과 Chat ID를 확인하는 방법은 쉽게 검색할 수 있으니 생략하겠습니다. 이를 다 채워넣고 Test를 클릭하면 아래처럼 메세지를 받을 수 있게 됩니다.

작동을 확인했다면 저장하고 마무리하시면 됩니다.
Unpackerr
Unpackerr는 전체 stack에 포함될 이유가 없습니다. 단순히 압축해제만 반복해서 수행하기 때문에 VPN망을 이용할 필요도 없기 때문에, 필요에 따라 작동 중지할 수 있는 편이 더 편하므로 compose파일을 따로 구성하는 것이 더 낫습니다.
현재 토렌트 자동화를 위한 docker-compose.yml의 위치는 아래와 같습니다.
/mnt/RN428/arr/compose/docker-compose.yml
기억이 안나시면 첫 글을 다시 참조해 주세요.
이 위치에 공식 docker-compose.yml을 다운받아 unpackerr.yml로 이름을 변경하겠습니다.
다른 폴더에다가 다운받아 이름을 그대로 쓰면 되지 않는가? 하는 의문이 있으실 수도 있는데, 이 폴더에 있는 .env
파일을 함께 사용하기 위함입니다.
fentablog@rn428:/mnt/RN428/arr/compose$ wget https://raw.githubusercontent.com/Unpackerr/unpackerr/main/examples/docker-compose.yml -O unpakcerr.yml
다운이 완료되었으면 .env
를 참조하도록 몇 가지 편집을 해야 합니다. 참조할 .env
의 내용은 아래와 같습니다.
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
nano를 이용하셔도 되고 저처럼 SMB공유를 활성화 해 놓으셨다면 Visual Studio Code로 보실 수도 있습니다. 편하신 방법으로 보시면 됩니다.
이해를 돕기 위해 Visual Studio Code의 Compare기능을 이용하여 보여드리겠습니다.
제일 윗 부분입니다.

services
이름과 container_name
을 torrent_unpackerr로 수정한 것은 선택사항입니다.
volumes
탭은 qBittorrent가 다운로드 받는 폴더를 매칭해주어야 합니다. 전체 스택에서 이를 통일하기 위해 .env
에서 ${DOWNLOADS}
와 ${DOWNLOADSMOUNT}
로 값을 통일하고 있었죠? 이것을 이용해 수정해 준 겁니다.
또한, 원할 땐 끄고 싶으므로 restart
옵션을 unless-stopped
로 변경했습니다.
user: ${PUID}:${PGID}
는 지우고 environment
에 PUID와 PGID를 별도로 추가했습니다. 이 둘의 작동방식은 다르기 때문에 이렇게 대체할 수 있는 옵션은 아니지만, 권한 설정 이슈로 로그파일 생성이나 압축 파일 해제 과정에 문제가 생길 수 있어 이렇게 수정했습니다.
networks
항목에 추가한 torrent_default 값은 맨 처음 스택의 Gluetun(VPN)에서 생성한 네트워크입니다. 이 항목을 지정하지 않으면 전체 스택 내부에 있는 Sonarr나 Radarr, Lidarr 등에 접근할 수 없습니다.
LOG파일의 위치 또한 ${DOWNLOADSMOUNT}
로 수정하여 제대로 된 위치에 생성될 수 있도록 해 줍니다.

environment
하위에 Sonarr, Radarr, Lidarr 설정 항목이 있습니다.
각각의 접속 주소(URL)은 http://gluetun:{PORT}
로 수정해야 합니다. 모든 포트포워딩은 gluetun이 하고 있기 때문입니다.
API_KEY는 그 동안 이 글을 따라오시는 동안 지긋지긋하게 봤으니, 알아서 가져다 붙여놓으시고,
PATH는 전부 다운로드 받은 파일들이 있는 위치를 뜻하므로 모두 ${DOWNLOADSMOUNT}
로 통일합니다.

UN_FOLDER_0_PATH
와 UN_CMDHOOK_0_COMMAND
항목의 경로 중 /downloads를 역시 ${DOWNLOADSMOUNT}
로 수정해 줍니다.
그리고 최하단에 제일 중요한 것을 입력해 주어야 합니다.
networks:
torrent_defualt:
external: true
이 3줄을 입력해야 torrent_default라는 네트워크가 unpackerr.yml의 외부 네트워크임을 알 수 있고, 이걸 알아야 unpackerr가 해당 네트워크를 찾아 gluetun과 통신할 수 있습니다.
이후에도, 토렌트 스택 내부의 컨테이너와 통신할 필요가 있는 경우 이와 같은 요령으로 compose를 작성해 주시면 됩니다.
작성을 모두 완료했다면, TrueNAS의 Apps에서 Unpackerr를 띄워줍니다.

이후로는 출력되는 로그를 통해 unpackerr가 일을 열심히 하는지 파악하실 수 있습니다(별도의 WEB UI등이 없는 데몬 형식의 도구입니다).
로그 출력 경로는 compose에 설정한 대로 다운로드 경로에 생성됩니다.
