Raspberry + Transmission + Flexget

2015-12-25technologia

Az van, hogy lusta ember vagyok. Persze beoltva infromatikus (a szó amit utálok, ha egy mondatban van velem) vénával, szóval a legrosszabb kombó. De jelen esetben szerencsés is. Általában elmondható rólam, rólunk, hogy sok sorozatot nézünk, igazából az elmúlt évben csak azt. Néha-néha egy film, de a gyerek és munka mellett este már abszolút csak egy 20-40 perces epizódra van erőnk, kedvünk (a tévére elalvásról szerencsére leszoktattam a páromat).

A Raspberry Pi bevezetésével már így is sokat finomodott a film/sorozat nézési technológia. Semmi pendrivera másolgatás és hasonlók. A gépre letöltjük, onnan nézzük. Amióta OSMC van rajta, és a Kodival vetítünk, a feliratokat sem kell "kézzel" letölteni, és odarakni hálózaton, maximum ha valami gebasz van. Szóval a Pi, és a Transmission webes felülete jó ideje bevált csapat, imádom. De a sorozatoknál már untam az ismétlődő munkát. Reggel letölteni a torrentet, felmásolgatni. Fúj. Van ennél biztosan jobb megoldás is.

Azt tudtam, hogy létezik módszer arra, hogy RSS alapján letöltse a kliens a kívánt dolgokat, de mindig túl bonyolultnak gondoltam, és persze lusta volta voltam jobban utána olvasni. Most azonban már tényleg elegem lett, "az én időm drága erre" kiálltás után nekiláttam a megoldás megkeresésének. Először is arra gondoltam (mint kiderült félig-meddig hibásan), hogy jó lenne egy olyan szolgáltatás, ahol össze tudom kattogtatni a sorozatokat, és elkészíteni belőle a saját, testre szabott RSS feedet, amivel már lehet táplálni a klienst. Az alapötlet jó, és számtalan ilyen szolgáltatás van. Én régebben a showRSS-t használtam, és még most is működik, sőt, most kap majd egy kis pofozást a felülete, szebb, és talán jobb lesz. Itt tehát fel tudjuk fenni a sorozatokat, amiket követünk, tudunk minőséget állítani neki, szóval totál testreszabott feedet kapunk. Na most kiderült, hogy ez totál felesleges.

Persze lehet használni a testre szabott feedet, de nem muszáj. Van ugyanis a Flexget nevű csoda, amit kifejezetten ilyen célra készített, bármit (torrent, podcast, sorozat, film, stb) automatizáló alkalmazás. Nincs más dolgunk, mint feltelepítjük, majd kényünk-kedvünk szerint konfiguráljuk. De tényleg. Nagyon sok oldalról megfogható az az egyszerű feladat, hogy itt vannak a sorozataim, töltsd le őket. Ahogy mondtam, az előbbi saját feed összerakása félig-meddig felesleges volt, mert a Flexget tud saját maga is szűrni. De még mennyire. Nemcsak sorozatra, hanem minőségre, méretre, kiskutyára, de talán még kiscicára is. Tehát a showRSS szép és jó, de totál felesleges. Elég bekötni egy masszívabb oldal TV rss feedjét (pl.: KAT), és majd a Flexget configban eldönteni, hogy mit, és milyen minőségben akarunk nézni. Így persze, ha új sorozatot akarunk hozzáadni a letöltési sorunkba, fel kell sshzni az eszközre, ami futtatja a Flexget-et, de azért ez bőven túlélhető feladat. De aki szeretné, használhatja a saját feedes megoldást is, ekkor a Flexgettel nem kell szűrni sorozatra, hanem mindent letöltetni.

A Flexget iszonyat sok mindent tud, és sok fajta klienssel tud kapcsolatba lépni, de én igazából csak pár dolgot állítottam be / fogok beállítani:

  1. sorozatok neve, hogy miket akarok nézni
  2. standard minőség (semmi 720p, 1080)
  3. a sorozat nevének megfelelő mappába töltse le a dolgokat
  4. a letöltést maga egyébként a Transmission végzi
  5. ha új dolog kerül be, dobjon egy értesítést a telefonra

Ugorjunk akkor gyorsan a telepítéshez. A leírásom feltételezi azt, hogy valamennyire értesz a linuxhoz, és mondjuk a Transmission már fel van telepítve (gui nem kell, csak a deamon elég nekünk). Nem lesz túl bonyolult:

sudo apt-get install python-pip

sudo pip install flexget

sudo pip install transmissionrpc

Ezek után ellenőrizzük, hogy tényleg sikeres volt-e a telepítés:

flexget -V

Nekem persze elszállt, de rövid utánaolvasás után kiderült, hogy orvosolható ez is:

sudo pip install --upgrade flexget

Ezek után már a Flexget működőképes, már csak egy config fájlt kell csinálni neki. Ezt több helyre rakhatjuk, mivel nekem Transmission van fent, odaraktam a configot is, /etc/transmission-deamon/config.yml.

A config fájl formtuma YAML, ami elsőre elég undorító, ugyanis nincsen semmilyen tagolás, hanem csak space-ekkel és behúzással válasszuk el a különböző blokkokat. A fő blokkban, a templatesben szabhatjuk meg, hogyan dolgozza fel az RSS fájlokat. Ezeket a task részen adhatjuk meg, akár többet is. Nekem van még egy harmadik is, azt csak azért nem másoltam be, mert privát tracker, és benne van a saját kulcsom is. Ezt egyébként alacsony prioritással futtatom, mert első sorban a két open trackerrről tölti le, amit kell. (A templates - tv blokkban a private_torrents azért is kell, mert ha ezt nem állítjuk yes-re, nem fogja letölteni a privát trackerről a fájlokat.)

A következő block a pushbullett, ami egy tök jó, ingyenes szolgáltatás többek között arra is, hogy a telefonunkra értesítést küldjünk. Nem kell más, csak telepíteni a telefonra az appot, regisztrálni, és az API kulcsunkat a konfigurációs fájlba elmenteni. A sorozatokhoz kapcsolodó beállítások a series blokkban vannak. Itt állíthatjuk be, hogy hova töltse le a fájokat a Transmission, milyen minőségben, és persze miket. A Transmission egyértelmű, általában a default beállításokkal telepített Transmissiont nem kell konfigurálni, tud rá csatlakozni a Flexget, ha megadjuk a felhasználó nevet és jelszót.

templates:

tv: private_torrents: yes

pushbullet:
  apikey: PUSHBULLET\_API\_KEY
  title: "\[F\] {{series\_name}} {{series\_id}}"
  body: "{{title}}\\n\\nSize: {{content\_size}}MB"

series:
  settings:
    tv:
      exact: yes
      propers: 3 days
      quality: hdtv <720p
      set:
        path: /media/USB-HDD/SOROZATOK/{{series\_name}}
  tv:
    - Arrow
    - Big Band Theory
    - Game of Thrones
    - The Affair
    - The Knick
    - The Flash
    - The Big Bang Theory
    - American Horror Story
    - Greys Anatomy

transmission:
  enabled: yes
  host: localhost
  port: 9091
  username: TRANSMISSION\_USER
  password: TRANSMISSION\_PASS

tasks: extra: priority: 1 rss: http://extratorrent.cc/rss.xml?cid=8&type=last template: tv

kat: priority: 5 rss: https://kat.cr/tv/?rss=1 template: tv

Sikeres futtatás esetén valami hasonlót kéne látnunk:

Screen Shot 2015-12-25 at 15.45.50

(kattintásra nagyobb lesz a kép)

A Flexget egyébként rendkívül okos, szépen kiszűri a szemetet, megfelelő dolgokat tölt le, a konfig alapján. Egy epizódot nem tölt le kétszer, tudja, hogy mi van már leszedve, mi nincs. Ha részletesebb információt szeretnénk kapni, akkor a --verbose kapcsolóval is futtasuk.

A Flexget-et viszonylag könnyen működésre bírtam, de egy probléma volt a Rasberryvel, illetve pontosabban az OSMC-vel, hogy a cron nem futott le soha. Ebbe a problémába sokan belefutottak már, ahogy neten olvastam, de végül én csak a következő módon tudtam megoldani:

service cron start

Ezek után már működött a cron, csak be kellett állítani a bejegyzést:

crontab -e

Majd fel kell venni a megfelelő sort:

@hourly /usr/local/bin/flexget execute --cron

Természetesen vehetjük kisebbre is a futtatási időt, de nem érdemes. Ha debuggolni akarjuk, akkor a log fájlt szintén az /etc/transmisson-deamon könyvtárban találjuk, flexget.log néven. Első körben ennyi, persze lehet még sokkal-sokkal kifinomultabb flexget configot csinálni, akár fájl átnevezéssel, normalizálással, stb. Sőt, akár csinálhatunk email értesítést is, vagy napi összefoglalót a letöltött állományokról. Egy következő postban majd valószínűleg írok róla.

Pár hasznos link: