Flexget + Rtorrent 3

Skrevet af: Patrick Kerwood

Flexget er et program til at overvåge RSS feeds fra torrent trackers og downloade de angivet torrents til en download folder. Flexget har rigtig mange konfigurations muligheder, filters og plugins som fungere rigtig godt.

Flexget kan arbejde sammen med Transmission og Deluge, men jeg vil ikke anbefale disse to, da de efter min egen mening bruger for mange resourcer og er for ustabile, sammenlignet med rtorrent.

Flexget bruger YAML til konfigurations filen. Det er faktisk ret simpelt, det vigtigtste er at bruge 2 stk. “SPACE” til hver sektion og ikke “TAB”.

Jeg vil ikke gennemgå installatonen af Flexget, da deres Wiki har en rigtig god installations guide.
Du kan finde den her. http://flexget.com/wiki/Install

Rtorrent kan du installere gennem mit script, som du finder her. http://linuxbloggen.dk/rtorrent-rutorrent-auto-install-script

Jeg vil i denne guide koncentrere mig om “series” plugin’et, der bruges til serier.

Konfiguration

Start med at oprette din .flexget mappe i din rtorrent brugers home folder.
mkdir ~/.flexget

Opret/åben din Flexget konfigurations fil og begynd at sammen sætte din konfiguration.
nano ~/.flexget/config.yml

Nedenstående er en minimal konfiguration og resulterer i at alle afsnit af “Pioneer One” og “Some Series” bliver downloaded. Flexget holder en database som sørger for, kun at downloade den samme episode én gang. Dvs. at kommer der episode 22 af “some series” flere gange, evt. i forskellige kvaliteter, vil Flexget kun downloade den første tilgængelige.

tasks: – Opgaverne Felxget skal udfører.
task name: – Navnet på opgaven og er valgfrit.
rss: – RSS feed fra din tracker.
series: – Series plugin’et efterfulgt af en liste med dine serier.
download: – Stien hvor Flexget skal downloade torrent filen til.

Jeg vil nu tilføje forskellige indstillinger, for at gøre det lidt mere avanceret.
For at få Flexget til at kigge på flere trackers efter de samme torrents, kan man tilføje inputs plugin’et. På den måde vil den downloade fra den tracker der først får serien lagt op.

quality er et filter til at filterer episoderne i opløsning, source, codecs og lyd. I dette tilfælde vil jeg gerne downloade “almindlige” HDTV releases, men jeg vil ikke have dem i 720p eller højere. Derfor tilføjer jeg hdtv for at acceptere alle HDTV releases og <720p for at bestemme at kvalitet skal være mindre end 720p. quality skal tilføjes under serien.
Du kan se alle quality betegnelser her. http://flexget.com/wiki/Plugins/quality

Engang imellem kommer der repacks og propers, hvis der er noget galt med det første release. Flexget vil fra standard ikke downloade repacks og propers, med mindre du anvender propers.

Det sidste plugin jeg vil tilføje er exec, som eksekver en kommando når Flexget acceptere et download. Det vil jeg benytte til at sende push meddelelser til min mobil. Selve opsætningen og scriptet til push meddelelsen kan du finde her. http://linuxbloggen.dk/push-meddelelser-pa-mobil-via-linux-cli/

Det er vigtigt du skriver hele stien til pushover scriptet. Ellers bliver den ikke eksekveret.

Hele konfigurationen ser nu således ud.

For at gøre livet lidt nemmere, kan man lave grupper, hvor de samme indstillinger gælder. Under series laver du en settings sektion, og under settings laver du et gruppe navn med indstillinger for den gruppe.

I den nedenstående konfiguration gælder quality og propers for alle serier i gruppen minGruppe.

Hele konfigurationen ser således ud nu.

En sidste detalje jeg vil tilføje er path plugin’et. Hvis du i sammenhæng med rtorrent vil have serien Pioneer One downloaded til en anden mappe, end angivet i download:, skal du bruge path.

For at teste din Flexget konfiguration, kan du kører nedenstående kommando. Den checker konfigurationen igennem for eventuelle taste fejl.
flexget check

Du kan også kører et test-run, uden rent faktisk at downloade eller skrive til databasen og se om dine filtre fungere som de skal.
flexget --test execute

I Flexget kan du eksekvere alle dine tasks på én gang, med flexget execute, eller eksekvere specifikke tasks med flexget execute --tasks tasknavn flexget execute

Når du har tilpasset din konfiguration og er klar til at gå live, kan du enten tilføje flexget til din rtorrent brugers crontab eller lave en schedule i konfigurations filen.

Scheduling med Crontab

Åben crontab.
crontab -e

Tilføj. Husk at skrive hele stien til flexget.
@hourly /usr/local/bin/flexget execute

Eller en specifik task.
@hourly /usr/local/bin/flexget execute --tasks tasknavn

Overstående kører Flexget én gang i timen. Se Crontab basis brug, for flere crontab indstillinger.

Scheduling med Flexget Schedule plugin’et

I stedet for bruge Crontab, har Flexget et plugin til scheduling.
For at kunne bruge Schedule, skal Flexget daemon’en kører. Start den manuelt med nedenstående kommando.
flexget daemon start -d

Den nemmeste måde at få Flexget daemon til at starte automatisk ved boot, er at smide en linje i Crontab.
@reboot /usr/local/bin/flexget daemon start -d

Her er andre, mere komplicerede, måder at gøre det på: http://flexget.com/wiki/Daemon/Startup

Schedules fungere på følgende måde.

