View Single Post
  #1  
Old 14.03.2017, 12:20
suffx
Guest
 
Posts: n/a
Default HowTo: Filebot mit MyJDownloader kombinieren und automatisieren

MyJdownloader und Filebot miteinander verbinden

Da es zu diesem Thema kein wirkliches HowTo gibt, sondern eher eine Ansammlung von Foreneinträgen mit verschiedenen Problemen und Lösungsansätzen, möchte ich hier ein kurzes HowTo erstellen. Diese Anleitung beschreibt den Weg den ich dabei selber gegangen bin. Ich werde dabei auf die Probleme eingehen die ich bei meiner Installation hatte, Fragen zu anderen Problemen könnt ihr im Forum stellen.
Wenn alles wie gewünscht klappt, könnt ihr im Anschluss
  • Downloads von überall aus auf eurem NAS starten
  • Downloads über MyJdownloader automatisch entpacken lassen
  • Die entpackten Dateien automatisch mit TMDb abgleichen und nach euren wünschen umbenennen lassen
  • Media .nfos und Artwork (für Kodi) automatisch herunterladen
  • Die umbenannten Dateien an euren Wunschort verschieben lassen
  • Die nicht mehr benötigten Ordner von den Downloads automatisch löschen lassen


Alles was ihr also noch tun müsst, ist einen Download zu starten. Alles andere passiert von allein.
Ich habe dieses Setup auf einer Synology DS216Play laufen, es sollte aber auf jedem anderen System auf dem JDownloader (headless), Filebot und Java 8 laufen auch gehen.

Der Fokus liegt klar auf NAS Systemen.

Voraussetzungen:
  • Ein laufendes NAS System
  • Grundkenntnisse in SSH sind von Vorteil

1. Vorbereitungen

Als allererstes (wenn nicht schon geschehen) installiert ihr euch Java 8 und den JDownloader. Dafür geht ihr auf eure DSM Oberfläche. Wer den JDownloader schon hat, nimmt nur die filebot Paketquelle. Achtung: Wenn ihr schon eine offizielle Java Version installiert habt, deinstalliert diese einfach und installiert die inoffizielle neu. Bei mir gab es so keine Probleme.

Paketzentrum -> Einstellungen -> Paketquellen -> Hinzufügen: app.filebot.net/syno/

Paketzentrum -> Einstellungen -> Paketquellen -> Hinzufügen: spk.netzbaer.de/

Jetzt solltet ihr die DSM Oberfläche einmal aktualisieren.
  • Geht nun ins Paketzentrum und scrollt links nach ganz unten zu Community. Ihr findet hier nun den „Unofficial Java Installer“, welchen ihr installiert.
  • Danach geht ihr wieder auf Community und installiert JDownloader 2. Achtet darauf JDownloader als root zu installieren (ist standardmäßig so).
  • Danach noch einmal auf Community und Filebot installieren. Wenn ihr wollt könnt ihr auch Filebot Node installieren. Das ist eine GUI für Filebot die innerhalb des DSM läuft und aufrufbar ist. Filebot Node wird für die angestrebte Automatisierung aber nicht benötigt. Man kann sich damit aber ganz gut Benennungs-Schemata erstellen.

Nachdem alles installiert ist, solltet ihr eure Grundeinstellungen in JDownloader machen. Dazu einfach auf my.jdownloader.org mit euren myjdownloader Daten die ihr auch eben bei der Installation benutzt habt anmelden und auf euren JDownloader@root gehen. Wichtig ist, dass das automatische entpacken aktiviert wird und unbedingt beim DL Verzeichnis „unterordner nach Paketname“ anklicken. Damit wird für jeden DL ein eigenes Paket angelegt und auch nur dieses wird nach dem Entpacken von Filebot durchsucht.

Wenn ihr das habt, installiert ihr den EventScripter im JDownloader unter my.jdownloader.org. Den findet ihr unter

Einstellungen -> Extension Manager. Klickt auf „Install“ neben Event Scripter und wartet etwas.

Es kann gut sein, dass nichts weiter passiert abgesehen vom Ladebalken. Ein Neustart der DS soll dabei helfen. Notfalls müsst ihr einfach etwas warten. Damit sind die Vorbereitungen abgeschlossen.

Zur Sicherheit hier noch das HowTo zur JD installation: https://board.jdownloader.org/showthread.php?t=65599


2. Filebot script und Test per SSH

Nun geht es darum, alles zum Laufen zu kriegen. JDownloader sollte jetzt schon problemlos laufen. Um zu testen ob auch Filebot läuft, verbindet euch per SSH mit eurer DiskStation. Dazu nehmt ihr einfach putty (putty.org/) und gebt die IP sowie den Port ein. Ihr werdet nach euren Anmeldedaten gefragt. (Diese SSH Prozedur müsst ihr später nicht mehr machen)

Login as: admin
Password: ->euer admin Passwort<-
Gebt „sudo –i“ ohne Anführungsstriche ein
Passwort: ->erneut euer admin Passwort<-
Jetzt seid ihr als root per SSH angemeldet. Um Filebot auszuführen könnt ihr jetzt ein Filebot script verwenden. Das script was ich hier zur Verfügung stelle, ist nicht von mir selbst geschrieben, sondern nur ergänzt und angepasst worden.

Hier das jdtofilebot.sh script:

Code:
#!/bin/sh
##FileBot benötigt diese Variablen
##/bin/mkdir /volume1/video/Downloads/videos/testordner
LOG="/volume1/amc.log"
EXC="/volume1/amc.txt"
SERIEN="/volume1/video/Serien/{n}/{s}/{n}.{s00e00} - {t} ({y}) {vf}"
FILME="/volume1/video/Filme/{n} ({y}) {source}({vf}@{vc}) [{rating}]/{n} ({y}) {source}({vf}@{vc}) [{rating}]"
##UNSORTIERT="/path/{file.structurePathTail}" ### Wenn Filebot mal etwas nicht zuordnen kann, dann kannst du es in einen seperaten Ordner verschieben lassen, dann bleibt es im Downloadordner übersichtlich.
##FileBot ausführen
/var/packages/filebot/target/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" "animeFormat=$ANIME" "unsortedFormat=$UNSORTIERT" -non-strict --def unsorted=y "artwork=y" --def clean=y
## Aufräumen, --def root löscht den Unterordner mit
/var/packages/filebot/target/filebot.sh -script fn:cleaner "$1" --def root=y
ACHTUNG: Wichtig ist, dass dieses Script eine unix Zeichenendungs-Codierung hat. Bei mir war dies anfangs nicht der Fall, weshalb ich immer eine „No such file“-Exception bekam. Das könnt ihr mit Notepad++ machen. Fügt das script in eine neue Datei ein und geht auf

Bearbeiten -> Kodierung Zeilenende -> UNIX

Um sicherzugehen könnt ihr euch mit dem kleinen Symbol unter „Fenster“ in der Tool-Leiste alle Charaktere anzeigen lassen. Hinter jeder Zeile sollte nun „LF“ stehen.

Dieses script speichert ihr nun auf eurer DS. Bei mir liegt es unter /volume1/video/filebot.sh

Jetzt geht ihr wieder in putty und gebt erstmal „cd ..“ ein, um in das nächsthöhere Verzeichnis zu wechseln. Um die Datei auszuführen gebt ihr nun

sh /volume1/video/filebot.sh

ein. Es sollten einige Ausgaben folgen. Das script müsste durchlaufen, aber nichts weiter machen und mit der Meldung „no input“ beendet werden. Das liegt daran, dass wir keinen Pfad definiert haben an dem unsere Videodateien liegen. Das ist aber kein Problem, dieser Pfad wird am Ende vom Event Scripter an Filebot übergeben. Wollt ihr hier schon testen ob alles klappt, die Dateien richtig umbenannt und verschoben werden, übergebt noch einen inputpfad in dem z. B. Testdateien liegen mit:

sh /volume1/video/filebot.sh /volume1/video/Downloads/


Nun wissen wir, dass JD und Filebot laufen. Jetzt geht es nur noch darum, beide zu verknüpfen.


3. Event Scripter

Geht wieder in die Einstellungen unter my.jdownloader.org und geht auf den Event Scripter. Einmal „enable“ anklicken, falls nicht schon geschehen. In das freie Feld fügt ihr dieses script ein:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/filebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":}]
Der code sagt aus, dass immer wenn ein Archiv entpackt wurde, dieses script ausgeführt wird. Wichtig ist hier eigentlicht nur, dass der Pfad zu dem eben erstellten Filebot script korrekt ist, und dass die JSON syntax eingehalten wird. Die Syntax könnt ihr mit z. B. prettyjson validieren, manche Foren entfernen nämlich das Escaping.
Path = archive.getFolder(); holt den gerade aktuellen Pfad der entpackten Datei und übergibt diesen im Nächsten Schritt an Filebot. So wird immer nur genau das Package bearbeitet, welches auch gerade geladen und entpackt wurde. Nachdem ihr nun einen DL abgeschlossen habt und das Archiv entpackt wurde, sollte das Script ausgeführt werden. Ihr werden beim ersten Mal gefragt ob ihr das zulassen möchtet.
Klickt auf „allow“ und setzt den Haken bei always. Wenn alles glatt läuft, startet nun euer filebot script und benennt die Dateien um und verschiebt sie ins angegebene Verzeichnis.


4. Erklärungen

Zum Filebot Script:

##/bin/mkdir /volume1/video/testordner
  • Nehmt ihr die beiden Rauten am Beginn der Zeile weg, sollte unter video ein testordner erstellt werden, sobald das script gestartet wird. Daran könnt ihr gut sehen ob das Script ausgeführt wird oder nicht. Wenn alles läuft, kommentiert die Zeile wieder aus.


SERIEN="/volume1/video/Serien/{n}/{s}/{n}.{s00e00} - {t} ({y}) {vf}
  • Gibt an wo und in welchem Format Serien gespeichert werden.
  • In diesem Beispiel sähe das so aus: /volume1/video/Serien/Serienname/Staffel/Serienname.S01E01 – Titel der Folge (1990) 360p.avi
  • Dieses Format wird von DS Video erkannt und getagged
  • Ihr könnt das natürlich euren Wünschen entsprechend anpassen, hier gibt es Infos zu dem Schema: filebot.net/naming.html
  • Dies gilt genauso für Filme.


Wirklich viel gibt es sonst eigentlich nicht zu erklären. Was noch wichtig ist, "artwork=y" bewirkt, dass .nfo files und artwork runtergeladen und im entsprechenden Zielordner gespeichert wird. Wer das nicht will, kann diesen Eintrag entfernen.

Bei Problemen postet diese in diesen Beitrag.

Viel Erfolg und Spaß damit!

Im Anhang ist mein filebot.sh script und das eventscripter script
Attached Files
File Type: zip files.zip (1.0 KB, 22 views)

Last edited by suffx; 14.03.2017 at 14:00.
Reply With Quote