Synology NAS: FileBot mit Event Scripter über JDownloader automatisch starten


Mit dem Event Scripter Filebot starten

Achtung: Diese Anleitung ist veraltet. Mittlerweile nutze ich den JDownloader und FileBot auf dem Synology NAS über Docker.

Der JDownloader ist zusammen mit dem Filebot auf meinem günstigen Synology NAS DS216j ein ideales Team um Videodateien runterzuladen und passend zu benennen. Mit dieser Anleitung startet der FileBot per Event Scripter nach dem Entpacken des Archives durch den JDownloader automatisch und DS Video wird darüber informiert, dass neue Videodateien vorliegen.

Dieses Tutorial setzt voraus, dass ihr den JDownloader und den FileBot bereits installiert habt. Ferner sind die Optionen für den Einsatz von DS Video statt Kodi und OSMC optimiert.

Schritt A: Shellscript anlegen

1. root-Zugriff per Shell auf das Synology NAS anlegen

2. Im HOME-Verzeichnis (z.B. „/var/services/homes/juser/“ ) legt ihr eine neue Datei namens „jdtofilebot.sh“ an:

cd /var/services/homes/juser/
vi jdtofilebot.sh

3. Mit der Taste „i“ könnt ihr nun folgendes Script einfügen und beendet anschließend mit „:wq“ den vi-Editor.

#!/bin/sh
 export JAVA_OPTS="-Xmx256m"
 /var/packages/filebot/target/filebot.sh -script 'fn:amc' /volume1/video/download --output /volume1/video/ --conflict auto --lang en --def 'clean=y' 'skipExtract=y' 'exec=/usr/syno/bin/synoindex -R video' 'excludeList=.excludes'

4. Prüft bitte die Pfade wie „/volume1/video/download“ und „/volume1/video“. Ersteres ist der Pfad zum Download-Verzeichnis vom JDownloader und letzterer Pfad enthält die Struktur wie „TV Shows“ und „Movies“. Mit dem Parameter „exec“ wird am Ende der Index für DS Video erneuert, damit sie automatisch im Mediacenter auftauchen.

5. Nun müsst ihr das Script noch für jeden ausführbar machen.

chmod +777 jdtofilebot.sh

Ob es bis hierhin geklappt hat, könnt ihr mit dem folgenden Befehl prüfen:

./jdtofilebot.sh

Sollte hier irgendwas komisches passieren, prüft bitte die oberen Schritte. Prüft auch die Grundvoraussetzungen in dem ihr euch den Artikel nochmal von oben durchlest. Dies war der schwerste Teil. Gratulation!

Der Event Scripter unter my.JDownloader in den Einstellungen
Der Event Scripter unter myJDownloader in den Einstellungen

Schritt B: Event Scripter in myJDownloader einschalten

1. In myJDownloader gehen wir zu den Einstellungen und finden dort im linken Menü den Punkt weiter unten unter „Extensions“ den „Event Scripter“. Falls nicht, prüft bitte den „Extension Manager“ ob die Erweiterung aktiviert wurde.

In das Feld „Scripts“ kopiert ihr nun folgendes JSON. ACHTUNG: Darin den Benutzernamen „juser“ gegen euren Benutzernamen austauschen! Sonst findet der JDownloader das in Schritt A angelegte Shell-Script nicht.

