FlexGet은 RSS 등 각종 Input 소스를 분석하여, Filter 부합하는 파일을 transmission-bt, deluge 등 토렌트 프로그램으로 자동 다운로드 해주는 프로그램입니다. 실은 토렌트 말고도 http, ftp 등으로 직접 다운로드할 수 있습니다.

한편 deluge는 토렌트 데몬(서비스)인데, 서버 상에서 돌아가는 토렌트 프로그램 정도로 생각하면 적당합니다. transmission-bt와 동일한 역할을 하는데, 서로 장단점이 있습니다. 2017년 현재 토렌트 데몬만 봤을 때 대세는 transmission-bt인 것 같지만, FlexGet과 함께 사용할 경우 deluge가 좀 더 강력합니다.


0. 사전 준비 및 참고자료

본 글을 FlexGet과 Deluge가 이미 설치되어 있고, 기본적인 설정이 완료된 것을 가정하고 작성했습니다. 두 프로그램의 설치 및 기본설정 방법은 아래 글을 참고하시면 됩니다.

- Deluge Daemon 설치 + Web UI 활성화 
- 토렌트 데몬 deluge 옵션 설정하기
- FlexGet 설치 및 자동실행 설정 
- FlexGet 설정파일 만들기 1 - 동작 확인을 할 수 있는 최소한의 설정
- 주기적으로 FlexGet 자동 실행하기 - cron, scheduler



1. "입력" : FlexGet에 RSS 피드 등록하기

우선 FlexGet의 "할 일"은 "입력", "필터", "출력"으로 구성된다는 것을 다시 한번 상기합시다. RSS 피드는 여기서 "입력"에 해당합니다. 지난 글(FlexGet 설정파일 만들기 1)에서는 아이튠즈 트레일러 RSS를 다운로드 링크가 포함된 엔트리로 변환해주는 전용 플러그인을 사용했습니다만, 이번에는 다운로드 링크가 이미 RSS에 포함되어 있을 때 사용하는 범용 플러그인을 사용합니다.

우선 이 글에서 사용하는 "할 일"의 이름은 torrent_rss이며, "입력" 까지만 정리해보면 아래와 같습니다.

1
2
3
4
5
6
tasks:
  torrent_rss:
    # "입력"
    inputs:
      - rss: https://RSS피드 주소 1
      - rss: https://RSS피드 주소 2
cs

여러개의 RSS 피드를 사용할 경우 - rss: 피드주소 형식으로 한 줄씩 추가해주시면 됩니다. "두칸 규칙" 잊지 마시구요.


만약 하나의 RSS 피드만 사용한다면 아래처럼 inputs 플러그인 없이 바로 rss 플러그인을 사용할 수 있습니다. inputs 플러그인의 역할이 하나의 "할 일"에 여러개의 동일한 "입력" 플러그인을 사용할 수 있게 해주는 것이기 때문입니다.

1
2
3
4
tasks:
  torrent_rss:
    # "입력"
    rss: https://RSS피드 주소
cs



2. "필터" : Regexp 플러그인 사용하기

이전 글에서 다룬 대로 regexp 플러그인을 사용해서 필터를 구성해줍니다. 아직까지는 아주 기초적인 정규식 규칙만을 사용합니다. 정규식은 조금 더 알아두는 것이 좋습니다.

1
2
3
4
5
6
7
8
9
10
11
tasks:
  torrent_rss:
    # "입력"
    inputs:
      - rss: https://RSS피드 주소 1
      - rss: https://RSS피드 주소 2
    # "필터"
    regexp:
      accept:
        - '프로그램명1.*릴그룹'
        - '프로그램명2.*릴그룹'
cs

2개의 RSS 피드를 이용해서 "엔트리"를 만들고, "엔트리"의 "필드" 중 하나라도 accept 조건에 걸리는 "엔트리"는 "출력"을 실행할껍니다.



3. Deluge 연동: https://flexget.com/Plugins/deluge

Deluge 연동은 "출력" 플러그인으로 deluge를 선택하는 것에 해당합니다. deluge 플러그인에는 아주 다양한 옵션이 있는데, 기본적인 용도로는 deluge RPC 계정/암호 정보를 기록해주는 것으로 충분합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tasks:
  torrent_rss:
    # "입력"
    inputs:
      - rss: https://RSS피드 주소 1
      - rss: https://RSS피드 주소 2
    # "필터"
    regexp:
      accept:
        - '프로그램명1.*릴그룹'
        - '프로그램명2.*릴그룹'
    # "출력"
    deluge:
      username: 'deluge RPC 계정'
      password: 'deluge RPC 암호'
cs


한편, FlexGet을 실행하는 사용자가 Deluge의 사용자가 같으면, deluge RPC 접속 시 로그인 계정/암호 설정 없이 자동으로 접속되니까 좋습니다.

물론 FlexGet과 Deluge의 사용자가 다를 경우 Deluge Daemon 설치 + Web UI 활성화를 참고하여 auth 파일에 계정/암호를 생성해서 사용하면 됩니다. 다만, FlexGet log에 deluge RPC 계정/암호가 적나라하게 test로 드러나는 것이 그냥 기분이 좀 나쁠 뿐입니다. 뭐 Deluge RPC 계정/암호가 그리 중요하지는 않습니다만..

이렇게 deluge와 flexget이 같은 사용자 계정으로 실행될 경우 username과 password를 생략할 수 있습니다.



4. 프로그램 별 다운로드 디렉토리 지정하기

아마도 PLEX나 EMBY 처럼 미디어 서버를 구축하신 분들은 단순히 deluge의 complete 디렉토리로 영상을 다운받기 보다는 미디어 서버의 데이터 디렉토리로 다운로드 받은 파일이 들어가주기를 바랄껍니다. 아래 FlexGet "필터" 설정 시 조금만 신경 쓰면 아주 간단히 자동화할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tasks:
  torrent_rss:
    # "입력"
    inputs:
      - rss: https://RSS피드 주소 1
      - rss: https://RSS피드 주소 2
    # "필터"
    regexp:
      accept:
        - '프로그램명1.*릴그룹'
            set:
              movedone: /media/모나코 방송/프로그램 1 디렉토리
        - '프로그램명2.*릴그룹'
            set:
              movedone: /media/팔라우 방송/프로그램 2 디렉토리
    # "출력"
    deluge:
      username: 'deluge RPC 계정'
      password: 'deluge RPC 암호'
cs

내용을 풀어보면 이러합니다. accept 조건에 부합하는 엔트리가 있을 경우 set 플러그인으로 deluge의 옵션인 movedone을 설정하는 것입니다. 그러면 나중에 "출력" 단계에서 deluge 플러그인이 movedone 옵션을 읽어와서 deluge 데몬에게 시드파일과 함께 넘겨줍니다.

물론 deluge 플러그인의 옵션이니 "출력" 단계에서 지정하는 것이 자연스럽고, 조금 더 고급 기능을 사용하면 불가능하지 않습니다. 그러나 모든 프로그램에 대해서 통일한 규칙을 만들기 위해서는 우선적으로 디렉토리 구조 역시 통일된 논리 구조를 갖추어야 하고, 하루만에 끝내기 부담스러운 FlexGet 고급 기능과 정규식을 습득해야 합니다. 따라서 오늘은 진입장벽이 낮은 set을 사용하여 RSS와 토렌트 연동을 완료하여 활용하고, 고급 기능은 천천히 배워서 적용하면 더 좋을 것 같습니다.

한편 transmission에서 사용하는 path 옵션이 deluge에도 있긴합니다만, deluge의 path는 다운로드 중 사용하는 임시 디렉토리를 의미합니다. 쓸 일이 없지요. 이외에도 아주 많은 세세한 옵션이 있습니다만 그건 나중에 별도로 정리해보겠습니다.



5. Deluge vs Transmission

일반적인 용도의 토렌트 클라이언트 기능으로만 보면 두 프로그램은 비슷합니다. 데스크탑, 안드로이드용 Remote UI의 기능은 Transmission이 조금 나은 것 같습니다. Remote UI 종류도 많구요.

FlexGet과 연동 시에도 두 토렌트 클라이언트는 그리 큰 차이가 없습니다. deluge 플러그인이 조금 더 많은 옵션을 제공하지만 핵심 기능은 둘 다 빵빵합니다.

유일한 차이는 Deluge와 Transmission의 complete 폴더 기능에 있습니다. Transmission의 경우 다운로드 디렉토리를 수동 지정하면 임시 디렉토리 옵션을 무시하고 바로 다운로드 디렉토리에 파일을 생성합니다. 반면 deluge는 임시 디렉토리에서 다운로드를 완료한 후 목적 디렉토리로 파일을 옮겨줍니다. 대개는 별 의미가 없을껍니다만, PLEX 미디어 서버와 함께 사용할 경우 좀 신경이 쓰입니다. 새 파일이 생기는 순간부터 PLEX는 이를 분석하려고 시도하는데, 다운로드가 완료될 때 까지는 transmission이 파일을 잡고 놓아주지 않기 때문에 PLEX가 파일 분석에 실패하고, 이를 무한반복합니다.

상기 이유로 PLEX 미디어 서버를 사용하신다면 Deluge를 추천합니다. 이외의 경우 Transmission이 편한 것 같습니다. EMBY는 안써봐서 잘 모르겠네요. :)