FlexGet, czyli automat do pobierania plików

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
Ten wpis umieszczono w kategorii Serwer plików i otagowano jako , , , . Możesz dodać go do zakładek permalink. Dodaj komentarz lub dodaj odpowiedź (trackback): Trackback URL.
  • Facebook
  • Digg
  • RSS Feed
  • Twitter

Skomentuj

Twój adres email nie zostanie opublikowany i nie będzie rozpowszechniany. Wymagane pola są oznaczone *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Turn on pictures to see the captcha *

Switch to our mobile site