[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/var/services/homes/juser/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":4711}]

Wenn nun eine Fehlermeldung wie „Sorry, failed to set new value“ erscheint, dann ist das JSON nicht in Ordnung, weil ihr den Schnippsel oben falsch kopiert habt und das JSON aus anderen Gründen nicht mehr valide ist. Prüft den Codein dem Fall mit Werkzeugen wie „JSON lint“.

Schritt C: Berechtigung in myJDownloader setzen

Wenn ihr den ersten Download und das erste Entpacken nach diesem Tutorial abgeschlossen habt, erscheint auf myJDownloader eine Meldung, dass ihr dem JDownloader erlauben müsst, auf lokale Dateien zuzugreifen. In diesem Fall ist damit das FileBot-Script aus Schritt A gemeint. Bestätigt dies mit „Ja“ und setzt den Haken für „Nicht nochmal fragen“. Ansonsten wird das Script nie ausgeführt und es funktioniert nicht.  Falls es hier Probleme gibt, schaut in die Logs auf dem Synology NAS unter folgendem Pfad:

/volume1/@appstore/JDownloader/logs/

ACHTUNG: Da das Entpacken lange dauern kann, müsst ihr euch unter Umständen gedulden, bis die Meldung erscheint und ihr den Zugriff bestätigen könnt. Besonders auf einem günstigen Synology DS216j (kaufen) oder dem neuen Synology DS218j (kaufen).


Beitrag veröffentlicht

in

,

von

Kommentare

64 Antworten zu „Synology NAS: FileBot mit Event Scripter über JDownloader automatisch starten“

  1. Avatar von Goauld
    Goauld

    Es ging mal und geht jetzt nicht mehr. Weiß nicht, woran es liegt. Es gibt nach dem Entpacken der Datei einen Ordner tvp-lastship-720p-s05e03 und darunter einen Ordner The.Last.Ship.S05E03.Die.Bruecke.GERMAN.DUBBED.DL.720p.WebHD.x264-TVP.
    Das Skript funktioniert so nicht. Auch wenn ich es manuell per SSH starte, geht es nicht.
    Verschiebe ich den Ordner The.Last.Ship.S05E03.Die.Bruecke.GERMAN.DUBBED.DL.720p.WebHD.x264-TVP nach oben und starte das Skript, geht es. Was ist jetzt einzustellen, dass es geht? Am Entpacken was ändern oder am Filebot? Danke für die Hilfe!

    1. Avatar von Marc
      Marc

      Hast du da sselber auf dem Synology entpackt und somit einen Ordner erstellt, der andere Berechtigungen hat, auf den dann Jdownloader bzw. Filebot nicht zugreifen kann? Das funktioniert nur, wenn JDownloader die Ordner erstellt und Filebot diese bearbeitet.

    2. Avatar von Goauld
      Goauld

      Nein, der jDownloader entpackt für mich die Archive.

    3. Avatar von Marc
      Marc

      Prüf doch mal, wem die ganzen Ordner wirklich gehören. Das geht über die DS Oberfläche. Ggf. liegt da das Problem.

    4. Avatar von Goauld
      Goauld

      Manchmal meinem Benutzer und manchmal dem root. Ich baue also dann auch die Zeile am Ende Deines Tutorials rein, oder?
      Als ich der Besitzer war, hat es geklappt. Jetzt beim zweiten File war es der root und da hat es nicht geklappt.

    5. Avatar von Goauld
      Goauld

      Ich habe folgendes Script, aber die entpackten Ordner gehören immer noch dem root. Siehst Du einen Fehler?

      #!/bin/sh
      export JAVA_OPTS=“-Xmx256m“
      /var/packages/filebot/target/filebot.sh -script ‚fn:amc‘ /volume1/video/download –output /volume1/video/ –conflict auto –lang en –def ‚clean=y‘ ’skipExtract=y‘ ‚exec=/usr/syno/bin/synoindex -R video‘ ‚excludeList=.excludes‘ –def „exec=chmod -R 775 \“{folder}/\“ ; chown -R USER:users \“{folder}/\““

    6. Avatar von Marc
      Marc

      Ich denke mal, dass der User, der das ausführt nicht die Rechte hat für chown, oder? Ganz am Anfang der Anleitung liegt wahrscheinlich bei dir der Fehler. Ich denke, dass jDownloader nicht mit root ausgeführt wird.

    7. Avatar von Goauld
      Goauld

      Ich habe noch mal geprüft und chmod +777 auf das Script war gesetzt. Das Script gehört dem User admin und der Gruppe users.
      Auch die Bestätigung nach dem ersten Entpacken im jDownloader habe ich mit Ja beantwortet. Kann ich das im Nachhinein noch mal prüfen oder setzen? Oder welchen Fehler meinst Du?

    8. Avatar von Marc
      Marc

      Ne, Schritt A: Shellscript anlegen. Das meinte ich.

    9. Avatar von Goauld
      Goauld

      Doch klar. Aber ich habe alles als admin per ssh angelegt. Hatte nicht mit sudo -i gewechselt. Aber das kann ja normal nicht der Grund sein. Das Script ist für alle ausführbar und gehört dem User admin und der Gruppe users.
      Jetzt habe ich den Besitzer auf root, Gruppe users geändert.
      Aber genauso wie vorher erscheint folgendes, wenn ich das Script per SSH ausführe.

      x86_64
      Run script [fn:amc] at [Wed Oct 10 19:17:01 CEST 2018]
      Parameter: clean = y
      Parameter: skipExtract = y
      Parameter: exec = chmod -R 775 „{folder}/“ ; chown -R USER:users „{folder}/“
      Parameter: excludeList = .excludes
      Argument[0]: /volume1/video/download
      Use excludes: /volume1/video/.excludes (5)
      No files selected for processing
      Done ヾ(@⌒ー⌒@)ノ

      Sieht also korrekt aus, für mich :-)

      Hast Du noch weitere Ideen? Vielen Dank für Deine Hilfe übrigens!
      Kann ich irgendwie prüfen, ob der jDownloader das Script nach dem Entpacken ausführt? Das Problem ist, dass in einen Ordner A entpackt wird und darunter liegt dann der Ordner mit der Serie.

    10. Avatar von Goauld
      Goauld

      Vielleicht habe ich den Fehler gefunden:

      –def „exec=chmod -R 775 \“{folder}/\“ ; chown -R USER:users \“{folder}/\““

      Ich habe hier den „USER“ nicht durch „admin“ in meinem Fall ersetzt :-(

      Hier aber noch eine andere Fehlermeldung. Vielleicht hast Du dazu einen Rat:
      Auto-detected query: [The Last Ship, lastship]
      CmdlineException: Multiple queries: Processing multiple shows at once requires -non-strict matching: [The Last Ship, lastship]

    11. Avatar von Marc
      Marc

      Cool!

      In dem Fall musst du mit „-non-strict“ arbeiten. Dann hast Du ggf. Fehler drin aber er wählt einen der Vorschläge aus.

    12. Avatar von Goauld
      Goauld

      Danke, wo soll das hin? Bei –conflict auto? Das auto durch durch -non-strict ersetzen?

    13. Avatar von Goauld
      Goauld

      Tausend Tank für Deine Hilfe. Alles läuft perfekt. Habe das -non-strict angefügt. -conflict auto habe ich stehen gelassen. Danke Dir!

  2. Avatar von Andre09
    Andre09

    Hallo zusammen,

    habe auch ein Problem :(
    Habe alles gemäß Anleitung gemacht und das SCript funktioniert auch. Files werden erkannt und in Plex verschoben. Dort werden sie aber in 70% der Fälle nich indiziert? Also als wären Sie gar nicht da, trotz neu einlesen in der Plex Library… Erst wenn ich mit dem Laptop z.B. den Dateinamen geringfügig ändere tauchen sie sofort auf. Vermute auch ein Rechteproblem raffe als anfänger aber nicht ganz wie ich das eingrenze, prüfe und ggf. änder, daher freue ich mich auf Tipps da sonst filebot für mich nicht funktioniert :(

    1. Avatar von Marc
      Marc

      Bei der Neuinstallation für mein neues DS218+ hatte ich solche Probleme bis zu einem kompletten Neustart. Danach waren die Probleme mit der Rechtevergabe weg.

    2. Avatar von Andre09
      Andre09

      Ne das war es leider nicht :( Ist seltsamerweise nur bei serien. Sobald ich nur über Windows einen Buhstaben ändere findet Plex das sofort. Bei Filmen gehts immer. Beide Ordner haben für plex die selben Rechte. Kapier es nicht aber so leider nicht brauchbar für mich :((

    3. Avatar von Marc
      Marc

      Tja, also bei mir und anderen klappt das ohne weitere Probleme. Vielleicht mal alles zurücksetzen? Auch jdownloader redeten usw?

    4. Avatar von Andre
      Andre

      Gibt es eine „Ausschlusschance“? Wenn ich jetzt eine Serie von Filebot umbenennen und verschieben lasse…und Plex die nicht erkennt…kann ich durch irgendeine „Rechte“-Kontrolle etwas überprüfen was euch cracks hier weiterbringt? Ergo falsche REchte?

    5. Avatar von Marc
      Marc

      Bitte einmal neustarten. Das hat bei mir geholfen. Ich habe das ganze extra nochmal neu installiert auf einem neuen NAS. Ich habe keine Rechte-Probleme bemerkt. Und ich nutze mittlerweile ebenfalls Plex.

  3. Avatar von joks
    joks

    kann man die Lizenz ins script einbinden?

    1. Avatar von Marc
      Marc

      Welche Lizenz?

  4. Avatar von joks
    joks

    die filebot Lizenz, die man jetzt benötigt bei filebot zu ordern, oder gibts eine möglichkeit ohne Lizenz zu automatisieren?
    Danke

    1. Avatar von Marc
      Marc

      Nein, aber die aktiviert man ja nur einmal und danach braucht man da keinen Parameter mehr. Einfach kaufen, aktivieren und weiter gehts.

    2. Avatar von Daniel
      Daniel

      von welcher Lizenz ist denn hier die Rede. Ich habe Filebot und Filebote Node nur installiert. Wo muss ich denn die Lizenz kaufen und eingeben ?

  5. Avatar von Daniel
    Daniel

    Hallo, seit einigen Wochen werden die extrahierten Dateien nicht mehr in einen anderen Ordner verschoben

    Wenn ich den Testlauf mit ./jdtofilebot.sh durchführe, erhalten ich folgende 2 Fehler

    Use excludes: /volume1/video/.excludes (25)
    Failed to read xattr: ExceptionInInitializerError
    Ignore video extra: /volume1/download/*******.mkv
    Input: /volume1/download/*******.mkv
    Failed to read xattr: NoClassDefFoundError: Could not initialize class com.sun.jna.Platform
    Failed to read xattr: NoClassDefFoundError: Could not initialize class com.sun.jna.Platform
    Failed to read xattr: NoClassDefFoundError: Could not initialize class com.sun.jna.Platform

    JAVA ist aber installiert.

    An was liegt das ?

    1. Avatar von Daniel
      Daniel

      Hallo Marc, hast du eine Idee zu meinem Problem? Ich bekomme Filebot nicht mehr zum laufen

  6. Avatar von Danny
    Danny

    Ich würde im Shell-Script noch eine Queue einbauen. Habe eben ein Rom-Pack von 777 Dateien heruntergeladen und pro Datei hat das Event das Script aufgerufen. RAM und CPU laufen gerade am absoluten Limit. Ist mit Vorsicht zu genießen! Sobald ich weiß, wie ich das Problem lösen kann stelle ich meine Lösung hier in die Kommentare als Antwort ein.

    1. Avatar von Marc
      Marc

      Cool. Danke. Ich mache das mittlerweile mit Docker.

    2. Avatar von Rene Knorr
      Rene Knorr

      Hallo Marc,
      ich nutze mittlerweile auch Docker auf der Synology (jDownloader, Home Assistant und Pi-hole). Nun würde ich auch gerne einen Docker-Container für filebot benutzen, scheitere aber. Hast du für die Kombination jDownloader+filebot in separaten Docker-Containern auch eine Anleitung?

    3. Avatar von Marc
      Marc

      Mein Filebot Docker-Container guckt einfach immer automatisch nach ob Dateien geschrieben werden . Wenn nicht, dann wartet er 20 Min und läuft dann drüber. Das ist eine Standardeinstellung des Containers und wurde nicht von mir dranentwickelt

    4. Avatar von Rene Knorr
      Rene Knorr

      D.h. du arbeitest nicht mehr mit dem Event Scripter? Welchen Docker-Container für Filebot nutzt du?
      Meinst du, es wäre möglich, dass du eine kleine Anleitung dafür schreibst? Ich bekomme das nicht sauber hin.

  7. Avatar von Nightman
    Nightman

    Hallo, irgendwie funtzt bei mir das Script nicht mehr. Die fertig entpackten Dateien werden nicht wie im Script hinterlegt in einen anderen Ordner verschoben und dann gelöscht. Wie kann ich das Script denn testen oder geht das generell wegen einem Update der NAS nicht mehr

    1. Avatar von Marc
      Marc

      Letzteres macht de Filebot und nicht das Script.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert