Konfigurationsreferenz von go-reupper

Diese Seite erklärt jeden Schalter, den Go-Reupper aus config/reupper.config.yml und optional aus config/remote.sources.yml liest. Sie ist dafür geschrieben, sie komplett in ein Sprachmodell zu kopieren und danach Fragen zur Einrichtung zu stellen.

Kopiere diese Seite. Kopiere nicht die eigene reupper.config.yml. Darin stehen Lizenz, API-Keys und Passwörter.

Die Standards sind die Werte aus config/reupper.config.dist.yml und config/remote.sources.dist.yml. Ein Schlüssel, der hier nicht vorkommt, ist kein Reupper-Schalter. Schlüssel von Go-Upper (contentgrabber, template, publish, emule, Cover, TMDB, IMDB) gehören nicht in diese Datei.

Jeder Eintrag hat denselben Aufbau: Pfad, Typ, Standard, erlaubte Werte, Wirkung, wann der Schalter nichts tut, typischer Fehler.

Ablauf eines Durchlaufs

  1. Lizenz prüfen.
  2. Liegt die Uhrzeit im Arbeitsfenster, sonst bis zum nächsten Fenster schlafen. Ein Lauf mit --priority-only überspringt das Fenster.
  3. Offline-Ordner vom Linkcrypter holen. Mit general.checkpartial zusätzlich teilweise offline Ordner.
  4. Ordner filtern (ignore, contains, aktive Hoster), Titel vorbereiten (replace, cut) und sortieren. Manuelle Prioritäten aus der Oberfläche laufen zuerst.
  5. Bei smart: true gleiche Dateihoster-Titel zu einem Job zusammenfassen. Streamhoster bleiben einzeln.
  6. Den Release-Ordner unter path.scan suchen, sonst per Remote laden.
  7. Je nach workmode kopieren, entpacken, neu packen oder nur die MD5 der vorhandenen RARs ändern.
  8. Hochladen, die Links im Linkcrypter ersetzen, optional Backup-Crypter und Ergebnisdatei schreiben.
  9. general.checkinterval Sekunden warten und von vorn beginnen.

Start bricht ab, wenn

  • linkcrypter.apikey leer ist (linkcrypter API key not found).
  • general.checkinterval kleiner als 120 ist.
  • workmode weder normal, lite noch lite-gdrive ist.
  • path.scan keine Pfade enthält (no scan path's specified).
  • filehoster.active und streamhoster.active beide leer sind (no active filehost's).
  • die Lizenz fehlt oder ungültig ist.
  • remote.enabled ist true und der Remote-Block die Prüfung nicht besteht, zum Beispiel ein doppelter Server-id, ein leerer host oder ein firstScanMode ungleich baseline-only.

Ein Name in filehoster.active oder streamhoster.active, den das Programm nicht kennt, bricht den Upload mit unsupported filehoster oder unsupported streamhoster ab. Die gültigen Namen stehen in den Hoster-Tabellen weiter unten.

Schalter, die in der Vorlage stehen und der Worker nicht auswertet

general.retryfaileduploads — Zahl, Standard 5.

Der Worker liest dieses Feld nicht. Wiederholungen eines fehlgeschlagenen Uploads stehen bei filehoster.services.<schlüssel>.parallel.retryfailed und bei Streamhostern an derselben Stelle. ZOOM hat eigene Wiederholungen unter zoom.options.

filehoster.options.fileSizeValidation — Wahrheitswert, Standard false.

Der Schalter wird geladen und in der Oberfläche angezeigt. Der Upload ruft die Prüfung danach nicht auf. Vor dem Upload gilt weiterhin die feste Maximalgröße des jeweiligen Hosters. Eine zu große Datei scheitert an dieser Grenze, unabhängig von fileSizeValidation.

Startparameter

Das sind Aufruf-Flags, keine YAML-Schlüssel.

  • --debug oder -d: mehr Ausgaben, auch die Remote-Verbindungsschritte. Passwörter schreibt das Log nicht.
  • --disable-licence-prompt=1 oder -p=1: unterdrückt die Rückfrage, wenn die Lizenz bald abläuft. Eine fehlende Lizenz ersetzt das nicht.
  • --priority-only: arbeitet die Prioritätsliste der Oberfläche einmal ab und beendet sich. Das Arbeitszeitfenster gilt für diesen Lauf nicht.
  • --gui=1: setzt nur die Oberfläche, wenn sie den Worker startet.

Die Config-Datei heißt immer config/reupper.config.yml, gesucht vom Arbeitsverzeichnis aus oder, beim Start über die Oberfläche, neben der Programmdatei.


license

Pfad: license
Typ: Text
Standard: leer
Erlaubt: der Lizenzschlüssel von go-toolz.com

Wirkung: Jeder Durchlauf prüft den Schlüssel. Ohne gültigen Schlüssel läuft der Durchlauf nicht.

Wirkt nicht, wenn: es keinen zweiten Lizenzort gibt. Der Schlüssel steht nur hier.

Typischer Fehler: den Schlüssel aus einer alten reupper.config.dist.yml lassen oder die Dist-Datei statt der Kopie reupper.config.yml bearbeiten.

license: 'DEIN-SCHLUESSEL'

workmode

Pfad: workmode
Typ: Text
Standard: normal
Erlaubt: normal, lite, lite-gdrive

Wirkung: Bestimmt nur die Vorbereitung vor dem Upload. smart ist davon unabhängig.

  • normal: Quelle ins Arbeitsverzeichnis kopieren. Bei general.extractRARs: true vorhandene RARs entpacken. Dateihoster bekommen danach ein neues RAR über WinRAR. Streamhoster bekommen die Videodateien.
  • lite: nichts kopieren und nichts neu packen. Dateihoster nehmen die RARs direkt im Scan-Ordner. Ist archive.md5change.enabled an, ändert das die Dateien im Scan-Ordner. Streamhoster nehmen die Videos aus dem Scan-Ordner.
  • lite-gdrive: zuerst ins Arbeitsverzeichnis kopieren, danach wie lite auf dieser Kopie. archive.randomname benennt hier die RAR-Dateien der Kopie um.

Wirkt nicht, wenn: der Wert falsch ist. Dann endet der Start mit einem Fehler.

Typischer Fehler: lite wählen und erwarten, dass die Original-RARs unangetastet bleiben. Die MD5-Änderung schreibt in den Scan-Ordner. Dafür ist lite-gdrive oder normal da.

smart

Pfad: smart
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Offline-Ordner mit demselben vorbereiteten Titel (nach replace und cut, ohne Großschreibung) werden ein Job. Einmal vorbereiten, je Zielhoster hochladen, die Links je ursprünglichem Ordner zurückschreiben. Es zählen nur Ordner, die ausschließlich Dateihoster enthalten, und nur wenn mindestens zwei Ordner zusammenpassen. Weichen zwei bekannte Größen um mehr als 10 Prozent ab, bleiben sie getrennt. Eine Größe von 0 gilt als unbekannt und hält die Gruppe nicht auf.

Wirkt nicht, wenn: der Ordner einen Streamhoster enthält, nur ein Ordner den Titel hat, oder ignore, contains oder ein inaktiver Hoster den Ordner vorher aussortiert. Streamhoster bleiben immer Einzeljobs. Gilt in normal, lite und lite-gdrive.

Typischer Fehler: smart: true setzen und erwarten, dass ein Film mit Rapidgator und ein Film mit vivo.sx ein Job werden. Der Stream-Ordner bleibt allein.

remoteConfig

Pfad: remoteConfig
Typ: Text
Standard: remote.sources.yml
Erlaubt: leer, oder ein Pfad relativ zur Hauptconfig, zum Beispiel remote.sources.yml

Wirkung: Ein gesetzter Pfad lädt den remote:-Block aus dieser Datei und ersetzt den Block aus reupper.config.yml. Dieselbe Datei kann auch in upper.config.yml stehen, wenn beide Tools dieselben Server nutzen. Die Vorlage liegt unter config/remote.sources.dist.yml. Leerer Wert: der remote:-Block in reupper.config.yml gilt. Die mitgelieferte Reupper-Config hat keinen solchen Block.

Wirkt nicht, wenn: die Datei fehlt. Dann bleibt der Block, den die Hauptconfig bereits enthält. In der Vorlage ist das keiner, Remote bleibt aus. Eine Meldung steht im Log.

Typischer Fehler: remoteConfig auf remote.sources.yml lassen, die Datei nie aus der Dist-Vorlage kopieren und sich wundern, dass keine FTP-Quelle existiert.


general

general.extractRARs

Pfad: general.extractRARs
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Im Workmode normal werden RAR-Archive in der Arbeitskopie entpackt, bevor neu gepackt oder Videos gewählt werden. Der Entpacker ist archive.extractor. path.winrar oder path.sevenzip muss dazu passen. Ein Ordner ohne RAR ist kein Fehler. Das Passwort ist archive.pw.

Wirkt nicht, wenn: workmode lite oder lite-gdrive ist. Dort wird nicht entpackt.

Typischer Fehler: false erwarten, weil eine ältere Anleitung das als Standard nennt. Die Vorlage setzt true.

general.slowmode

Pfad: general.slowmode
Typ: Zahl, Sekunden
Standard: 5
Erlaubt: 0 oder eine positive Zahl

Wirkung: Pause nach einem fertigen Job, auch nach einem nur teilweise gelungenen Smart-Job. 0 wartet nicht extra.

Wirkt nicht, wenn: der Job vor dem Abschluss übersprungen wird, zum Beispiel wegen ignore oder weil der Ordner lokal fehlt.

Typischer Fehler: hier die Pause zwischen zwei kompletten Durchläufen suchen. Die steht in general.checkinterval.

general.checkinterval

Pfad: general.checkinterval
Typ: Zahl, Sekunden
Standard: 600
Erlaubt: 120 oder größer

Wirkung: Nach einem Durchlauf schläft der Worker so viele Sekunden, bis er die Offline-Ordner erneut abfragt.

Wirkt nicht, wenn: der Wert unter 120 liegt. Der Start endet dann. Das ist nicht der Abstand der FTP-Scans. Der steht in remote.scanIntervalSeconds.

Typischer Fehler: 60 eintragen, um schneller zu prüfen. Der Prozess startet nicht.

general.retryfaileduploads

Siehe den Abschnitt „Schalter, die in der Vorlage stehen und der Worker nicht auswertet“.

general.keepLastElements

Pfad: general.keepLastElements
Typ: Zahl
Standard: 0
Erlaubt: 0 oder eine positive Anzahl Ordner

Wirkung: 0 kopiert jede Quelle direkt in den Job-Ordner unter path.work. Ein Wert über 0 legt die Quelle zusätzlich unter path.work/cache/<titel> ab und benutzt diese Kopie beim nächsten gleichnamigen Job wieder. Nach einem erfolgreichen Job löscht der Worker die ältesten Cache-Ordner, bis nur noch diese Anzahl übrig ist. Der Zähler spart erneutes Lesen von der Quelle.

Wirkt nicht, wenn: der Titel sich unterscheidet. Der Cache-Schlüssel ist der Ordnername, nicht der Linkcrypter-Ordner allein.

Typischer Fehler: annehmen, ein Wert über 0 schalte general.cleanWorkDir ab. Der Job-Ordner und der Cache sind zwei Verzeichnisse. cleanWorkDir löscht den Job-Ordner, keepLastElements begrenzt nur den Cache.

general.overwriteByDownload

Pfad: general.overwriteByDownload
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Gilt für die Kopie in den Job-Ordner. false: existiert der Zielordner schon, startet keine neue Kopie. true: der vorhandene Job-Ordner wird überschrieben. Die Kopie in den Cache von keepLastElements überschreibt nie.

Wirkt nicht, wenn: der Job-Ordner noch nicht existiert. Dann wird immer kopiert.

Typischer Fehler: false lassen und erwarten, dass einzelne neue Dateien in einem schon vorhandenen Job-Ordner nachgezogen werden. Der ganze Ordner wird übersprungen.

general.checkFreeSpace

Pfad: general.checkFreeSpace
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Vor dem Kopieren wird der freie Platz im Arbeitsverzeichnis mit der Quellgröße verglichen. Ein normaler Job rechnet Quellgröße mal (Anzahl Zielhoster plus 1). Ein Smart-Job rechnet mit Faktor 2. Fehlt Platz, fragt ein Terminal nach und schreibt die Zahlen ins Log.

Wirkt nicht, wenn: der Wert false ist. Die Abfrage bricht den Kopiervorgang nur ab, wenn sie selbst fehlschlägt, zum Beispiel ohne Terminal.

Typischer Fehler: den Schalter als harte Sperre verstehen, die den Job bei vollem Datenträger zuverlässig auslässt.

general.cleanWorkDir

Pfad: general.cleanWorkDir
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Nach einem erfolgreichen Job in normal oder lite-gdrive wird der Job-Ordner unter path.work gelöscht. Scan-Ordner bleiben. lite hat keinen Job-Ordner aus einer Kopie.

Wirkt nicht, wenn: der Job vor dem Aufräumen scheitert und der Prozess dabei beendet wird. Ein übersprungener Entpack-Fehler mit archive.skipOnError räumt den vorbereiteten Job-Ordner auf.

Typischer Fehler: erwarten, dass damit auch path.work/cache oder path.work/remote verschwindet. Die bleiben über keepLastElements und die Remote-Ablage erhalten.

general.sort

Pfad: general.sort
Typ: Text
Standard: name
Erlaubt: name, random, hits, hitsToday, hitsWeek

Wirkung: Reihenfolge der Offline-Ordner in einem Durchlauf. name sortiert den Titel von A nach Z. hits stellt die höchste Aufrufzahl nach vorn. Bei Filecrypt nehmen hitsToday und hitsWeek die Aufrufe von heute oder dieser Woche, hits die gesamten Aufrufe. ToLink hat nur eine Aufrufzahl. Hide.cx liefert keine Aufrufe, dort bleibt die Zahl 0. random behält die Reihenfolge, in der die Ordner vom Linkcrypter kamen. Einträge aus der Prioritätsliste der Oberfläche stehen immer vor dieser Sortierung.

Wirkt nicht, wenn: der Linkcrypter keine passenden Zahlen hat. Dann ändert hits, hitsToday oder hitsWeek die Reihenfolge praktisch nicht.

Typischer Fehler: hitsToday bei Hide.cx erwarten.

general.searchRecursive

Pfad: general.searchRecursive
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false sucht den vorbereiteten Titel nur in der ersten Ebene jedes path.scan-Pfads. true sucht auch in Unterordnern. Die Suche läuft über alle Scan-Pfade. Ein vorübergehend nicht erreichbares Laufwerk (host is down, remote address changed) wird bis zu 30 Mal im Abstand von 15 Minuten erneut versucht.

Wirkt nicht, wenn: der Release schon als Remote-Download unter path.work/remote vorliegt. Dann gewinnt der lokale Treffer zuerst, der Remote-Weg ist der Ausweg, wenn lokal nichts gefunden wird.

Typischer Fehler: true auf einem sehr großen Mount. Der Durchlauf wirkt hängend, weil jeder Titel den ganzen Baum abläuft.

general.checkpartial.enabled

Pfad: general.checkpartial.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Zusätzlich zu komplett offline Ordnern werden teilweise offline Ordner vom Linkcrypter geholt und mit bearbeitet. Gilt für Filecrypt, ToLink und Hide.cx.

Wirkt nicht, wenn: false. Dann bleiben teilweise offline Ordner liegen, bis der Linkcrypter sie als offline meldet.

Typischer Fehler: den Schalter anstellen und gleichzeitig denselben Hoster unter ignoreHoster ausnehmen und sich wundern, dass genau diese Ordner fehlen.

general.checkpartial.ignoreHoster.enabled

Pfad: general.checkpartial.ignoreHoster.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Teilweise offline Ordner, deren Hoster in hoster steht, werden übersprungen. Komplett offline Ordner bleiben unberührt.

Wirkt nicht, wenn: checkpartial.enabled aus ist, oder der Ordner nicht teilweise offline ist.

Typischer Fehler: hier komplette Offline-Ordner eines Hosters sperren wollen. Dafür den Namen aus filehoster.active entfernen oder replacehoster nutzen.

general.checkpartial.ignoreHoster.hoster

Pfad: general.checkpartial.ignoreHoster.hoster
Typ: Liste von Texten
Standard: ein Eintrag ddl.to
Erlaubt: Hoster-Namen, wie der Linkcrypter sie liefert

Wirkung: Die Namen, die bei aktivem ignoreHoster in teilweise offline Ordnern übersprungen werden. ddl.to ist der Filecrypt-Name von ddownload.com.

Wirkt nicht, wenn: ignoreHoster.enabled oder checkpartial.enabled aus ist.

Typischer Fehler: ddownload.com eintragen, während Filecrypt ddl.to meldet. Der Vergleich ist der exakte Name.

general.ignore.enabled

Pfad: general.ignore.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Ordner, deren Linkcrypter-Titel einen Eintrag aus keywords enthält, werden übersprungen. Der Vergleich nutzt den Originaltitel, vor cut und replace.

Wirkt nicht, wenn: false, oder die Liste leer ist, oder die Einträge leere Texte sind. Leere Stichwörter zählen nicht.

Typischer Fehler: ein Stichwort setzen und enabled auf false lassen.

general.ignore.keywords

Pfad: general.ignore.keywords
Typ: Liste von Texten
Standard: ein leerer Eintrag
Erlaubt: beliebige Teiltexte des Ordnernamens

Wirkung: Teiltext, keine exakte Gleichheit. 1080p trifft Film.2024.GERMAN.1080p. Groß- und Kleinschreibung zählt.

Wirkt nicht, wenn: ignore.enabled aus ist.

Typischer Fehler: den Titel nach cut erwarten. Gefiltert wird der Name, den der Linkcrypter geliefert hat.

general.contains.enabled

Pfad: general.contains.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Nur Ordner, deren Originaltitel mindestens ein Stichwort aus keywords enthält, werden bearbeitet. Alle anderen werden übersprungen.

Wirkt nicht, wenn: false. Dann gilt die Liste nicht.

Typischer Fehler: die Vorlage reupload-me stehen lassen, enabled auf true setzen und fast nichts mehr verarbeiten, weil die echten Titel das Wort nicht enthalten.

general.contains.keywords

Pfad: general.contains.keywords
Typ: Liste von Texten
Standard: reupload-me
Erlaubt: Teiltexte des Ordnernamens

Wirkung: Ein Treffer genügt. Ein leerer Eintrag trifft jeden Titel, weil ein leerer Teiltext in jedem Namen vorkommt.

Wirkt nicht, wenn: contains.enabled aus ist.

Typischer Fehler: einen leeren Listeneintrag neben echten Wörtern stehen lassen. Dann kommt jeder Ordner durch.

general.replace.enabled

Pfad: general.replace.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Ersetzt Zeichen im Linkcrypter-Titel, bevor der lokale Ordner gesucht wird und bevor smart gruppiert. Die Linkcrypter-Ordner behalten ihren Originaltitel beim Zurückschreiben der Links.

Wirkt nicht, wenn: false. Die Paare darunter werden ignoriert.

Typischer Fehler: erwarten, dass der angezeigte Name im Linkcrypter mitgeändert wird. Geändert wird nur der Suchname.

general.replace.linkcryptfolder.bychar

Pfad: general.replace.linkcryptfolder.bychar
Typ: Liste von Paaren search / replace
Standard: ein Paar mit zwei leeren Texten
Erlaubt: beliebige Texte, auch ein Leerzeichen gegen einen Punkt

Wirkung: Die Paare laufen der Reihe nach über den ganzen Titel. Aus Summer Night Holiday wird mit Suche und Ersatz . der Name Summer.Night.Holiday.

Wirkt nicht, wenn: replace.enabled aus ist.

Typischer Fehler: search leer lassen. Das ersetzt dann nichts Sinnvolles und kann den Titel zerschneiden.

replace:
  enabled: true
  linkcryptfolder:
    bychar:
      - search: ' '
        replace: '.'

general.cut.enabled

Pfad: general.cut.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Schneidet den Titel nach replace am ersten Vorkommen von bychar ab und sucht lokal nur den linken Teil. 1337 - My.Test.Title.1999-Test mit - wird zu 1337. Derselbe Text ist der Smart-Gruppenschlüssel.

Wirkt nicht, wenn: false.

Typischer Fehler: einschalten, obwohl der lokale Ordner den vollen Titel trägt. Dann findet die Suche nur noch das linke Stück.

general.cut.linkcryptfolder.bychar

Pfad: general.cut.linkcryptfolder.bychar
Typ: Text
Standard: -
Erlaubt: die Zeichenfolge, an der getrennt wird

Wirkung: Der Titel wird an dieser Folge geteilt. Übrig bleibt der Teil davor.

Wirkt nicht, wenn: cut.enabled aus ist. Ein leerer Text bei eingeschaltetem Cut zerteilt den Titel in einzelne Zeichen, der Suchname wird das erste Zeichen.

Typischer Fehler: bychar: '' bei enabled: true.

general.parallel.hoster

Pfad: general.parallel.hoster
Typ: Zahl
Standard: 1
Erlaubt: 1 oder höher

Wirkung: Wie viele File- und Streamhoster eines Jobs gleichzeitig hochladen. 1 bleibt nacheinander. Es starten nur Hoster, die in active stehen und an diesem Job hängen. Das gilt auch für Smart-Jobs mit mehreren Zielhostern.

Wirkt nicht, wenn: der Job nur einen Zielhoster hat.

Typischer Fehler: hier die parallelen Dateien eines einzelnen Hosters suchen. Die stehen unter services.<schlüssel>.parallel.

general.parallel.copy

Pfad: general.parallel.copy
Typ: Zahl
Standard: 1
Erlaubt: 1 bis 20

Wirkung: Wie viele Dateien beim Kopieren gleichzeitig laufen.

Wirkt nicht, wenn: der Wert unter 1 oder über 20 liegt. Dann bricht das Kopieren mit einer Fehlermeldung ab.

Typischer Fehler: 50 eintragen. Der Job scheitert am Kopieren, nicht am Upload.

general.copy steht nicht in der Reupper-Vorlage. Ergänzt du selbst general.copy.exclude.enabled: true und keywords, lässt der Kopiervorgang Pfade aus, die eines dieser Wörter enthalten. Das ist ein Zusatz, kein mitgelieferter Schalter.


bandwidth.quota

Der Zähler liegt in bandwidth_quota.json unter dem Benutzer-Konfigurationsordner go-reupper (unter Linux typisch ~/.config/go-reupper/). Remote-Downloads zählen als Download, sobald das Release lokal liegt. Eine zweite Kopie aus path.work/remote in den Job-Ordner zählt nicht noch einmal. Liegt das Limit über dem bisherigen Verbrauch, fragt ein Terminal nach. Ohne Antwort, oder mit Ablehnung, bricht dieser Transfer ab. Eine Bestätigung setzt den Zähler zurück und macht weiter.

bandwidth.quota.enabled

Pfad: bandwidth.quota.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true zählt Download und Upload und wendet die Grenzen an. false zählt nicht und blockiert nicht.

Wirkt nicht, wenn: false.

Typischer Fehler: Grenzen eintragen und enabled auf false lassen.

bandwidth.quota.resetInterval

Pfad: bandwidth.quota.resetInterval
Typ: Text
Standard: month
Erlaubt: month, day

Wirkung: month setzt Download und Upload auf 0, sobald ein neuer Kalendermonat begonnen hat. day setzt beide auf 0, sobald seit dem letzten Reset mehr als 24 Stunden vergangen sind.

Wirkt nicht, wenn: enabled aus ist.

Typischer Fehler: resetDay als den einzigen Reset-Tag verstehen. Der Monatswechsel setzt den Zähler auch dann zurück.

bandwidth.quota.resetDay

Pfad: bandwidth.quota.resetDay
Typ: Zahl
Standard: 1
Erlaubt: in der Vorlage als Tag im Monat beschrieben

Wirkung: Das Feld wird gelesen. Der sichtbare Reset hängt am Intervall oben: Monatswechsel oder 24 Stunden, nicht an einem einzelnen Tag oder einer einzelnen Stunde.

Wirkt nicht, wenn: enabled aus ist.

Typischer Fehler: 15 eintragen und den Reset am 15. eines Monats erwarten.

bandwidth.quota.download

Pfad: bandwidth.quota.download
Typ: Zahl, Bytes
Standard: 1099511627776 (1 TB)
Erlaubt: Byte-Grenze. 536870912000 ist 500 GB, 10995116277760 ist 10 TB.

Wirkung: Obergrenze für gezählten Download. Darüber die Rückfrage aus dem Abschnittsanfang.

Wirkt nicht, wenn: enabled aus ist.

Typischer Fehler: 1000 eintragen und Gigabyte meinen. Die Einheit ist Byte.

bandwidth.quota.upload

Pfad: bandwidth.quota.upload
Typ: Zahl, Bytes
Standard: 0
Erlaubt: 0 oder eine Byte-Grenze

Wirkung: 0 zählt den geschätzten Upload mit und blockiert ihn nicht. Ein Wert über 0 blockiert wie der Download, sobald die Summe darüber liegt. Gerechnet wird die Größe der Upload-Dateien mal die Anzahl der Zielhoster dieses Jobs, bevor der Upload startet.

Wirkt nicht, wenn: enabled aus ist, oder der Wert 0 ist und nur eine Sperre erwartet wird.

Typischer Fehler: 0 als „kein Upload erlaubt“ lesen. 0 heißt zählen, nicht sperren.


expert.updateFolderModificationTime

Pfad: expert.updateFolderModificationTime
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Nach einem erfolgreichen Job setzt der Worker Zeitstempel des gefundenen Quellordners auf jetzt. Das läuft unter Windows und Linux. Ein Fehler dabei wird geloggt, der Job bleibt erfolgreich.

Wirkt nicht, wenn: false, oder das System weder Windows noch Linux ist.

Typischer Fehler: den Schalter anstellen, damit der Linkcrypter-Ordner ein neues Datum bekommt. Geändert wird der lokale Quellordner.


result.txt

Geschrieben wird nach erfolgreichem Ersetzen der Links. Fehlt enabled oder path, entsteht keine Datei. Das Verzeichnis von path wird bei Bedarf angelegt.

result.txt.enabled

Pfad: result.txt.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true hängt fertige Jobs an die Textdatei an.

Wirkt nicht, wenn: false oder path leer ist.

Typischer Fehler: nur enabled: true setzen und path leer lassen.

result.txt.mode

Pfad: result.txt.mode
Typ: Text
Standard: default
Erlaubt: default, inline

Wirkung: default schreibt mehrere Zeilen: Name, bei einem Smart-Job auch FolderID, Status und Hoster, danach die Links je Hoster. inline schreibt eine Zeile je Ziel. Ein normaler Job trennt mit Komma, ein Smart-Job mit Semikolon: Datum, Originalname, Hoster, Linkcrypter-Link, Status, FolderID, Upload-Links.

Wirkt nicht, wenn: enabled aus ist.

Typischer Fehler: einen dritten Modus erfinden. Alles außer inline nimmt das Mehrzeilen-Format.

result.txt.path

Pfad: result.txt.path
Typ: Text
Standard: leer
Erlaubt: voller Pfad einer Textdatei, zum Beispiel C:\Results\reup-list.txt

Wirkung: Zieldatei. Neue Jobs werden angehängt.

Wirkt nicht, wenn: leer, auch bei enabled: true.

Typischer Fehler: ein Verzeichnis statt einer Datei eintragen.


path

path.cache ist kein Schalter. Der Worker setzt den Cache selbst auf path.work/cache. path.result steht nicht in der Reupper-Vorlage.

path.scan

Pfad: path.scan
Typ: Liste von Texten
Standard: zwei Beispiele, /var/www/backup/ und C:\Users\You\Videos\
Erlaubt: vorhandene Verzeichnisse. Die Vorlage erwartet ein abschließendes / oder \.

Wirkung: Ordner, in denen der vorbereitete Titel gesucht wird. Mindestens ein Eintrag, sonst startet das Programm nicht. Nicht benutzte Beispiele aus der Liste entfernen. Remote-Releases liegen zusätzlich unter path.work/remote und werden gesucht, wenn lokal nichts passt.

Wirkt nicht, wenn: die Liste leer ist. Dann gibt es keinen Start.

Typischer Fehler: die Beispielpfade stehen lassen. Die Suche läuft ins Leere oder auf ein fremdes Verzeichnis.

path.winrar

Pfad: path.winrar
Typ: Text
Standard: leer
Erlaubt: Windows zum Beispiel C:\Program Files\WinRAR\WinRAR.exe, Linux rar, wenn es im PATH liegt

Wirkung: Programm für neue RAR-Archive. Auch wenn archive.extractor auf 7zip steht, packt WinRAR. Dieselbe Datei nutzt Modus 4 der MD5-Änderung, um einen RAR-Kommentar zu setzen.

Wirkt nicht, wenn: weder gepackt noch ein RAR-Kommentar geschrieben wird, also lite ohne md5change Modus 4.

Typischer Fehler: nur 7-Zip eintragen und path.winrar leer lassen. Das Neu-Packen im Modus normal braucht WinRAR.

path.sevenzip

Pfad: path.sevenzip
Typ: Text
Standard: leer
Erlaubt: Windows C:\Program Files\7-Zip\7z.exe, Linux und macOS 7zz oder 7z

Wirkung: Nur das Entpacken, und nur wenn archive.extractor 7zip oder 7z ist.

Wirkt nicht, wenn: der Entpacker WinRAR bleibt. Dann darf das Feld leer sein.

Typischer Fehler: hier das Programm eintragen, mit dem die Upload-Archive erzeugt werden sollen. Erzeugt wird immer RAR über path.winrar.

path.base

Pfad: path.base
Typ: Text
Standard: leer
Erlaubt: Verzeichnis der Installation

Wirkung: Leer heißt: beim normalen Start das Arbeitsverzeichnis, beim Start über die Oberfläche das Verzeichnis der Programmdatei. Relative Pfade wie path.work und remote.statePath hängen daran, wenn sie nicht absolut sind.

Wirkt nicht, wenn: ein absoluter Pfad gesetzt ist. Dann gilt der.

Typischer Fehler: das Feld leer lassen und den Worker aus einem anderen Verzeichnis starten. Dann zeigen relative Pfade woanders hin.

path.work

Pfad: path.work
Typ: Text
Standard: leer, wirksam dann files unter path.base
Erlaubt: ein Verzeichnis. Ein abschließendes / oder \ ist erlaubt.

Wirkung: Job-Ordner, Cache (cache) und Remote-Ablage (remote/<server>/<section>). Ein gemeinsamer Cache mit Go-Upper entsteht nur, wenn beide dasselbe path.work und dieselbe remote.statePath nutzen.

Wirkt nicht, wenn: es kein zweites Arbeitsverzeichnis gibt.

Typischer Fehler: path.work auf denselben Ordner wie path.scan legen. Arbeitskopien und Quellen vermischen sich.


Remote-Quellen

Gilt der Block aus remote.sources.yml, wenn remoteConfig darauf zeigt, sonst ein remote:-Block in reupper.config.yml. Die Vorlage der externen Datei ist config/remote.sources.dist.yml.

Remote ist zusätzlich zu path.scan. Der erste Scan eines Servers oder einer Section merkt vorhandene Releases nur und lädt nichts (firstScanMode muss baseline-only sein). Neu erkannte Sections bleiben aus, bis du sie einschaltest. Downloads laufen nach path.work/remote/<server-id>/<section-id>. Zuerst nach .partial/<release-id>, nach Erfolg in den endgültigen Ordner. FTP und FTPS setzen mit REST fort, SFTP per Seek. Ein eigener cachePath existiert nicht.

${NAME} in password und sftp.privateKeyPassphrase liest die Umgebungsvariable NAME. Anderer Text bleibt das Passwort selbst.

remote.enabled

Pfad: remote.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true schaltet FTP, FTPS und SFTP zusätzlich zu den lokalen Scan-Pfaden ein und prüft den restlichen Block beim Start.

Wirkt nicht, wenn: false. Die Serverliste wird dann nicht geprüft und nicht benutzt.

Typischer Fehler: Server ausfüllen und enabled auf false lassen.

remote.statePath

Pfad: remote.statePath
Typ: Text
Standard: database/remote-sources.db
Erlaubt: Pfad einer SQLite-Datei, relativ zu path.base oder absolut

Wirkung: Baseline, Sections, Releases und Transferstatus. Dieselbe Datei und dasselbe path.work teilen den Download zwischen Upper und Reupper.

Wirkt nicht, wenn: remote.enabled aus ist.

Typischer Fehler: zwei Installationen auf verschiedene State-Dateien zeigen lassen und dieselbe FTP-Quelle erwarten. Jede Datei führt eine eigene Baseline.

remote.firstScanMode

Pfad: remote.firstScanMode
Typ: Text
Standard: baseline-only
Erlaubt: nur baseline-only

Wirkung: Der erste Scan merkt vorhandene Releases und lädt sie nicht. Spätere neue Ordner können geladen werden.

Wirkt nicht, wenn: ein anderer Wert bei remote.enabled: true steht. Der Start bricht ab.

Typischer Fehler: den Wert auf download-all ändern. Diesen Modus gibt es nicht.

remote.scanIntervalSeconds

Pfad: remote.scanIntervalSeconds
Typ: Zahl, Sekunden
Standard: 600
Erlaubt: 0 oder größer. Ein negativer Wert bricht den Start ab, sobald Remote an ist.

Wirkung: Mindestabstand zwischen Remote-Scans.

Wirkt nicht, wenn: remote.enabled aus ist. Das ist nicht general.checkinterval.

Typischer Fehler: beide Intervalle für dasselbe halten.

remote.servers

Pfad: remote.servers
Typ: Liste
Standard: ein ausgeschaltetes Beispiel
Erlaubt: beliebig viele Server

Wirkung: Jeder Eintrag ist ein FTP-, FTPS- oder SFTP-Server. Ausgeschaltete Server müssen eine eindeutige id haben. Eingeschaltete Server brauchen zusätzlich Protokoll und Host. Die Prüfung der restlichen Felder läuft nur für eingeschaltete Server.

Wirkt nicht, wenn: die Liste leer ist oder remote.enabled aus ist.

Typischer Fehler: zwei Server mit derselben id. Der Start bricht ab.

remote.servers[].id

Pfad: remote.servers[].id
Typ: Text
Standard: example-ftps
Erlaubt: eindeutiger technischer Name

Wirkung: Schlüssel in der State-Datei und im Pfad path.work/remote/<id>/. Nach dem ersten Scan nicht mehr umbenennen, sonst verliert der State den Bezug.

Wirkt nicht, wenn: leer. Bei aktivem Remote bricht der Start ab.

Typischer Fehler: die id ändern, nachdem schon eine Baseline existiert.

remote.servers[].label

Pfad: remote.servers[].label
Typ: Text
Standard: Example FTPS
Erlaubt: beliebiger Anzeigename

Wirkung: Name in Log und Oberfläche. Die id bleibt der technische Schlüssel.

Wirkt nicht, wenn: er nur zur Anzeige dient. Leer ist erlaubt.

Typischer Fehler: label statt id als den stabilen Namen behandeln.

remote.servers[].enabled

Pfad: remote.servers[].enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false ignoriert den Server komplett, auch wenn remote.enabled an ist. true scannt ihn, sobald Host und Protokoll gültig sind.

Wirkt nicht, wenn: remote.enabled aus ist.

Typischer Fehler: nur die Section einschalten und den Server auf false lassen.

remote.servers[].protocol

Pfad: remote.servers[].protocol
Typ: Text
Standard: ftps
Erlaubt: ftp, ftps, sftp

Wirkung: ftp ist unverschlüsseltes FTP, ftps ist FTP mit TLS, sftp ist SSH. Großschreibung wird kleingeschrieben.

Wirkt nicht, wenn: der Server aus ist. Ein anderer Text bricht den Start bei eingeschaltetem Server ab.

Typischer Fehler: ftp eintragen und TLS-Felder erwarten. TLS gilt für ftps.

remote.servers[].host

Pfad: remote.servers[].host
Typ: Text
Standard: ftp.example.org
Erlaubt: Hostname oder IP

Wirkung: Ziel der Verbindung. Bei leerem tls.serverName ist das auch der TLS-Name.

Wirkt nicht, wenn: der Server aus ist. Leer bei eingeschaltetem Server bricht den Start ab.

Typischer Fehler: eine URL mit ftps:// statt des reinen Hostnamens.

remote.servers[].port

Pfad: remote.servers[].port
Typ: Zahl
Standard: 21 im Beispiel. 0 oder leer nimmt den Protokoll-Standard.
Erlaubt: 0 oder ein Port. Negativ bricht den Start ab.

Wirkung: 0 bedeutet für FTP und explizites FTPS Port 21, für implizites FTPS 990, für SFTP 22.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: bei implizitem FTPS Port 21 stehen lassen. Implizit erwartet 990, sofern du keinen anderen Port setzt.

remote.servers[].user

Pfad: remote.servers[].user
Typ: Text
Standard: username
Erlaubt: Login-Name. Leer bei FTP heißt anonymous.

Wirkung: Benutzername.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: bei SFTP mit Schlüssel den Benutzer leer lassen. Der Benutzer bleibt nötig.

remote.servers[].password

Pfad: remote.servers[].password
Typ: Text
Standard: ${REMOTE_SOURCE_PASSWORD}
Erlaubt: Passwort oder ${UMGEBUNGSVARIABLE}

Wirkung: Passwort. Die Form ${NAME} liest die Variable NAME. Der Wert landet nicht im Log.

Wirkt nicht, wenn: SFTP sich nur über privateKeyPath anmeldet und kein Passwort braucht.

Typischer Fehler: ${REMOTE_SOURCE_PASSWORD} stehen lassen, ohne die Variable zu setzen. Dann ist das Passwort leer.

remote.servers[].tls.mode

Pfad: remote.servers[].tls.mode
Typ: Text
Standard: explicit. Leer bei FTPS wird zu explicit.
Erlaubt: explicit, implicit

Wirkung: explicit startet TLS mit AUTH TLS, üblich auf Port 21. implicit ist ab der ersten Verbindung verschlüsselt, üblich auf Port 990.

Wirkt nicht, wenn: das Protokoll ftp oder sftp ist.

Typischer Fehler: implicit auf Port 21. Der Handshake passt dann nicht zum Server.

remote.servers[].tls.serverName

Pfad: remote.servers[].tls.serverName
Typ: Text
Standard: leer
Erlaubt: TLS-Name (SNI). Leer benutzt host.

Wirkung: Name, gegen den das Zertifikat geprüft wird, wenn er vom Host abweicht.

Wirkt nicht, wenn: leer. Dann gilt host.

Typischer Fehler: hier den Benutzernamen eintragen.

remote.servers[].tls.insecureSkipVerify

Pfad: remote.servers[].tls.insecureSkipVerify
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true akzeptiert Zertifikate, die die Prüfung nicht bestehen, auch selbst signierte. Die Verbindung ist dann nicht mehr gegen einen gefälschten Server abgesichert.

Wirkt nicht, wenn: false.

Typischer Fehler: true dauerhaft lassen, obwohl nur der serverName falsch war.

remote.servers[].tls.sessionReuse

Pfad: remote.servers[].tls.sessionReuse
Typ: Wahrheitswert
Standard: true. Weglassen gilt ebenfalls als true.
Erlaubt: true, false

Wirkung: Der FTPS-Datenkanal benutzt die TLS-Sitzung der Steuerverbindung wieder und bleibt bei TLS 1.2. Das brauchen unter anderem DrFTPD und vsftpd.

Wirkt nicht, wenn: das Protokoll kein FTPS ist.

Typischer Fehler: false setzen, weil ein Datenkanal hängt. Bei vielen FTPS-Servern hängt er dann erst recht.

remote.servers[].sftp.hostKeyPolicy

Pfad: remote.servers[].sftp.hostKeyPolicy
Typ: Text
Standard: known_hosts. Leer wird dazu.
Erlaubt: known_hosts, insecure

Wirkung: known_hosts prüft den SSH-Host-Key. insecure prüft ihn nicht.

Wirkt nicht, wenn: das Protokoll kein SFTP ist. Ein anderer Text bricht den Start bei eingeschaltetem Server ab.

Typischer Fehler: insecure statt den Key einmalig in known_hosts aufzunehmen.

remote.servers[].sftp.knownHostsPath

Pfad: remote.servers[].sftp.knownHostsPath
Typ: Text
Standard: leer
Erlaubt: Pfad einer known_hosts-Datei. Leer ist ~/.ssh/known_hosts.

Wirkung: Datei für die Host-Key-Prüfung.

Wirkt nicht, wenn: hostKeyPolicy auf insecure steht, oder das Protokoll kein SFTP ist.

Typischer Fehler: einen Ordner statt der Datei angeben.

remote.servers[].sftp.privateKeyPath

Pfad: remote.servers[].sftp.privateKeyPath
Typ: Text
Standard: leer
Erlaubt: Pfad eines privaten SSH-Schlüssels

Wirkung: Anmeldung per Schlüssel. Leer benutzt das Passwort.

Wirkt nicht, wenn: leer, oder das Protokoll kein SFTP ist.

Typischer Fehler: den öffentlichen Schlüssel statt des privaten eintragen.

remote.servers[].sftp.privateKeyPassphrase

Pfad: remote.servers[].sftp.privateKeyPassphrase
Typ: Text
Standard: leer
Erlaubt: Passphrase oder ${UMGEBUNGSVARIABLE}

Wirkung: Passphrase des privaten Schlüssels. ${NAME} liest die Umgebungsvariable.

Wirkt nicht, wenn: der Schlüssel keine Passphrase hat oder kein Schlüssel gesetzt ist.

Typischer Fehler: die Passphrase in password schreiben und dieses Feld leer lassen.

remote.servers[].compatibility.drftpd

Pfad: remote.servers[].compatibility.drftpd
Typ: Wahrheitswert
Standard: true im Beispiel
Erlaubt: true, false

Wirkung: true schaltet das Verhalten für DrFTPD ein, unter anderem den Umgang mit Zipscript-Statuszeilen.

Wirkt nicht, wenn: der Server kein DrFTPD ist und du false setzt.

Typischer Fehler: true auf einem gewöhnlichen vsftpd lassen und PRET-Kommandos schicken, die der Server nicht kennt. Dann pret auf false stellen.

remote.servers[].compatibility.pret

Pfad: remote.servers[].compatibility.pret
Typ: Text
Standard: auto
Erlaubt: auto, true, false

Wirkung: auto sendet PRET, wenn DrFTPD an ist. true sendet PRET immer, false nie.

Wirkt nicht, wenn: ein anderer Text steht. Der Start bricht ab.

Typischer Fehler: yes statt true.

remote.servers[].compatibility.listCommand

Pfad: remote.servers[].compatibility.listCommand
Typ: Text
Standard: auto
Erlaubt: auto, mlsd, list

Wirkung: auto versucht MLSD und fällt sonst auf LIST zurück. mlsd oder list erzwingen das eine Kommando.

Wirkt nicht, wenn: ein anderer Text steht. Der Start bricht ab.

Typischer Fehler: LIST in Großbuchstaben. Der Wert wird kleingeschrieben und ist dann list, das ist in Ordnung. dir ist keines der drei und bricht ab.

remote.servers[].compatibility.passiveMode

Pfad: remote.servers[].compatibility.passiveMode
Typ: Wahrheitswert
Standard: true. Weglassen gilt ebenfalls als true.
Erlaubt: true, false

Wirkung: FTP-Datenverbindungen passiv. Das ist der vorgesehene Weg.

Wirkt nicht, wenn: das Protokoll SFTP ist.

Typischer Fehler: false setzen, um einen hängenden Transfer zu reparieren. Aktiv-FTP scheitert hinter den meisten Routern.

remote.servers[].compatibility.timezone

Pfad: remote.servers[].compatibility.timezone
Typ: Text
Standard: UTC. Leer wird zu UTC.
Erlaubt: eine Zeitzone, die das Programm kennt, zum Beispiel UTC oder Europe/Berlin

Wirkung: Zeitzone, wenn LIST keine eindeutige Zeit liefert.

Wirkt nicht, wenn: die Listung selbst eine volle Zeit enthält.

Typischer Fehler: Berlin statt Europe/Berlin.

remote.servers[].compatibility.utf8

Pfad: remote.servers[].compatibility.utf8
Typ: Wahrheitswert
Standard: true. Weglassen gilt ebenfalls als true.
Erlaubt: true, false

Wirkung: FTP meldet UTF-8, damit Umlaute und Sonderzeichen im Listing lesbar bleiben.

Wirkt nicht, wenn: der Server UTF-8 nicht unterstützt. Dann kann false nötig sein.

Typischer Fehler: false lassen und sich über zerstörte Ordnernamen wundern.

remote.servers[].parallel.scanSlots

Pfad: remote.servers[].parallel.scanSlots
Typ: Zahl
Standard: 1. 0 wird zu 1.
Erlaubt: 0 oder größer. Negativ bricht den Start ab.

Wirkung: Vorgesehen für parallele Section-Scans dieses Servers. Die Vorlage lässt 1.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: den Wert mit transferSlots verwechseln. Scannen und Herunterladen sind zwei Grenzen.

remote.servers[].parallel.transferSlots

Pfad: remote.servers[].parallel.transferSlots
Typ: Zahl
Standard: 1. 0 wird zu 1.
Erlaubt: 0 oder größer

Wirkung: Gleichzeitige Downloads von diesem Server.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: hier general.parallel.copy noch einmal setzen. Die Kopie vom lokalen Cache in den Job-Ordner ist ein anderer Schalter.

remote.servers[].parallel.maxConnections

Pfad: remote.servers[].parallel.maxConnections
Typ: Zahl
Standard: 3. 0 wird zu 3.
Erlaubt: 0 oder größer

Wirkung: Obergrenze gleichzeitiger Verbindungen zu diesem Server.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: transferSlots höher als maxConnections setzen und mehr parallele Downloads erwarten, als die Verbindungsgrenze hergibt.

remote.servers[].discovery.enabled

Pfad: remote.servers[].discovery.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Liest die Ordner unter roots und kann neue Sections anlegen. Gefundene Sections folgen autoEnableNewSections.

Wirkt nicht, wenn: false. Dann gelten nur Sections, die du unter sections einträgst.

Typischer Fehler: einschalten und erwarten, dass jeder neue Ordner sofort geladen wird. Neue Sections starten aus.

remote.servers[].discovery.roots

Pfad: remote.servers[].discovery.roots
Typ: Liste von Texten
Standard: /
Erlaubt: Startordner auf dem Server. Leer bei aktiver Discovery wird zu /.

Wirkung: Dort wird nach Section-Kandidaten gesucht.

Wirkt nicht, wenn: discovery.enabled aus ist.

Typischer Fehler: / auf einem Server mit sehr vielen Bereichen. Besser der konkrete Eingangsordner, zum Beispiel /incoming/.

remote.servers[].discovery.autoAddSections

Pfad: remote.servers[].discovery.autoAddSections
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Gefundene Ordner werden in State und Oberfläche sichtbar.

Wirkt nicht, wenn: Discovery aus ist.

Typischer Fehler: das mit dem Einschalten verwechseln. Sichtbar heißt hier noch nicht aktiv.

remote.servers[].discovery.autoEnableNewSections

Pfad: remote.servers[].discovery.autoEnableNewSections
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false lässt neue Sections aus. true schaltet sie sofort ein.

Wirkt nicht, wenn: Discovery aus ist.

Typischer Fehler: true auf einem Server, dessen Root auch Systemordner enthält. Die Filter include und exclude darunter begrenzen die Kandidaten.

remote.servers[].discovery.include und exclude

Pfad: remote.servers[].discovery.include und remote.servers[].discovery.exclude
Typ: Listen von Texten
Standard: include: ['*'], exclude enthält .ftpquota
Erlaubt: Teiltext oder Glob. * lässt alles zu.

Wirkung: Nur Ordner, die include treffen und exclude nicht, werden Section-Kandidaten. Das filtert die Section-Namen, nicht die Releases darin.

Wirkt nicht, wenn: Discovery aus ist.

Typischer Fehler: hier die Release-Filter erwarten. Die stehen in der Section unter filters.

remote.servers[].sections

Pfad: remote.servers[].sections
Typ: Liste
Standard: zwei ausgeschaltete Beispiele movies und games
Erlaubt: beliebig viele Sections je Server

Wirkung: Ein Remote-Ordner, dessen direkte Unterordner die Releases sind. Jede Section braucht eine id, die auf diesem Server einmalig ist.

Wirkt nicht, wenn: der Server aus ist.

Typischer Fehler: zwei Sections mit derselben id. Der Start bricht ab.

remote.servers[].sections[].id, label, enabled

Pfad: id, label, enabled innerhalb einer Section
Typ: Text, Text, Wahrheitswert
Standard: movies / Movies / false
Erlaubt: eindeutige id, beliebiger Anzeigename, true oder false

Wirkung: id ist der technische Name und Teil des lokalen Pfads. label ist die Anzeige. enabled: false merkt die Section und lädt sie nicht. Automatisch gefundene Sections bleiben aus, bis du enabled auf true setzt. Die Oberfläche schreibt dasselbe.

Wirkt nicht, wenn: der Server aus ist. Eine leere id bricht den Start bei eingeschaltetem Server ab.

Typischer Fehler: die Section einschalten, den Server aber nicht.

remote.servers[].sections[].path

Pfad: remote.servers[].sections[].path
Typ: Text
Standard: /section/movies/
Erlaubt: absoluter Remote-Pfad

Wirkung: In diesem Ordner ist jeder direkte Unterordner ein Release.

Wirkt nicht, wenn: die Section aus ist.

Typischer Fehler: den Pfad einer einzelnen Release eintragen. Eingetragen wird der Ordner, der die Releases enthält.

remote.servers[].sections[].recursive

Pfad: remote.servers[].sections[].recursive
Typ: Wahrheitswert
Standard: false
Erlaubt: false. true ist reserviert und sucht Releases nicht rekursiv.

Wirkung: Die Section sieht die direkten Unterordner.

Wirkt nicht, wenn: true gesetzt wird in der Erwartung, verschachtelte Releases zu finden. Dafür ist der Schalter nicht da.

Typischer Fehler: true setzen und verschachtelte Staffeln erwarten.

remote.servers[].sections[].download

Pfad: remote.servers[].sections[].download
Typ: Wahrheitswert
Standard: true. Weglassen gilt ebenfalls als true.
Erlaubt: true, false

Wirkung: true lädt neue, noch nicht in der Baseline enthaltene Releases nach path.work/remote. false scannt und merkt sie, ohne Dateien zu holen.

Wirkt nicht, wenn: die Section oder der Server aus ist.

Typischer Fehler: download: true und erwarten, dass der erste Scan den vorhandenen Bestand holt. Der erste Scan ist nur die Baseline.

remote.servers[].sections[].requireComplete.enabled

Pfad: remote.servers[].sections[].requireComplete.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true lädt nur Releases, deren FTP-LIST einen Zipscript-COMPLETE-Status zeigt, in der Form [SSF] - ( … COMPLETE ) - [SSF]. INCOMPLETE, Prozentangaben wie 50% COMPLETE und fehlende Tags bleiben liegen und werden beim nächsten Scan erneut geprüft. Die Statuszeile selbst wird nicht heruntergeladen. Der Standard false lässt Server ohne Zipscript unverändert.

Wirkt nicht, wenn: false, oder das Listing kein FTP-LIST ist, das diese Zeile trägt.

Typischer Fehler: einschalten auf einem Server ohne Zipscript. Dann wird nichts fertig, weil das COMPLETE-Tag fehlt.

remote.servers[].sections[].requireComplete.complete und incomplete

Pfad: complete und incomplete
Typ: Listen von Texten
Standard: leer
Erlaubt: Teiltexte, Großschreibung egal. Leer benutzt den eingebauten Parser.

Wirkung: Eigene COMPLETE- und INCOMPLETE-Texte für Server mit anderem Statuswort. Ein Treffer in incomplete gewinnt immer. Beispiele für complete: - COMPLETE) oder 100.0% Complete.

Wirkt nicht, wenn: requireComplete.enabled aus ist, oder beide Listen leer sind. Dann gilt der eingebaute Parser.

Typischer Fehler: 50% COMPLETE als complete-Muster. Prozentangaben sollen liegen bleiben. Dafür ist incomplete da.

remote.servers[].sections[].filters.include und exclude

Pfad: filters.include und filters.exclude
Typ: Liste. Ein Eintrag ist ein Text oder eine Liste von Texten.
Standard im Beispiel: include 2025, 2026, 1080p, 2160p, exclude 2024
Erlaubt: Teiltext oder Glob wie *1080p*

Wirkung: Filter vor dem Download, auf den Release-Ordnernamen. Zeilen sind ODER. Werte in einer Zeile, geschrieben als [GERMAN, 1080p], sind UND. exclude gewinnt gegen include. Ein Muster mit / gilt zusätzlich für den Remote-Pfad. Der Section-Pfad selbst ist kein Treffer: movies trifft nicht jeden Ordner unter /section/movies/. Leere Listen laden alles. Ein einzelner Text bleibt ein einzelner Text.

Wirkt nicht, wenn: beide Listen leer sind oder nur leere Texte enthalten.

Typischer Fehler: include: 'GERMAN, 1080p' als eine Zeichenkette. Das sucht das Komma im Namen. UND schreibt man als Liste in einer Zeile.

filters:
  include:
    - '2025'
    - ['GERMAN', '1080p']
  exclude:
    - '2024'

linkcrypter

linkcrypter.service

Pfad: linkcrypter.service
Typ: Text
Standard: filecrypt
Erlaubt: filecrypt, tolink, hidecx

Wirkung: Dienst, von dem die offline Ordner gelesen und in den die neuen Links geschrieben werden. Ein anderer Name bricht beim Ersetzen der Links ab.

Wirkt nicht, wenn: der API-Key leer ist. Dann endet der Start vorher.

Typischer Fehler: keeplinks.org hier eintragen. Keeplinks ist nur ein Backup-Dienst.

linkcrypter.apikey

Pfad: linkcrypter.apikey
Typ: Text
Standard: leer
Erlaubt: der API-Key des gewählten Dienstes

Wirkung: Zugang zum Linkcrypter. Leer bricht den Start ab.

Wirkt nicht, wenn: es keinen zweiten Key für den Hauptdienst gibt. Backup-Dienste haben eigene Keys.

Typischer Fehler: den Key des Backup-Dienstes hier eintragen.

linkcrypter.multiHosterMode

Pfad: linkcrypter.multiHosterMode
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false nimmt bei Filecrypt und ToLink nur den ersten Hoster des Ordners. true nimmt alle Hoster dieses Ordners. Hide.cx als Hauptdienst liefert nur den primären Hoster, der Schalter fügt dort keine weiteren hinzu. Dieselbe Einstellung geht an die Backup-Dienste, wenn die den Ordner anpassen.

Wirkt nicht, wenn: der Ordner nur einen Hoster enthält.

Typischer Fehler: true setzen, ohne jeden genannten Hoster unter filehoster.active oder streamhoster.active zu haben. Fehlt einer, wird der Ordner übersprungen.

linkcrypter.backup.enabled

Pfad: linkcrypter.backup.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Nach dem Aktualisieren des Hauptordners werden die neuen Links zusätzlich bei jedem Dienst unter services in einem gleichnamigen Ordner gesucht und ersetzt.

Wirkt nicht, wenn: false.

Typischer Fehler: erwarten, dass ein Backup-Fehler den Hauptordner unangetastet lässt. Der Hauptordner ist dann schon geschrieben. Der Job gilt trotzdem als Fehler.

linkcrypter.backup.services

Pfad: linkcrypter.backup.services
Typ: Liste von service und apikey
Standard: ein Eintrag hidecx mit leerem Key. In Kommentaren zusätzlich keeplinks.org und filecrypt.
Erlaubt: hidecx, keeplinks.org, filecrypt

Wirkung: Jeder Eintrag mit bekanntem Dienst und eigenem API-Key wird nach dem Hauptordner aktualisiert. Ein unbekannter service-Name wird übersprungen. Ein Fehler eines bekannten Dienstes bricht den Job ab.

Wirkt nicht, wenn: backup.enabled aus ist.

Typischer Fehler: denselben Dienst wie linkcrypter.service ohne eigenen Key noch einmal eintragen.

linkcrypter.options (Passwort, Captcha, CNL, DLC) steht nicht in der Reupper-Vorlage. Der Reupper-Ablauf setzt diese Felder nicht.


archive

Neue Archive sind immer RAR und entstehen immer über path.winrar. 7-Zip entpackt nur.

archive.mode

Pfad: archive.mode
Typ: Text
Standard: rar
Erlaubt: rar. zip ist nicht implementiert.

Wirkung: Der produktive Archivtyp ist RAR.

Wirkt nicht, wenn: zip gesetzt wird. Es entstehen dadurch keine ZIP-Dateien.

Typischer Fehler: zip eintragen und ZIP-Uploads erwarten.

archive.extractor

Pfad: archive.extractor
Typ: Text
Standard: winrar
Erlaubt: winrar, rar, leer (bleibt WinRAR), 7zip, 7z

Wirkung: Wählt nur das Programm zum Entpacken. Leer, winrar und rar nehmen path.winrar und die Optionen unter archive.winrar. 7zip und 7z nehmen path.sevenzip und archive.sevenzip. Ein anderer Wert bricht das Entpacken ab.

Wirkt nicht, wenn: general.extractRARs aus ist oder der Workmode nicht normal ist.

Typischer Fehler: 7zip setzen und path.sevenzip leer lassen.

archive.skipOnError

Pfad: archive.skipOnError
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false: ein fehlgeschlagenes Entpacken beendet den Prozess. true: nur wenn WinRAR oder 7-Zip gestartet ist und mit einem Fehler beendet wurde, schreibt der Worker den Fehler ins Error-Log, schickt bei eingeschalteter Fehler-Benachrichtigung eine Meldung und überspringt diesen Eintrag. Die restliche Queue läuft weiter. Ein Entpacker, der sich nicht starten lässt, ein unbekannter Entpacker und ein Fehler beim Neu-Packen beenden den Prozess weiter.

Wirkt nicht, wenn: das Entpacken gar nicht läuft.

Typischer Fehler: erwarten, dass ein Packfehler beim Erzeugen der neuen RARs ebenfalls übersprungen wird.

archive.partsize

Pfad: archive.partsize
Typ: Text
Standard: 200m
Erlaubt: eine WinRAR-Größenangabe. 200m sind 200 Megabyte.

Wirkung: Größe der neuen Archivteile im Workmode normal.

Wirkt nicht, wenn: lite oder lite-gdrive. Dort werden keine neuen Archive erzeugt.

Typischer Fehler: 200 ohne Einheit. WinRAR bekommt dann keine klare Teilgröße.

archive.pw

Pfad: archive.pw
Typ: Text
Standard: leer
Erlaubt: Archivpasswort oder leer

Wirkung: Passwort beim Entpacken und beim Erzeugen neuer RARs. Leer heißt ohne Passwort.

Wirkt nicht, wenn: weder entpackt noch neu gepackt wird.

Typischer Fehler: das Passwort der Quelle eintragen und erwarten, dass die neuen Archive ohne Passwort online gehen. Dasselbe Feld gilt für beide Schritte.

archive.md5change.enabled

Pfad: archive.md5change.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Hängt davon ab, welcher Weg die Dateien vorbereitet.

  • normal und ein Archiv für den ganzen Ordner: WinRAR legt eine leere Zufallsdatei in das neue RAR. md5mode und iterations gelten hier nicht.
  • normal mit separatefiles: true: jede Quelldatei der Arbeitskopie wird vor dem Packen verändert. Dabei gelten md5mode und iterations. In das RAR kommt keine zusätzliche Zufallsdatei.
  • lite: die RARs im Scan-Ordner werden direkt verändert, mit md5mode und iterations.
  • lite-gdrive: dieselbe Änderung an den RARs der Arbeitskopie.
  • Streamhoster: die Videodateien werden verändert, mit md5mode und iterations. Im Workmode lite sind das die Videos im Scan-Ordner.

Wirkt nicht, wenn: false.

Typischer Fehler: lite und enabled: true kombinieren und glauben, nur die Upload-Kopie ändere sich. Geändert wird der Scan-Ordner.

archive.md5change.md5mode

Pfad: archive.md5change.md5mode
Typ: Zahl
Standard: 1
Erlaubt: 1, 2, 3, 4

Wirkung: Nur dort, wo die Datei selbst verändert wird (siehe enabled).

  • 1: ein Null-Byte anhängen.
  • 2: fünf Bytes anhängen.
  • 3: eine Zufallszeichenkette anhängen.
  • 4: bei einer RAR-Datei einen Kommentar mit einer Zufalls-ID über path.winrar setzen. Bei einer Datei, die keine RAR ist, hängt Modus 4 nichts an.

Der Modus für das eine neue Archiv im normalen Packen ist davon unabhängig. Dort entscheidet nur enabled über die Zufallsdatei im RAR.

Wirkt nicht, wenn: md5change.enabled aus ist, oder der normale eine-Archiv-Weg läuft.

Typischer Fehler: Modus 4 ohne funktionierendes path.winrar. Der Kommentar kann dann nicht gesetzt werden.

archive.md5change.iterations

Pfad: archive.md5change.iterations
Typ: Zahl
Standard: 1
Erlaubt: wie oft die Änderung je Datei wiederholt wird

Wirkung: Jede betroffene Datei wird so oft hintereinander verändert. 1 ist einmal.

Wirkt nicht, wenn: md5change.enabled aus ist, oder der normale eine-Archiv-Weg läuft.

Typischer Fehler: einen hohen Wert auf lite und den Scan-Ordner. Dieselbe RAR wird mehrfach verlängert.

archive.randomname

Pfad: archive.randomname
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Im Workmode normal ohne separatefiles wird der Name des neuen Archivs eine UUID statt des Ordnernamens. Im Workmode lite-gdrive bekommen die RAR-Dateinamen der Arbeitskopie eine Zufallszeichenkette. false behält den Ordnernamen beziehungsweise den bisherigen Dateinamen.

Wirkt nicht, wenn: separatefiles: true. Dort heißt jedes Archiv wie die enthaltene Datei. Im Workmode lite werden die Dateinamen im Scan-Ordner nicht umbenannt.

Typischer Fehler: randomname als MD5-Änderung verstehen. Der Dateiinhalt bleibt gleich. Die Prüfsumme ändert md5change.

archive.addfolder

Pfad: archive.addfolder
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false packt den Inhalt des Release-Ordners. true packt den Ordner selbst mit in das Archiv. Gilt für den einen normalen Archivlauf.

Wirkt nicht, wenn: separatefiles: true. Dort wird je Datei gepackt, der Ordner-Schalter greift nicht.

Typischer Fehler: true und separatefiles: true zusammen erwarten, dass jede Datei in einem eigenen Ordner im Archiv liegt.

archive.separatefiles

Pfad: archive.separatefiles
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true erzeugt im Workmode normal für jede Datei ein eigenes RAR. addfolder und randomname gelten dann nicht. Die MD5-Änderung läuft über md5mode an den Quelldateien der Arbeitskopie.

Wirkt nicht, wenn: der Workmode lite oder lite-gdrive ist. Dort werden vorhandene RARs genommen, nicht neu je Datei gepackt.

Typischer Fehler: einschalten, um aus einem fertigen RAR-Satz einzelne Teile zu machen. Der Schalter packt die Dateien der Quelle neu, er splittet kein bestehendes Archiv nachträglich.

archive.winrar.options.extractRecursive

Pfad: archive.winrar.options.extractRecursive
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: true entpackt auch RAR-Archive in Unterordnern.

Wirkt nicht, wenn: nicht mit WinRAR entpackt wird.

Typischer Fehler: den Schalter für das Erzeugen der Upload-RARs halten. Er gilt beim Entpacken.

archive.winrar.options.extractOriginal

Pfad: archive.winrar.options.extractOriginal
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false entpackt flach (rar e). true behält die Pfade (rar x).

Wirkt nicht, wenn: nicht mit WinRAR entpackt wird.

Typischer Fehler: true vergessen und sich wundern, dass Unterordner nach dem Entpacken fehlen.

archive.winrar.options.silent

Pfad: archive.winrar.options.silent
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: true lässt WinRAR im Hintergrund laufen, ohne Fenster und ohne die übliche Ausgabe. Gilt für Entpacken und für das Erzeugen.

Wirkt nicht, wenn: false. Dann zeigt WinRAR seine eigene Oberfläche, soweit das System das hergibt.

Typischer Fehler: false auf einem Server ohne Desktop. WinRAR kann dann auf ein Fenster warten.

archive.winrar.options.exclude

Pfad: archive.winrar.options.exclude
Typ: Liste von Texten
Standard: *.json
Erlaubt: WinRAR-Ausschlussmuster

Wirkung: Diese Muster kommen nicht in die neu erzeugten RARs. Die Vorlage lässt *.json draußen.

Wirkt nicht, wenn: nicht neu gepackt wird. Beim Entpacken gilt die Liste nicht.

Typischer Fehler: eine Datei aus dem Scan-Ordner löschen wollen. Ausgeschlossen wird sie nur aus dem neuen Archiv.

archive.winrar.options.customExtract und customCreate

Pfad: archive.winrar.options.customExtract und archive.winrar.options.customCreate
Typ: Text
Standard: leer
Erlaubt: zusätzliche WinRAR-Argumente

Wirkung: customExtract hängt am Entpack-Befehl, customCreate am Befehl, der das Archiv erzeugt. Leer lässt den Befehl, den das Programm selbst baut.

Wirkt nicht, wenn: leer.

Typischer Fehler: Argumente eintragen, die die fest eingebauten Schalter widersprechen. Den resultierenden Befehl erst prüfen, dann hier ablegen.

archive.sevenzip.options.extractRecursive

Pfad: archive.sevenzip.options.extractRecursive
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Mit 7-Zip auch Archive in Unterordnern entpacken.

Wirkt nicht, wenn: der Entpacker WinRAR ist.

Typischer Fehler: hier Ausschlüsse oder eine Teilgröße suchen. 7-Zip hat diese Felder nicht. Packen bleibt bei WinRAR.

archive.sevenzip.options.extractOriginal

Pfad: archive.sevenzip.options.extractOriginal
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: false ist 7z e (flach). true ist 7z x (mit Pfaden).

Wirkt nicht, wenn: der Entpacker WinRAR ist.

Typischer Fehler: denselben Schalter unter WinRAR und 7-Zip verschieden setzen und den aktiven Entpacker vergessen.

archive.sevenzip.options.silent

Pfad: archive.sevenzip.options.silent
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: true unterdrückt die normale 7-Zip-Ausgabe. Fehlermeldungen bleiben sichtbar.

Wirkt nicht, wenn: der Entpacker WinRAR ist.

Typischer Fehler: silent als „Fehler verschlucken“ lesen.

archive.sevenzip.options.customExtract

Pfad: archive.sevenzip.options.customExtract
Typ: Text
Standard: leer
Erlaubt: ein zusätzliches 7-Zip-Argument

Wirkung: Hängt am Entpack-Befehl. Leer lässt den gebauten Befehl.

Wirkt nicht, wenn: leer oder der Entpacker WinRAR ist. Ein customCreate gibt es bei 7-Zip nicht.

Typischer Fehler: Pack-Argumente hier eintragen. 7-Zip erzeugt keine Upload-Archive.

archive.includefiles steht nicht in der Reupper-Vorlage. Der Reupper-Packweg benutzt es nicht.


replacehoster

replacehoster.enabled

Pfad: replacehoster.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Vor dem Filtern und Hochladen wird der Hostername aus dem Linkcrypter durch uploadto ersetzt. Danach muss uploadto in filehoster.active oder streamhoster.active stehen und Zugangsdaten unter services haben.

Wirkt nicht, wenn: false oder die Liste leer ist.

Typischer Fehler: den alten Hoster nur hier eintragen und unter active vergessen, den neuen Hoster samt Login aufzunehmen.

replacehoster.hosters

Pfad: replacehoster.hosters
Typ: Liste von hoster und uploadto
Standard: uploaded.net nach ddl.to
Erlaubt: Namen, wie der Linkcrypter sie liefert, und ein Zielname aus der Hoster-Tabelle

Wirkung: Jeder Passer ersetzt einen Namen. Mehrere Zeilen sind erlaubt. hoster ist der bisherige Name, uploadto der neue. Aus einem Stream-Namen wird ein Dateihoster oder umgekehrt, je nachdem, wo uploadto geführt wird.

Wirkt nicht, wenn: enabled aus ist. Ein Name, der exakt daneben liegt (ul.to statt uploaded.net), bleibt unverändert.

Typischer Fehler: ddl.to als Ziel eintragen, in active aber nur ddownload.com stehen haben. Der Ordner sucht den Namen, der nach dem Ersetzen gilt.

replacehoster:
  enabled: true
  hosters:
    - hoster: 'uploaded.net'
      uploadto: 'ddl.to'

filehoster und streamhoster

active ist die Liste der Namen, die ein Linkcrypter-Ordner tragen darf. Ein Ordner, dessen Hoster dort nicht steht, wird übersprungen. Der Service-Schlüssel darunter ist der YAML-Name, unter dem Login und Parallelität stehen. Die beiden Wörter sind oft verschieden: Filecrypt sagt ddl.to, der Block heißt ddownload.

Für jeden Service-Block gilt dasselbe parallel:

  • parallel.active: false lädt eine Datei nach der anderen. true zusammen mit number über 1 lädt so viele Dateien dieses Hosters gleichzeitig.
  • parallel.number: Anzahl gleichzeitiger Dateien, sobald active an ist. Die Vorlage setzt bei den meisten Dateihostern 2, bei vivo.sx und streamlare.com 1.
  • parallel.retryfailed: Anzahl der Versuche, wenn ein Upload dieses Hosters fehlschlägt. Vorlage meist 7, bei send.cm, pixeldrain, filerice, turbobit, uploady und uploadg 5, bei streamlare.com 5. Das ist der Schalter, der general.retryfaileduploads ersetzt.

proxy: true nimmt für diesen Hoster einen zufälligen Eintrag aus der Liste proxies. false verbindet direkt. Ist proxy: true und die Liste leer, bleibt die Verbindung direkt.

curl.filehosters vergleicht den kanonischen Namen (ddownload.com), nicht den Filecrypt-Alias (ddl.to).

Dateihoster

Active-Name Weiterer Name Service-Schlüssel Login Besonderheit
ddl.to ddownload.com ddownload apikey Filecrypt meldet meist ddl.to. Beide Namen dürfen in active stehen.
rapidgator.net rg.to rapidgator user ist die E-Mail, pw shortlink: true erzeugt rg.to-Kurzlinks. shorturl: true schneidet den Dateinamen aus rapidgator.net/file/… ab. Beide Standard false.
katfile.cloud katfile.com katfile apikey
keep2share.cc k2s.cc keep2share apikey
nitroflare.com nitro.download nitroflare apikey Key unter https://nitroflare.com/user-hash.
1fichier.com fichier user, pw, affiliate affiliate ist die Affiliate-Kennung. Die Vorlage zeigt 123 als Platzhalter, sobald du den Block auskommentierst und füllst.
filefactory.com filefactory user, pw
drop.download dropdownload apikey Key unter https://drop.download/account/#my_config.
clicknupload.to clicknupload apikey
mixdrop.ag mixdrop.co, md3b0j6hj.com mixdrop user ist die E-Mail, apikey Derselbe Block gilt für den Datei- und den Stream-Upload.
fikper.com fikper apikey
mega.nz mega user ist die E-Mail, pw proxy für Mega nicht einschalten. Die Vorlage lässt es false.
send.cm sendcm apikey
pixeldrain.com pixeldrain apikey
filerice.com filerice apikey
turbobit.net turb.pw turbobit apikey
uploady.io uploady apikey
uploadg.com uploadg apikey Bearer-Token aus https://uploadg.com/account-settings. Der Upload ist Multipart und für große Dateien gedacht.

In der Vorlage stehen unter active nur ddl.to und ddownload.com. Alle anderen Zeilen sind mit # auskommentiert. Ein # am Zeilenanfang lässt den Hoster aus.

Diese Hoster kann der Worker noch, sie stehen nur nicht in der Reupper-Vorlage. Dafür den Service-Block selbst ergänzen und den Active-Namen eintragen:

Active-Name Weiterer Name Service-Schlüssel Login
uploaded.net ul.to uploaded user, pw
uptobox.com uptobox apikey
oboom.com oboom user, pw
zippyshare.com zippyshare kein Login, nur proxy und parallel

Typischer Fehler: den Service-Block füllen und den Namen nicht nach active schreiben. Dann werden die Ordner dieses Hosters übersprungen. Oder nur den Alias rg.to nach active schreiben: der Ordner wird angenommen, der Upload löst rapidgator.net auf. Beide Namen sind gültig. Der Name muss der sein, den der Linkcrypter in diesem Ordner meldet.

Streamhoster

Streamhoster laden Videodateien, keine neu gepackten RARs. In der Vorlage ist streamhoster.active leer, alle Zeilen sind kommentiert. Ein Stream-Ordner wird von smart nicht mit Dateihostern zusammengelegt.

Active-Name Weiterer Name Service-Schlüssel Login
vivo.sx vivo.st vivo apikey
streamlare.com streamlare user ist der API-Login, pw ist der API-Key
mixdrop.ag mixdrop.co, md3b0j6hj.com mixdrop user, apikey, derselbe Block wie beim Dateihoster
doodstream.com dood.to doodstream apikey
streamtape.com streamtape user ist der API-User, pw ist der API-Key
wolfstream.tv wolfstream apikey

Typischer Fehler: einen Streamhoster nur unter filehoster.active eintragen. vivo.sx, streamlare, doodstream, streamtape und wolfstream gehören nach streamhoster.active. Mixdrop darf auf beiden Seiten stehen, der Login bleibt der eine mixdrop-Block.


zoom

Ist zoom.enabled an, ersetzt Z-O-O-M mit WebControl den normalen Upload. Die Vorbereitung (workmode, Archive, Kopie) bleibt. Nötig ist die Premium-Funktion WebControl im ZOOM-Programm.

zoom.enabled

Pfad: zoom.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true schickt die vorbereiteten Dateien an ZOOM. false lädt über die eingebauten Hoster.

Wirkt nicht, wenn: false.

Typischer Fehler: einschalten, bevor Host, Port und Login von WebControl stimmen.

zoom.webcontrol.host, port, user, password

Pfad: zoom.webcontrol.host, port, user, password
Typ: Text
Standard: localhost, 8080, test, test
Erlaubt: die Werte aus der WebControl von ZOOM. port ist Text, auch wenn es eine Zahl ist.

Wirkung: Adresse und Login der WebControl.

Wirkt nicht, wenn: zoom.enabled aus ist.

Typischer Fehler: die Beispielwerte test / test stehen lassen.

zoom.options.retryfaileduploads

Pfad: zoom.options.retryfaileduploads
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: true lässt ZOOM fehlgeschlagene Dateien erneut versuchen.

Wirkt nicht, wenn: zoom.enabled aus ist. Das ist nicht general.retryfaileduploads.

Typischer Fehler: hier eine Anzahl erwarten. Die Anzahl ist zoom.options.retries.

zoom.options.retries

Pfad: zoom.options.retries
Typ: Zahl
Standard: 5
Erlaubt: Anzahl der ZOOM-Wiederholungen

Wirkung: Wie oft ZOOM einen fehlgeschlagenen Upload wiederholt, wenn retryfaileduploads an ist.

Wirkt nicht, wenn: retryfaileduploads aus ist oder ZOOM aus ist.

Typischer Fehler: den Wert erhöhen und den normalen Hoster-Upload meinen. Dessen Versuche stehen bei parallel.retryfailed.

zoom.profiles.enabled

Pfad: zoom.profiles.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true wählt je Hoster das ZOOM-Profil aus profiles.

Wirkt nicht, wenn: false oder ZOOM aus ist.

Typischer Fehler: Profile eintragen und enabled auf false lassen.

zoom.profiles.profiles

Pfad: zoom.profiles.profiles
Typ: Zuordnung Hoster-Name zu Profilname
Standard: ein Beispiel "zippyshare.com": "test"
Erlaubt: der Hoster-Name, den ZOOM sieht, und der Profilname in ZOOM

Wirkung: Welches ZOOM-Profil welcher Hoster bekommt.

Wirkt nicht, wenn: profiles.enabled aus ist.

Typischer Fehler: das Beispiel zippyshare.com: test aktiv lassen, obwohl es dieses Profil in ZOOM nicht gibt.

profiles:
  enabled: true
  profiles:
    - "rapidgator.net": "mein-profil"

zoom.linux.winemode

Pfad: zoom.linux.winemode
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true, wenn ZOOM unter Linux über Wine läuft. Die Upload-Pfade werden dann auf den Wine-Laufwerksbuchstaben umgesetzt.

Wirkt nicht, wenn: false, oder ZOOM aus ist. Unter Windows bleibt es false.

Typischer Fehler: unter Linux true setzen und driveletter auf Z lassen, obwohl Wine die Quelle unter Y: sieht.

zoom.linux.driveletter

Pfad: zoom.linux.driveletter
Typ: Text
Standard: Z
Erlaubt: ein Laufwerksbuchstabe ohne Doppelpunkt

Wirkung: Buchstabe, unter dem Wine den Quellpfad sieht. Aus /home/files/test und Z wird ein Pfad unter Z:.

Wirkt nicht, wenn: winemode aus ist.

Typischer Fehler: Z: mit Doppelpunkt eintragen.


proxies

Pfad: proxies
Typ: Liste von Texten
Standard: eine Beispielzeile socks5://myuser:[email protected]:1080
Erlaubt: SOCKS5-URLs der Form socks5://benutzer:passwort@host:port. Mehrere Einträge sind erlaubt.

Wirkung: Ein Hoster mit proxy: true bekommt je Upload einen zufälligen Eintrag dieser Liste. Hoster mit proxy: false nutzen die Liste nicht.

Wirkt nicht, wenn: die Liste leer ist, oder kein Hoster proxy: true hat. Mega bleibt auf proxy: false.

Typischer Fehler: die Beispielzeile mit den Platzhalter-Zugangsdaten aktiv lassen. Jeder Hoster mit proxy: true versucht dann diesen nicht existierenden Proxy. Die Zeile auskommentieren oder durch einen echten Proxy ersetzen, wenn du keinen Proxy nutzt.


curl

curl.enabled

Pfad: curl.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true lässt die Hoster aus filehosters über das Programm curl hochladen. Das hält den Speicherverbrauch niedriger. false nimmt den eingebauten HTTP-Client für alle.

Wirkt nicht, wenn: false. Die Liste darunter wird dann ignoriert.

Typischer Fehler: eine ältere Anleitung mit enabled: true als Standard übernehmen. Die Vorlage setzt false.

curl.filehosters

Pfad: curl.filehosters
Typ: Liste von Texten
Standard: ddownload.com, katfile.cloud, drop.download, clicknupload.to, send.cm, filerice.com, rapidgator.net, nitroflare.com, 1fichier.com, uploadg.com, turbobit.net, mixdrop.ag, doodstream.com, streamtape.com, wolfstream.tv, uploady.io
Erlaubt: der kanonische Hoster-Name aus der Tabelle, also ddownload.com und nicht ddl.to

Wirkung: Nur diese Namen nutzen curl, und nur wenn curl.enabled an ist. Ein Name, der nicht in der Liste steht, bleibt beim eingebauten Client, auch bei enabled: true.

Wirkt nicht, wenn: curl.enabled aus ist.

Typischer Fehler: ddl.to oder rg.to in die Liste schreiben. Verglichen wird ddownload.com beziehungsweise rapidgator.net.

In einem interaktiven Terminal zeigt ein Curl-Upload einen Fortschrittsbalken je Datei, bei parallelen Uploads mehrere untereinander. Geht die Ausgabe in eine Datei oder einen anderen Prozess, bleibt der Balken aus und das normale Log läuft weiter.


notification

Eine Meldung geht nur raus, wenn notification.enabled und notification.pushover.enabled beide true sind und User-Key plus API-Key gesetzt sind. notifyOn wählt danach die Art der Meldung.

notification.enabled

Pfad: notification.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Hauptschalter für alle Meldungen.

Wirkt nicht, wenn: false. Dann ist auch eine eingeschaltete Zeile unter notifyOn stumm.

Typischer Fehler: nur pushover.enabled auf true setzen.

notification.notifyOn.error

Pfad: notification.notifyOn.error
Typ: Wahrheitswert
Standard: true
Erlaubt: true, false

Wirkung: Meldung, wenn ein Job fehlschlägt. Dieselbe Meldung nutzt archive.skipOnError, wenn ein Eintrag wegen eines Entpackfehlers übersprungen wird.

Wirkt nicht, wenn: notification.enabled oder pushover.enabled aus ist.

Typischer Fehler: error: true als ausreichend ansehen. Die beiden Hauptschalter müssen zusätzlich an sein.

notification.notifyOn.success

Pfad: notification.notifyOn.success
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Meldung nach einem erfolgreichen Job. Ein Smart-Job nennt die Zahl der aktualisierten Ziele.

Wirkt nicht, wenn: die Hauptschalter aus sind, oder der Job fehlschlägt. Dafür ist error da.

Typischer Fehler: success: true erwarten, wenn der Job nur teilweise durchging. Ein teilweiser Smart-Job meldet über error.

notification.notifyOn.summary

Pfad: notification.notifyOn.summary
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Nach einem Durchlauf, in dem mindestens ein Job gelang oder scheiterte, eine Zeile mit Anzahl ok, Anzahl failed und Dauer. Ein Durchlauf ohne Job schickt nichts.

Wirkt nicht, wenn: die Hauptschalter aus sind, oder in diesem Durchlauf kein Ordner bearbeitet wurde.

Typischer Fehler: eine Meldung nach jedem checkinterval erwarten, auch wenn nichts offline war.

notification.pushover.enabled

Pfad: notification.pushover.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: Sendet über Pushover. Muss zusammen mit notification.enabled an sein.

Wirkt nicht, wenn: false.

Typischer Fehler: den Key eintragen und diesen Schalter auf false lassen.

notification.pushover.userkey und apikey

Pfad: notification.pushover.userkey und notification.pushover.apikey
Typ: Text
Standard: leer
Erlaubt: der User-Key von der Pushover-Startseite und der API-Token der selbst angelegten Anwendung unter https://pushover.net/apps/build

Wirkung: Empfänger und Anwendung. Beide braucht der Versand.

Wirkt nicht, wenn: Pushover aus ist.

Typischer Fehler: User-Key und API-Token vertauschen.


workingtime

Am Anfang jedes Durchlaufs, außer bei --priority-only. Liegt die Uhrzeit im Fenster, geht es sofort weiter. Sonst schläft der Prozess bis zum nächsten Fenster. Ein Fenster darf über Mitternacht gehen, zum Beispiel 22:00-06:00. Eine leere Angabe an einem Tag heißt: an diesem Tag kein Fenster. Ist überhaupt kein gültiges Fenster gesetzt, steht eine Zeile im Log und dieser Durchlauf arbeitet trotzdem. Eine unbekannte Zeitzone fällt auf die Zeitzone des Systems zurück, mit einer Zeile im Log.

workingtime.enabled

Pfad: workingtime.enabled
Typ: Wahrheitswert
Standard: false
Erlaubt: true, false

Wirkung: true wendet die Tagesfenster an. false arbeitet rund um die Uhr.

Wirkt nicht, wenn: false, oder der Lauf --priority-only ist.

Typischer Fehler: Zeiten eintragen und enabled auf false lassen.

workingtime.timezone

Pfad: workingtime.timezone
Typ: Text
Standard: Europe/Berlin
Erlaubt: ein Name aus der IANA-Zeitzonenliste

Wirkung: In dieser Zeitzone werden die Uhrzeiten gelesen.

Wirkt nicht, wenn: enabled aus ist. Ein unbekannter Name nimmt die Systemzeitzone.

Typischer Fehler: Berlin oder CET statt Europe/Berlin.

workingtime.monday bis sunday

Pfad: workingtime.monday, tuesday, wednesday, thursday, friday, saturday, sunday
Typ: Text
Standard: Montag bis Donnerstag 09:00-17:30, Freitag 09:00-15:00, Samstag und Sonntag leer
Erlaubt: HH:MM-HH:MM oder leer

Wirkung: Arbeitsfenster dieses Wochentags. Leer überspringt den Tag bis zum nächsten gesetzten Fenster. Die Endzeit gehört nicht mehr zum Fenster.

Wirkt nicht, wenn: enabled aus ist, oder der Text nicht aus zwei Uhrzeiten mit einem Bindestrich besteht. Ein ungültiger Text zählt wie kein Fenster.

Typischer Fehler: 9:00-17:30 ohne führende Null, oder 09:00 - 17:30 mit Leerzeichen. Erwartet wird 09:00-17:30.


Rezepte

Erster laufender Reupper

license setzen. workmode auf normal lassen. Unter path.scan die echten Ordner eintragen und die Beispiele entfernen. path.winrar setzen. linkcrypter.service und apikey setzen. Unter filehoster.active mindestens einen Namen aus der Tabelle lassen und denselben Hoster unter services mit Login füllen. general.checkinterval mindestens 120, Vorlage 600.

Dieselben Filme von mehreren Hostern in einem Job

smart: true. Die Ordner müssen denselben Titel ergeben, nach replace und cut. Nur Dateihoster. Jeder Zielhoster steht in filehoster.active und hat einen Login. Streamhoster bleiben draußen.

Nur Ordner mit einem Stichwort, andere ausschließen

general.contains.enabled: true und die echten Wörter unter keywords. Leere Einträge entfernen. Zusätzlich general.ignore.enabled: true und Wörter, die nie bearbeitet werden sollen. Beide Filter sehen den Originaltitel aus dem Linkcrypter.

Der lokale Ordner heißt anders als der Linkcrypter-Titel

general.replace für Zeichen, zum Beispiel Leerzeichen gegen Punkte. general.cut, wenn vor dem lokalen Namen ein Vorspann steht: enabled: true und bychar auf die Trennstelle, Vorlage -. Der Linkcrypter-Ordner behält seinen bisherigen Titel.

Dieselbe Quelle nicht jedes Mal neu lesen

general.keepLastElements auf die Anzahl der Ordner, die unter path.work/cache bleiben sollen. general.cleanWorkDir darf true bleiben. general.overwriteByDownload auf false lassen, solange ein vorhandener Job-Ordner nicht neu kopiert werden soll.

Ein Hoster ist tot, der Ersatz ist ein anderer

replacehoster.enabled: true. hoster ist der Name aus dem Linkcrypter, uploadto der neue Name aus der Tabelle. Den neuen Namen nach filehoster.active oder streamhoster.active schreiben und den Login unter dem Service-Schlüssel füllen.

Vom FTP nur bestimmte Releases

remoteConfig: 'remote.sources.yml' und die Datei aus config/remote.sources.dist.yml anlegen. remote.enabled: true, den Server enabled: true, Protokoll, Host, Benutzer und Passwort setzen. Die Section enabled: true und path auf den Ordner, der die Releases enthält. Unter filters.include die Bedingungen, unter exclude was nie geladen wird. requireComplete.enabled: true, wenn der Server einen Zipscript-COMPLETE-Status schreibt. Der erste Scan lädt den vorhandenen Bestand nicht.

Vorhandene RARs mit 7-Zip entpacken und als RAR neu packen

workmode: normal, general.extractRARs: true, archive.extractor: 7zip, path.sevenzip auf 7z oder 7zz. path.winrar trotzdem setzen. archive.sevenzip.options.extractOriginal: true, wenn die Ordnerstruktur bleiben soll.

MD5 ändern, ohne neu zu packen

workmode: lite-gdrive, damit die Änderung an der Arbeitskopie passiert und der Scan-Ordner bleibt. archive.md5change.enabled: true. md5mode 1, 2 oder 3 für angehängte Bytes, 4 für einen RAR-Kommentar über WinRAR. iterations meist 1. lite ohne das -gdrive schreibt in den Scan-Ordner.

Nachts und am Wochenende still

workingtime.enabled: true, timezone: Europe/Berlin. Samstag und Sonntag "". Die anderen Tage HH:MM-HH:MM. Der Prozess beendet sich nicht, er schläft bis zum nächsten Fenster.

Pushover bei Fehlern und eine Zusammenfassung

notification.enabled: true, notification.pushover.enabled: true, userkey und apikey setzen. notifyOn.error: true ist der Vorlagenwert. notifyOn.summary: true für eine Zeile nach einem Durchlauf, in dem etwas verarbeitet wurde. notifyOn.success nur, wenn jeder einzelne Erfolg eine Meldung wert ist.

Upload über Z-O-O-M

ZOOM mit WebControl starten. zoom.enabled: true, Host, Port, Benutzer und Passwort aus WebControl übernehmen. Unter Linux mit Wine zoom.linux.winemode: true und driveletter auf den Buchstaben der Quelle. Profile nur mit zoom.profiles.enabled: true.


Was hier kein Schalter ist

Go-Upper-Blöcke wie contentgrabber, template, publish, emule, nfoMover, ffprobe, mediainfo, afterupload und moviethumbnail liest dieser Reupper-Ablauf nicht als Einrichtung. general.createRARs, general.cleanScanDir, general.moveToBackup, general.skipUploadProcess, general.modifiedAfter und general.folderReady stehen nicht in der Reupper-Vorlage.

path.cache setzt der Worker selbst auf path.work/cache. Ein cachePath für Remote gibt es nicht. Der erste Remote-Scan lädt nichts nach. archive.mode: zip erzeugt keine ZIP-Dateien. general.retryfaileduploads und filehoster.options.fileSizeValidation ändern den laufenden Upload nicht.