at_time kan kun bruges hvis interval er days og on_day kan kun bruges hvis interval er weeks.

Eksempler på overstående.

Link til source: http://flexget.com/wiki/Daemon

Konfigurer rtorrent

At sætte rtorrent op sammen med Flexget er simpelt. I rtorrent’s konfigurations fil, vælger man en “watch” mappe, som rtorrent holder øje med og tilføjer de torrents der bliver smidt i den. Efterfølgende hvis torrent’en bliver slettet i mappen, vil rtorrent også fjerne den.

Åben din rtorrent conf fil.
nano ~/.rtorrent.rc

Linjerne du skal ændre er følgende.
Fjern “#” på de 2 nederste linjer for at aktivere dem og ændre dem efter behov.
# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/home/bruger/Watch/*.torrent
schedule = untied_directory,5,5,remove_untied=

Overstående linjer kigger i Watch mappen, i rtorrent brugerens home folder, hver 5. sekund, og tilføjer/starter nye torrents. Den nederste linje sørger for at fjerne dem igen, fra rtorrent, når torrent filen bliver slettet. På den måde kan du sætte crontab til at slette filer i Watch mappen, efter et bestemt antal dage.

Rtorrent downloader til download mappen som er angivet i rtorrent.rc. Rtorrent kan dog konfigurers, til at downloade, til en anden specificeret mappe, alt efter hvilken mappe den finder torrent filen i.

Hvis du fx. har en serie der hedder “Some Series”, du gerne vil have rtorrent skal downloade til /Downloads/Some.Series, tilføjer du følgende til overstående sektion.

schedule = watch_directory_2,5,5,"load_start=/home/bruger/Watch/Some.Series/*.torrent,d.set_directory=/Downloads/Some.Series"

Bemærk at denne linje hedder watch_directory_2, hvor den første linje hedder watch_directory. Disse skal være forskellige. Ellers vil konfigurationen ikke virke. Så hvis du tilføjer endnu en linje, skal den hedde watch_directory_3.

Opret en mappe i /home/bruger/Watch, der hedder “Some.Series”.
mkdir ~/Watch/Some.Series

Det sidte du skal gøre nu, er at få Flexget til at downloade alle “Some Series” torrents i /home/bruger/Watch/Some.Series. Rtorrent vil registrer torrent filen og downloade den til /Downloads/Some.Series.

Husk at genstarte rtorrent, for at konfigurationen træder i kræft.

For at slette torrent filerne automatisk efter 3 dage, gør du følgende med rtorrent brugeren.
Åben crontab.
crontab -e

Tilføj følgende.
* */2 * * * /usr/bin/find /home/bruger/Watch/ -type f -mtime +2 -delete

Overstående linje kørers hver 2. time. Se Crontab basis brug, for flere crontab indstillinger.

Bemærk argumentet -mtime +2. Den gør at find kun sletter filer der er modificeret, for minimum 72 timer siden, altså 3 dage. Vil man have at den skal slette dem efter 2 dage, skal den hedde -mtime +1. Find sletter også filer i alle undermapper, dvs. også dem i ~/Watch/Some.Series.


20 okt 2013   | Alle · Fildeling · Programmer

3 thoughts on “Flexget + Rtorrent

  1. Pingback: Installer rtorrent - LinuxBloggen.dk

  2. Reply Søren Vassard aug 13,2014 23:33

    Hej. :)

    Jeg er gået i står ved punktet “test”. Når jeg skriver: “flexget –test” er tilbage meldingen: “error: too few arguments”.

    Den skriver følgende:

    rtorrent@Debian:~$ flexget --test
    error: too few arguments
    usage: flexget [-h] [-V] [--test] [-c CONFIG] [--logfile LOGFILE]
                   [--loglevel LEVEL] [--bugreport] [--profile [OUTFILE]]
                   [--debug-warnings]
                    ...

    optional arguments:
      -h, --help            show this help message and exit
      -V, --version         Print FlexGet version and exit.
      --test                Verbose what would happen on normal execution.
      -c CONFIG             Specify configuration file. Default: config.yml
      --logfile LOGFILE, -l LOGFILE
                            Specify a custom logfile name/location. Default:
                            flexget.log in the config directory.
      --loglevel LEVEL, -L LEVEL
                            Set the verbosity of the logger. Levels: none,
                            critical, error, warning, info, verbose, debug, trace
      --bugreport           Use this option to create a detailed bug report, note
                            that the output might contain PRIVATE data, so edit
                            that out
      --profile [OUTFILE]   Use the python profiler for this run to debug
                            performance issues.
      --debug-warnings      elevate warnings to errors for debugging purposes, so
                            a traceback is shown

    commands:

        execute             execute tasks now
        daemon              run continuously, executing tasks according to
                            schedules defined in config
        check               validate configuration file and print errors
        database            utilities to manage the FlexGet database
        doc                 display plugin documentation
        movie-queue         view and manage the movie queue
        plugins             print registered plugin summaries
        series              view and manipulate the series plugin database
        rejected            list or clear remembered rejections
        failed              list or clear remembered failures
        seen                view or forget entries remembered by the seen plugin
        archive             search and manipulate the archive database
        history             view the history of entries that FlexGet has accepted
        inject              inject an entry from command line into tasks
    rtorrent@Debian:~$

    • Reply Patrick Kerwood aug 14,2014 08:04

      Efter version 1.2 af Flexget, er der ændret kommandoerne. Guiden var derfor uopdateret. Den er nu igen opdateret så den passer.

Leave a Reply