[Skript,Windows] Archiv regelmäßig vollautomatisch einfügen und herunterladen per FolderWatch Addon

Top-Downloadmanager mit voller Save.TV Integration! (automatische Archivübernahme u.v.a.m.)
Antworten
Benutzeravatar
jdownloader_pspzockerscene
Beiträge: 85
Registriert: Mo 28. Mär 2016, 18:28
bevorzugter Onlinevideorecorder: Keinen
Kontaktdaten:

[Skript,Windows] Archiv regelmäßig vollautomatisch einfügen und herunterladen per FolderWatch Addon

Beitrag von jdownloader_pspzockerscene » Di 14. Nov 2017, 19:52

Hi Leute,
hier mal etwas, was ich schnell für euch gebastelt habe.
Es ist mehr eine Frickellösung und wir missbrauchen hier JDownloader Funktionen, die dafür eigentlich nicht vorgesehen waren, aber ... es funktioniert 8-)

Sichert eure JDownloader Einstellungen oder verwendet eine frische JDownloader Installation um sicherzugehen, dass ihr durch diese Anleitung nichts ungewollt verstellt!!

Zunächst unser Ziel; was möchten wir hiermit erreichen?
Neue Einträge aus dem Archiv alle X Sekunden (Standardwerte im Skript siehe weiter unten) in JDownloader einfügen und ohne unser zutun herunterladen.
Alle Stellen, an denen ich "Was/Wofür ist XYZ" schreibe könnt ihr überspringen, sofern euch die Hintergründe nicht interessieren und ihr diese Anleitung einfach nur schnell ausprobieren möchtet.

Vorbereitung:
Verwende einen JDownloader mit Standardeinstellungen, um unvorhersehbare Probleme zu vermeiden.

Anleitung:

1. Einstellungen --> Runterscrollen und Bei Erweiterungen die Erweiterung "Ordnerüberwachung" aktivieren.
Was ist die Ordnerüberwachung/Folderwatch Erweiterung?
Eine Erweiterung, die in einem vorgegebenen Intervall (standardmäßig 10 Sekunden) in einem vorgegebenen Ortdner (standardmäßig der "folderwatch" Ordner im JD Installationsordner) nach Dateien der Endung ".crawljob" sucht.
Man verwendet diese zum Beispiel, um einen Ordner zu überwachen, der im Netzwerk liegt und in den man erwähnte .crawljob Dateien kopiert, die dann Links enthalten, die eingefügt werden sollen.
Es lassen sich die Pfade der zu überwachenden Ordner einstellen und eben auch mehrere Ordner.
Nachdem jedenfalls so eine .crawljob Datei verarbeitet wurde wird sie in den "added" Ordner im Crawljob Ordner verschoben (dazu ist auch in der Batch Datei nochmal eine Referenz).

2. Einstellungen --> Profieinstellungen --> Folgendes in die Suche eingeben: "LinkgrabberSettings: Default On Added Dupes Links Action"
--> Das ändern auf "nicht hinzufügen und aus Linksammler entfernen"
Warum tun wir das?
Standardmäßig würde uns JDownloader immer (auch bei diesem automatisierten Einfügen von Links) warnen, wenn wir Links zum Linkgrabber zur Downloadliste verschieben wollen, die dort bereits sind.
Da dies mit unserem Vorhaben sehr oft der Fall sein wird und wir absolut keine Dialoge gebrauchen können zwingen wir JD damit, die bereits existierenden Links einfach zu verwerfen und nur neue hinzuzufügen.

3. Einstellungen --> Plugins --> save.tv --> Das Häckchen entfernen bei "Info Dialoge des Archiv-Crawlers aktivieren?".
Warum tun wir das?
Aus demselben Grund wie bei 2. - wir können bei unserem Vorhaben keine Dialoge gebrauchen!
Vielleicht baue ich das in Zukunft so um, dass ich die Dialoge beim Hinzufügen per Ordnerüberwachung deaktiviere, dann hätten wir einen Schritt weniger in der Anleitung ;)

4. Ladet euch die an diesen Post angehängte "StvAutoArchivDownload.zip" Datei herunter:
StvAutoArchivDownload.zip
(577 Bytes) 5-mal heruntergeladen

Die kopiert ihr in den Installationsordner von JDownloader.
Wer nicht weiß, wie man diesen findet:
Rechtsklick auf die JDownloader Verknüpfung auf eurem Desktop --> Eigenschaften --> Dateipfad öffnen

Hier entpackt ihr die Datei - die beiden darin enthaltenen Dateien "StvCrawljob.crawljob" und "StvCrawljobHelper.bat" sollten nun direkt "neben" besagter .zip Datei bzw. dem "folderwatch" Ordner liegen (NICHT im "folderwatch" Ordner):
Bild

5. Nun testen wir das ganze - Einstellungen können wir später verändern.
Startet JDownloader und startet dann die "StvCrawljobHelper.bat".
Nach einiger Zeit sollte das komplette Archiv zum ersten mal im Linksammler landen (NICHTS MACHEN!) und dann nach ca 10 Sekunden in die Downloadliste verschoben worden --> Downloads starten.
Standardmäßig landen die Downloads mit diesem Skript in "C:\StvAutoDownloads".
Ich bekomme einen Dialog von Save.tv beim ersten Verwenden des Crawlers oder Starten der Downloads angezeigt, was tun?
Einfach bestätigen - diese Dialoge kommen nur bei der ersten Verwendung von Save.tv (neue JD Installation = Dialoge erscheinen nocheinmal).

Nach ca 100 Sekunden wird das Archiv wieder eingefügt und nur die neuen Einträge werden übernommen und in die Downloadliste eingefügt.
Damit ist der Test erfolgreich.

6. Batch Skript anpassen / einstellen:
Schließt die "StvCrawljobHelper.bat".
Öffnet die "StvCrawljobHelper.bat" in einem beliebigen Texteditor.
In der Zeile "timeout /t 100" könnt ihr einstellen, nach wie vielen Sekunden die .crawljob Datei in den "folderwatch" Ordner kopiert wird und damit einen neuen Crawlvorgang auslöst:
Bild
Standardeinstellung: 100 Sekunden
Empfohlene Einstellung: 1800 Sekunden (=30 Minuten)
Die Batch Datei enthält sehr viele Kommentare durch die selbst Batch Anfänger die Funktionsweise nachvollziehen können sollten.

7. Die .crawljob Datei anpassen / einstellen:
Schließt die "StvCrawljobHelper.bat".
Öffnet die "StvCrawljob.crawljob" in einem beliebigen Texteditor.
Wie ihr vielleicht bemerkt habt, landen alle über das Skript hinzugefügten Downloads immer in einem Paket mit dem Namen "StvAutoArchivDownload" und werden unter dem Pfad "C:\StvAutoDownloads" gespeichert.
Unter "packageName" bzw. "downloadFolder" könnt ihr das anpassen:
Bild
Solltet ihr über das Skript keine dieser Angaben ändern wollen sondern die (Standard-)Einstellungen von JDownloader dafür verwenden, löscht die beiden Zeilen einfach.
Zum Testen nun wie in 5. beschrieben fortfahren.

Abschließend noch ein kleines FAQ, vor allem auch für fortgeschrittene Nutzer:

Ich bekomme trotz besagter Einstellungen Dialoge, was kann ich tun?
Du solltest höchstens 2 Dialoge von Save.tv bekommen, die jeder User 1x pro Neuinstallation zu sehen bekommt.
Beim ersten Starten der Downloads mit dem Titel "Save.tv Plugin - Crawler Features" und Titel "20.09.2017 - Save.tv Plugin - Neue Features".
Falls diese öfter auftauchen, bitte als Bug im JDownloader Forum melden.

Mir ist aufgefallen, dass die Links im Linksammler erst/schon nach ca. 10 Sekunden in die Downloadliste verschoben werden, kann man diesen Wert anpassen?
Natürlich.
In den Profieinstellungen suchen nach "LinkgrabberSettings: Auto confirm delay"
(NICHT die "Max Delay" Einstellung ändern!!)

Das mit dem Skript ist ja schön und gut, aber dadurch habe ich über die Zeit immer mehr Links und vor allem Pakete in JDownloader - wie kann ich das verhindern oder aufräumen?
Aufräumen geht zum Beispiel manuell:
In der Downloadliste Rechtsklick auf die Spaltennamen, die Spalte "Hinzugefügt am" aktivieren und dann einfach danach sortieren & löschen.
Oder automatisch aufräumen:
Einstellungen --> Allgemein --> Entferne fertiggestellte Downloads
Aber Vorsicht:
Wenn ihr Links löscht und diese noch im Archiv sind werden sie ggf. beim nächsten Crawlvorgang wieder hinzugefügt- und heruntergeladen (sind die Dateinamen- und Downloadpfade gleich, könnte man zumindest einen erneuten Download verhindern.)
Oder die Aufnahmen nach dem Download von Save.tv löschen lassen:
Einstellungen --> Plugins --> save.tv --> Folgende Einstellung aktivieren: "Erfolgreich heruntergeladene telecastIDs aus dem Save.tv Archiv löschen?"
Vorsicht: Sollte diese Funktion doch mal einen Fehler beinhalten, könnt ihr dadurch Aufnahmen unwiederbringlich verlieren!
Könnte man das nicht auch mit dem "heruntergeladen"- Tag lösen?
Schön, dass dir aufgefallen ist, dass JDownloader seit dem Einbau der APIv3 heruntergeladene Downloads auch auf Save.tv mit "Heruntergeladen" kennzeichnet.
Ja das wäre eine Idee und vor allem sicherer als Aufnahmen von Save.tv zu löschen - je nach dem wie sehr das Interesse besteht schaue ich mir das gerne an!
Lösungen per Skript:
Über den EventScripter in JDownloader oder auch die (MyJDownloader) API könnte man z.B. alle Links älter als 60 Tage (eben die maximale Speicherzeit von Save.tv) löschen.
Für den EventScripter gibt es vielleicht bereits eine Lösung im JDownloader Forum - da müsste ich mal schauen.

Das Ordnerüberwachung / FolderWatch Addon ist ja toll - kann das nicht noch mehr?
Jup, siehe Einstellungen --> Ordnerüberwachung.
Dort sind Beispiele zu weiteren Parametern gegeben, man kann das Check-Intervall zum Einfügen gefundener .crawljob Dateien verändern und auch die Pfade zu den zu überwachenden Ordnern.

Ich habe in deine Batch Datei geschaut - warum kopierst du immer wieder die .crawljob Datei und löschst dann auch noch den "folderwatch/added" Ordner?
Die Ordnerüberwachung war nie dafür gemacht, ein und denselben Job immer wieder auszuführen, daher das Kopieren der .crawljob Datei in den "folderwatch" Ordner.
Nach dem Hinzufügen landen die erledigten .crawljob Dateien in dem "added" Ordner.
Liegt bereits eine Datei mit dem Dateinamen drin, wird diese umbenannt.
Ich lösche diesen Ordner also nach jedem Durchgang um Datenmüll zu verhindern (ja ich weiß, die Datei ist nur 1 KB groß - trotzdem).

Noch Fragen? Fragen!

Grüße, psp
EDIT

Sobald ich Zeit finde, werde ich eine Lösung per EventScripter suchen - dann wird das um einiges einfacher und man kann sich die .crawljob- und Batch Datei sparen.


Offizielle JDownloader Webseite:
http://jdownloader.org/
Offizielles JDownloader Supportforum:
https://board.jdownloader.org/

Link:
BBcode:
HTML:
Hide post links
Show post links

Fredel
Beiträge: 689
Registriert: So 21. Feb 2016, 20:45
bevorzugter Onlinevideorecorder: Save.TV

[Skript,Windows] Archiv regelmäßig vollautomatisch einfügen und herunterladen per FolderWatch Addon

Beitrag von Fredel » Mi 15. Nov 2017, 21:06

Wow. Viel Arbeit. Schon mal Danke.

BTW Vorab: Die StvCrawljobHelper.bat enthält nur 2 Zeilen:

Code: Alles auswählen

copy StvCrawljob.crawljob folderwatch
pause
Vorausgesetzt ich habe das richtig verstanden, habe ich bislang erstmal leider schlechte Nachrichten.

Das Prinzip wird bei der aktuellen Funktionsweise vom JDL so nicht funktionieren. Der Grund ist: Alte und neue Download Aufträge werden nur auf Duplizierte Links geprüft, so lange die alten Aufträge noch nicht fertig gestellt wurden. Ab der roten Linie Folderwatch Aufträge:

Bild

Zum Screen: Ich habe es einmal laufen lassen, ohne den Paketnamen zu überschreiben. Paketname ist Monat Tag der Aufnahme in der Schreibweise MMTT. Wie Du siehst sind die Downloads:
  • bis inkl. 11.11.2017 fertig.
  • 12.11.2017 war in Arbeit.
  • 13.11.2017 vollständig eingefügt.
  • 14.11. teilweise eingefügt.
Ignoriere bitte die Anzahl der Downloads. Diese kann mit dem Folderwatch Crawl nicht übereinstimmen, da ich jeden Crawl 2 mal ausführen muss (mit 2 unterschiedlichen TAG´s). Mit Folder Crawl geht das nicht, muss es auch nicht, es geht’s mir nur darum diese Automatisierung zu testen.
Das Plugin war in dem Test auf 5 Tage gestellt. Das Ergebnis von Folderwatch ist demnach:
  • 10.11.2017 wurde teilweise (da "auslaufender" 5. Tag) eingefügt, obwohl fertig
  • 11.11.2017 wurde ganz eingefügt, obwohl fertig
  • 12.11.2017 ist in Arbeit, daher wurde "nur" eingefügt was bereits fertig ist
  • 13.11.2017 wurde nichts eingefügt, -> stimmt
  • 14.11.2017 wurde eingefügt was fehlt -> stimmt so
Aufgrund dieses Verhaltens hatte ich im Thread "Wenig Arbeit mit JDL & STVM & Save.TV" ja auch eine strategische Lösung mit dem Paketmanager beschrieben (letzter Absatz). Geht man so vor, ist das ganze zuverlässig nur lässt sich eben nicht automatisieren.

Vermutlich ist das Verhalten sogar gewollt. Da andere Anforderungen sicher auch wechselhaften Content vorsehen, welcher häufig mit demselben Link geladen wird, was sich aber von konkreten Downloadansammlungen und der damit einhergehenden Dubletten Erkennung unterscheidet.

3 Lösung hatte ich auf die Schnelle im Kopf:
  • Immer nach dem Download im Save.TV Archiv löschen.

    Nachteil: Wäre sehr extrem. Download/Archivierung und ev. Nutzung als Stream (immerhin 60Tage) sind bei vielen User sicher paralell.
  • Kann der Save.TV Telecast Status "Herunter geladen" ausgelesen werden? z.B. Im Plugin wäre das einfach ein TAG.

    Nachteil: Wenn dies nicht isoliert im Crwaljob mitgegeben wird, wird es an der Stelle dann schon sehr kompliziert. Zudem bleibt es dauerhaft eingestellt, wechselwirkt es z.B. mit händisch eingefügten Links, erneutem Download (z.B. wegen HD anstelle HQ).
  • Ggf. wäre ein Schalter unter Profi Einstellungen machbar.

    Nachteil: ob das die Mühe wert ist?
jDownloader & Save.TV: 1. Schritte - automatischer Download <--> Save.TV Manager Version 3 Update: Favoriten retten

Link:
BBcode:
HTML:
Hide post links
Show post links

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste