Jakiś czas temu opisywałem jak z użyciem feedów RSS zautomatyzować pobieranie seriali w transmission. Wówczas w tym nieco krótkim howto użyłem programiku FlexGet, który to na podstawie feedów RSS pobiera interesujące nas seriale. Obecnie program uległ znacznym modyfikacjom i postanowiłem się mu przyjrzeć ponownie.
FlexGet to programik napisany w Pythonie, który umożliwia pobieranie plików.torrent, ,nzb, podcastów z różnego rodzaju źródeł jak RSS, html czy cvs. Wersja 1.0 tego programu współpracuje z trasmission, deluge oraz sabnzbd.
Wszystkie czynności jakie w tym opisie są przedstawiane wykonywane są na dystrybucji Archlinux, która działa na platformie Intel Atom N270(D945GSEJT).
Instalujemy Pythona oraz setuptools
pacman -Sy python setuptools
Pobieramy najnowszą wersję FlexGet, oraz instalujemy ją za pomocą easy_install. Jednocześnie instalujemy transmissionrpc, czyli Pythonowy moduł do współpracy z transmission.
wget http://download.flexget.com/unstable/FlexGet-1.0r1197-py2.6.egg sudo easy_install FlexGet-1.0r1197-py2.6.egg sudo easy_install transmissionrpc
Po zainstalowaniu FlexGet należy ustawić program, aby pobierał interesujące nas pozycje. Konfiguracja pliku config.yml zbudowana jest w oparciu o język YAML.
feeds:
shows:
rss: http://www.ezrss.it/feed/
series:
settings:
720p:
quality: 720p
720p:
- Lost
- Fringe
- V:
set:
addpaused: yes
set:
path: /home/artek/torrent/test/%(series_name)s
transmissionrpc:
host: 127.0.0.1
port: 9091
Powyższa konfiguracja na podstawie ogólnie dostępnych feedów pobiera interesujące nas pozycje w jakości 720p. Bardzo praktyczną opcją jest „path”, gdyż powoduje to że nasze pozycje są sortowane na podstawie tytułu. Opcja addpaused dodaje pozycje do kolejki jako zatrzymana. Możliwości pluginu series są znacznie większe, zachęcam do zapoznania się z dokumentacją.
Przedstawiona wyżej konfiguracja to jedynie namiastka funkcjonalności FlexGet. Program ma jeszcze wiele możliwości jak np. grupowanie, informowanie mailem o występowaniu naszej pozycji w feedach, czy uruchamiania zewnętrznego skryptu.
Na koniec przedstawię nieco inną konfiguracje. Mianowicie jak korzystać z dwóch różnych feedów oraz innych sposobów ściągania(bittorent i usenet).
presets:
tv_bt:
series:
settings:
720p:
quality: 720p
720p:
- Lost
- Caprica
- V
set:
path: /home/artek/seriale/%(series_name)s
transmissionrpc:
host: 127.0.0.1
port: 9091
tv_nzb:
series:
settings:
720p:
quality: 720p
720p:
- FlashForward
- Fringe
- Lie to Me
set:
path: /home/artek/usenet/nzb
download: yes
feeds:
shows_torrent:
rss: http://www.ezrss.it/feed/
preset: tv_bt
shows_nzb:
rss: http://www.tvnzb.com/tvnzb_new.rss
preset: tv_nzb
Tutaj używam pluginu preset, dzięki któremu grupujemy nasze pozycje w celu przypisania ich do konkretnych feedów. Zastosowanie pluginu preset zapobiega tworzeniu kilku plików konfiguracyjnych.
Program FlexGet dostarcza też ciekewe funkcji sprawdzania naszej konfiguracji:
- zweryfikowanie poprawności pliki config.yml
flexget --check
- przetestowanie naszej konfiguracji
flexget --test
- tryb verbose – czyli pokazuje w sposób szczegółowy log programu
flexget -v
Oczywiście istnieje możliwość łączenia powyższych parametrów.
Nie trzeba chyba wspominać, że do zautomatyzowania FlexGet można użyć crona. Należy podać plik z konfiguracją używając parametru -c, -q oznacza, że program nic nie wyrzuca w konsole.
*/30 * * * * flexget -q -c /home/artek/.flexget/config.yml




