JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 14.03.2017, 13:20
suffx suffx is offline
JD Alpha
 
Join Date: Nov 2016
Posts: 20
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 15:00.
Reply With Quote
  #2  
Old 22.03.2017, 00:58
Huppi Huppi is offline
Vacuum Cleaner
 
Join Date: Aug 2015
Posts: 16
Default

Bei mir verhaut er leider das artwork in den entsprechenden Zielordner zu schieben, sondern setzt es teilweise doppelt auch in den übergeordneten Ordner.

Banner already exists: /volume2/video/Serien/poster.jpg
Banner already exists: /volume2/video/Serien/banner.jpg
Banner already exists: /volume2/video/Serien/fanart.jpg
Banner already exists: /volume2/video/Serien/Serienname/poster.jpg
Banner already exists: /volume2/video/Serien/Serienname/banner.jpg
Fanart already exists: /volume2/video/Serien/clearart.png
Fanart already exists: /volume2/video/Serien/logo.png
Fanart already exists: /volume2/video/Serien/landscape.jpg
Fanart already exists: /volume2/video/Serien/Serienname/landscape.jpg

Woran kann das liegen?
Reply With Quote
  #3  
Old 28.03.2017, 16:05
raidyne raidyne is offline
I will play nice!
 
Join Date: Jul 2016
Posts: 5
Default

Das betrachtet aber nicht beide Fälle, dass sowohl ein Nicht-Archiv als auch ein Archiv komplett abgeschlossen ist, oder?!

Das funktioniert aber nur mit Archiven?! Wenn JDownloader nichts zu entpacken hat (die Datei also ungepackt vorlag und erfolgreich runtergeladen wurde), wird filebot nicht aufgerufen?!

Last edited by raztoki; 28.03.2017 at 22:02.
Reply With Quote
  #4  
Old 12.06.2017, 11:27
firzen firzen is offline
Baby Loader
 
Join Date: May 2012
Posts: 5
Default

Hallo

Ich habe eine kurze Frage dazu.
Bei mir funktioniert eigentlich alles bestens.

Ich habe legidlich das Problem dass die Dateien per Jdownloader heruntergeladen werden und auch im richtigen Ordner abgelegt werden, jedoch nicht automatisch entpackt.

Ich muss auf der DS immer von Hand extrahieren.

Kann mir da eventuell jemand von euch helfen?

Grüsse Andreas
Reply With Quote
  #5  
Old 12.06.2017, 18:01
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

Hast du JDownloader von Hand installiert oder kopiert?
Zippe mal den Logs Ordner und schicke Ihn an support@jdownloader.org dann kann ich dir da mehr zu sagen.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #6  
Old 13.06.2017, 09:06
firzen firzen is offline
Baby Loader
 
Join Date: May 2012
Posts: 5
Default

Das komisch ist wenn ich was runtergeladen habe. erstellt er mit kein Log davon :(

Das einzige was ich habe habe ich gesendet.

Sry
Reply With Quote
  #7  
Old 13.06.2017, 11:13
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

By Default werden nur Logs von fehlerhaften Downloads erstellt.
Das Wichtige ist im ExtractionExtension log, dort sieht man ob Entpacken unterstützt wird und wenn nein, warum nicht.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #8  
Old 13.01.2018, 17:59
no_Legend no_Legend is offline
Modem User
 
Join Date: Jan 2018
Posts: 3
Default

Hallo,

ich wollte die geniale Anleitung nun umsetzten.
Bisher klappt auch alles bis auf den Event Scripter.
hier kommt immer die Fehlermeldung: FAILED to SET new Value.
Es scheint ein Syntax Fehler zu sein.
Da meine Kenntnisse nicht genug sind, kann vll jemand das Script aktualisieren?

Danke und Gruß Robert
Reply With Quote
  #9  
Old 15.01.2018, 16:18
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

Zeig das Script, dann kann ich dir sagen wo der Fehler liegt.
" und ein paar weitere Zeichen müssen escaped werden. Die Syntax ist JSON
__________________
JD-Dev & Server-Admin
Reply With Quote
  #10  
Old 19.01.2018, 20:02
no_Legend no_Legend is offline
Modem User
 
Join Date: Jan 2018
Posts: 3
Default

Quote:
Originally Posted by Jiaz View Post
Zeig das Script, dann kann ich dir sagen wo der Fehler liegt.
" und ein paar weitere Zeichen müssen escaped werden. Die Syntax ist JSON
Danke für deine Antwort.

Ich habe das Script wie oben angegeben genommen.
Dass wird mir aber von myjdownloader nicht akzeptiert.

Ich habe nun wie folgt probiert, was genommen wird aber allen Anschein nach nicht geht.

[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":false, "name":"Beispiel", "script":"var amcFile = "/opt/JDownloader/cfg/filebot/jdtofilebot.sh";var path = archive.getFolder(); callAsync(function() {}, amcFile, path)", "eventTriggerSettings":{"isSynchronous":false}, "id":1515857099647}]
Reply With Quote
  #11  
Old 21.01.2018, 20:34
Snipes4711 Snipes4711 is offline
I will play nice!
 
Join Date: Jan 2018
Posts: 5
Default

Hallo,

vielleicht überlese ich etwas oder habe es geistig noch nicht richtig verknüpft.
Ich habe den jDownloader laufen und ich habe Filebot und Filebot-Node installiert. Filebot-Node hat ja den Vorteil, dass ich alles schön in der Oberfläche konfigurieren kann. Darüber habe ich einen Task in der DSM installiert, der jede Nacht um 4 Uhr äuft. Nun könnte ich ja einstellen, dass dieser Task alle 5 Minuten läuft. Das hätte ich aber gerne schöner.

Nach dem Download und dem Entpacken, soll Filebot ans Werk gehen. Und am Besten mit diesem Task, denn der macht ja das, was ich in der Oberfläche konfiguriert habe.

Gibt es hier eine Möglichkeit? Ich habe noch nichts im Netz gefunden. Warum wird das nicht genutzt? Gibt es Nachteile?

Was mich noch stört, ist die Tatsache, dass der Filebot die bearbeiteten Dateien nicht löscht. Kann man das nicht auch einstellen? Oder brauche ich eben genau dazu das Script, da es hier mehr Möglichkeiten gibt?

Danke für Eure Hilfe!
Reply With Quote
  #12  
Old 22.01.2018, 21:46
no_Legend no_Legend is offline
Modem User
 
Join Date: Jan 2018
Posts: 3
Default

Quote:
Originally Posted by Jiaz View Post
Zeig das Script, dann kann ich dir sagen wo der Fehler liegt.
" und ein paar weitere Zeichen müssen escaped werden. Die Syntax ist JSON
Habe es hin bekommen.
Hatte ein Problem mit dem Script an der richtigen stelle platziert und noch kurz angepasst dann ging es.
Das mit den Rechten an dem Pfad kann ich mir momentan nicht erklären, da ich 777 gesetz und +x habe.

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/opt/JDownloader/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1515857099647}]
@Snipes4711
Wenn du das oben benutzt braucht man kein Script laufen lassen.
Filebot löscht nach dem Verschieben die alten Dateien.
Damit die Files nach dem Extract gelöscht werden musst du im Archiv Extractor einstellen.

Gruß Robert
Reply With Quote
  #13  
Old 23.02.2018, 17:29
elektrobert elektrobert is offline
Modem User
 
Join Date: Feb 2018
Posts: 1
Default

Hallo zusammen,

hab alles nach Anleitung auf meiner DS411 installiert.

Jdownloader lädt runter entpackt. Das filebot skript lädt das Sample und Cover, aber das wars dann.

Welche Zeile in dem ganzen ist für das verschieben zuständig / das umbenennen?

Das klappt nämlich beides nicht.

Gruss
Reply With Quote
  #14  
Old 02.04.2018, 11:27
W33DY W33DY is offline
Modem User
 
Join Date: Apr 2018
Posts: 3
Default

danke für die Anleitung... gleich mal nach Arbeit Probieren
Reply With Quote
  #15  
Old 05.10.2018, 09:48
whiley85 whiley85 is offline
Modem User
 
Join Date: Oct 2018
Posts: 4
Default

Hallo und vielen Dank für die tollen Anleitungen hier.
Vielleicht eine etwas blöde Frage:
Im EventScripter Code wird eine id angegeben.
Wie finde ich die heraus?
Noch rennt die Lösung auf meiner 415+ nicht richtig...

Danke im Voraus!
Reply With Quote
  #16  
Old 05.10.2018, 10:26
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

Die ID kannst du auch weglassen. Diese dient lediglich nur der Identifikation einzelner Einträge
__________________
JD-Dev & Server-Admin
Reply With Quote
  #17  
Old 05.10.2018, 12:00
whiley85 whiley85 is offline
Modem User
 
Join Date: Oct 2018
Posts: 4
Default

Danke, das war einfach!
Jetzt wird es schwieriger: Event wird gestartet, was ich durch das Erstellen des Testordners sehe. Nach amc.log schaut filebot aber nicht nur im extrahierten Ordner sondern im kompletten Download Verzeichnis und extrahiert zunächst ein zweites mal in einen neuen Ordner...

Ist im Code noch ein Fehler versteckt?
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = "/volume1/video/filebot.sh";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}}]
Reply With Quote
  #18  
Old 05.10.2018, 12:06
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

Welcher Ordner wird denn übergeben? Steht das im Log
__________________
JD-Dev & Server-Admin
Reply With Quote
  #19  
Old 05.10.2018, 12:09
whiley85 whiley85 is offline
Modem User
 
Join Date: Oct 2018
Posts: 4
Default

Run script [fn:amc] at [Fri Oct 05 10:44:05 CEST 2018]
Parameter: seriesFormat = /volume1/video/Serien/{n}/Season {s.pad(2)}/{n}.{s00e00} - {t}
Parameter: movieFormat = /volume1/video/Filme/{n} ({y})/{n} ({y})
Parameter: animeFormat =
Parameter: unsortedFormat = /volume1/video/unsortiert/{file.structurePathTail}
Parameter: unsorted = y
Parameter: artwork = y
Parameter: clean = y
Argument[0]: /volume1/homes/markus/JDownloader/Downloads

Das ist mein default Downloadverzeichnis.
Der durch das Extrahieren erstellte Ordner befindet sich darin.
filebot sucht aber in Downloads und findet dort auch noch die rar Dateien...

Last edited by whiley85; 05.10.2018 at 12:14.
Reply With Quote
  #20  
Old 05.10.2018, 12:24
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 60,436
Default

Evtl am Entpacker einstellen das jedes Archiv in einen eigenen Unterordner entpackt wird? Oder über den Packetverwalter/Subfolder Regel, das jeder Download in einen eigenen Ordner wandert.
__________________
JD-Dev & Server-Admin
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 02:20.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.