synOTR - scriptsammlung für OTR-Workflow auf Synology Diskstation

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Beschreibung:
SynOTR ist ein scriptbasiterter Workflow für TV-Aufnahmen von onlineTVrecorder (OTR) auf einer Synology Diskstation (INTEL only). Dieses Paket ist wahrscheinlich nur für diejenigen interessant, die Nutzer von onlineTVrecorder sind.
Das Paket ist sicherlich nicht der Große Wurf, aber vielleicht nützt es ja dem einen oder anderen etwas …

Folgende Aufgaben werden automatisch abgearbeitet:
  • Verschlüsselte .otrkey-Dateien dekodieren
  • Filme nach eigenen Regeln umbenennen
  • Filme schneiden (Quelle: cutlist.at) / das zugrunde liegende Script (OTRcut) stammt von Daniel Siegmanski (Wiki) (funktioniert aufgrund der mitgelieferten Programme nicht für .mp4-Dateien)
  • Konvertieren der .avi’s in native .mp4’s (Mac OS tauglich)

Lässt man sich die .otrkey's per FTP-Push (z.B. Serien) auf die Diskstation übertragen, hat man ohne Zutun fertig geschnittene Aufnahmen.

Das Script stützt sich in großen Teilen auf Erkenntnisse in diesem Thread [klick]. Bitte entschuldigt den quick&dirty Code. Ohne Hilfe hätte ich hier gar nichts geschafft.
Mein Ziel war es, eine kompakte Lösung anbieten zu können, die für jedermann (vor allem auch Einsteiger) einfach nutzbar sein soll, ohne dass sich jeder in die Materie einarbeiten muss. Es ist also nichts an Skripten zu ändern, noch müssen zusätzliche Programme installiert werden (es ist kein IPKG notwendig - wenn es so funktioniert, wie ich mir das vorstelle). Alle entsprechenden Programme sind in dem Paket enthalten. Derzeit wird zum schneiden avisplit/avimerge aus Transcode verwendet. Wie die Namen schon zeigen, sind sie auf .avi-Dateien beschränkt. Die so erstellten Schnitte sind leider nicht framegenau (die Schnitte sind auf wenige Sekunden genau). Das beste (framegenaue) Ergebnis wäre mit Hilfe von avidemux zu erreichen. Es wäre super, wenn jemand dabei helfen könnte, avidemux-cli auf der DS zum laufen zu bringen. Entweder man könnte es mit den entsprechenden Abhängigkeiten kompilieren oder gleich entsprechend installieren. Die Architektur ist ja kein Problem.
Ich hoffe, dass alle mitgelieferten Programme out of the box funktionieren.

! ! ! ACHTUNG ! ! !
DAS GANZE PAKET IST NOCH BETA.
BENUTZUNG AUF EIGENE GEFAHR.
BEI PROBLEMEN ODER FRAGEN BITTE DAS FORUM VERWENDEN.

Verwendung / Vorbereitung:
  • Lade das neuste Archiv auf deine Diskstation und entpacke es an deinem gewünschten Zielort
  • Öffne die enthaltene Datei „Konfiguration.txt“ mit einem Texteditor (z.B. der in DSM 5.1 enthaltene):

    Hier sind die OTR-Zugangsdaten für das Decodieren, den Ordner mit den .otrkey’s sowie den Zielordner für die fertigen Filme einzutragen.

    Jeder der vier oben genannten Teilschritte kann aktiviert („on“), oder deaktiviert („off“) werden

    Des weiteren kann man sich ein Muster für den gewünschten Zieldateinamen zusammenstellen.

    Jetzt noch die Datei abspeichern (unter Windows beim speichern auf UNIX-Zeilenenden achten!)
  • Für den automatischen Ablauf ist das Script in den DSM-Aufgabenplaner einzutragen:

    Kopiere den Pfad zum entpackten Ordner „synOTR" (Filestation > Rechtsklick > Eigenschaften)

    Erstelle einen neuen Task im Aufgabenplaner (DSM-Systemsteuerung > Aufgabenplaner > Erstellen > Benutzer-definiertes Script) und füge nachstehenden Code ein (ersetze den Pfad hinter „appdir=“ mit deinem Pfad zum Ordner synOTR)

    

Aufruf inkl. LOG (Pfad anpassen ! ! ! ):

    Rich (BBCode):
    appdir=„/volume1/homes/admin/script/synOTR/“

    cd $appdir

    ./synOTR-start.sh >> ./_LOG/synOTR_`date +%Y`-`date +%m`-`date +%d`_`date +%H`-`date +%M`.log 2>&1


    oder nur direkter Aufruf des Skripts (Pfad anpassen ! ! ! - dann ohne LOG):
    Rich (BBCode):
    
„/volume1/homes/admin/script/synOTR/synOTR-start.sh“


    erstelle einen gewünschten Zeitplan (z.B. stündlich)


    (Die Logfiles sind ziemlich groß - z.T. über 50 MB. Sie befinden sich im Unterordner „_LOG“ und können jederzeit gelöscht werden. Läuft alles reibungslos, dann empfiehlt es sich wahrscheinlich im Aufgabenplaner den Scriptaufruf ohne Logfile zu verwenden)


Download:
Hier geht es zum Download [KLICK]

ToDo:
  • Datum der Dateien auf Aufnahmezeitpunkt setzen
  • OTR-xml Beschreibungsdateien als Datenbasis für Rename verwenden > (mehr Parameter wie z.B. Serieninformationen ect.) 

    Eine alternative Möglichkeit wäre die Daten über die OTR .csv zu bekommen (Script), bzw. TheTVDB.com als Quelle
  • avidemux-cli als Schnittprogramm verwenden (hat jemand Hilfe …)
  • Die DSM-Systemmitteilung für abgearbeitete Aufgaben arbeitet noch nicht korrekt in allen Konstellationen.
  • es ist mir noch nicht gelungen, für die AAC-Konvertierung in ffmpeg Multihreading zu aktivieren. Alle neuen DSen mit Intel-CPU’s haben ja 4 Threads bzw. 4 Kerne. Könnte man mehrere parallel nutzen, ginge das Ganze natürlich noch etwas flotter. 

  • ganz toll wäre es auch, wenn jemand eine PHP-Seite / GUI für die Konfigurationsdatei schreiben könnte. So ließe sich das Ganze auch bequem per SPK installieren und verwalten. Des Weiteren wäre so auch eine manuelle Cutlist-Auswahl möglich.


getestete Modelle:
  • DS713+ (DSM 5.1)
  • [Bitte gebt Rückmeldung, auf welchen x86 DSen es funktioniert - auf ARM und PPC DSen kann es nicht funktionieren!]

LIZENZ:
Dieses Script darf frei verändert und weitergegeben werden.
Das Script „OTRcut“ sowie die enthaltenen Programme stehen unter deren eigenen Lizenz.
 
Zuletzt bearbeitet von einem Moderator:

micho2

Benutzer
Mitglied seit
18. Juli 2012
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hi,

das hört sich ja super spannend an!

Bekommt man die codierten Dateien auch ohne push-FTP auf die NAS (ich will die NAS nicht von aussen erreichbar machen).
Mit der Downloadstation hatte ich das nicht hinbekommen.

Any Ideas?
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Na klar. Du kannst die otrkey's z.B. in deinen Downloadordner (oder sonst einen Ordner, in den die Downloadstation die Dateien speichert) schieben. Wichtig ist nur, dass der Ordner mit den .otrkey's in der Konfigurationsdatei eingestellt ist. Das mit dem FTP-Push war nur ein Beispiel für den vollendeten Automatismus ;).
 

micho2

Benutzer
Mitglied seit
18. Juli 2012
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Danke,

ich such noch nen Mechanismus wie ich genau den Download automatisiert auf die Syno ohne push hinbekomme.
Ich hatte mit der Downloadstation immer Probleme.
Jetzt hatte ich es gerade nochmal versucht und es scheint zu gehen, hat sich da was geändert?
 

micho2

Benutzer
Mitglied seit
18. Juli 2012
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Ah ....
Schneinbar gibt es Probleme mit der Downloadstation, wenn der Download eine Warteschlange hat. (Status: Fehler)
Wie könnte man das lösen?
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Genau. Mit Warteschlangen kommt die DownloadStation nicht zurecht.
Evtl. Pyload …?

Also ich lade nie direkt über onlinetvrecorder.com. Im habe einen Spendenaccount bei otr-files.de. Das ist es mir wert. Keine Wartezeiten und immer volle Geschwindigkeit. Auch in Verbindung mit der Browsererweiterung für die DownlodasStation funktioniert das einwandfrei.

Bzgl. FTP-Push:
Eigener "Freigegebener Ordner" / eigener Benutzer nur dafür / FTP-Port von 21 zu xyz umbiegen ==> das sollte dir keine Sorgen bereiten
 

micho2

Benutzer
Mitglied seit
18. Juli 2012
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Danke, probiere ich mal.

Noch na Frage: im Titel steht Intel only, die DS413 hat keinen Intel Prozessor, richtig? gibt es da was ähnliches?
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Die DS413 hat einen PowerPC-Prozessor. Dafür gibt es (so weit ich weiß) keinen Decoder. Ein Grund dafür, weshalb ich mir eine DS mit Intel-CPU genommen habe.
Es wäre sicherlich möglich, das Paket für schneiden, umbenennen und in mp4 konvertieren auf weiteren Plattformen (PPC, ARM) zur Verfügung zustellen. Aber ohne Dekodieren ist das ja doof … sieht also mit einer DS413 schlecht aus für dich - tut mir leid :(
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Version 0.5 Beta - [2015-01-05]

  • Benachrichtigung für fertige Aufgaben in DSM-Benachrichtigung [optional]
  • Benachrichtigung für fertige Aufgaben per kurzen Piep [optional]
  • Das Dateidatum wird auf das Ausstrahlungsdatum gesetzt, sofern Rename aktiv ist (bessere Sortiermöglichkeiten)
  • SERIENINFORMATION - Serien werden automatisch erkannt (sofern auf www.otr-serien.de gelistet) und der Sendungsname umbenannt (Serientitel - S01E01 Episodentitel …)
    ==> VIELEN DANK an Daniel von www.otr-serien.de für den Zugang zu seiner Seite!
    (Es wird 48h lang nach Serieninformationen gesucht, da diese nicht sofort auf otr-serien.de zur Verfügung stehen. Schlägt die Suche dann immer noch fehl, so wird die Normale Umbenennung verwendet. D.h. auch, dass Fernsehfilme erst nach 48h umbenannt werden).
    Bitte Unterstützt die Seite www.otr-serien.de bei fehlenden Episoden!
Geänderte Dateien:
  • synOTR-start.sh
  • Konfiguration.txt
  • /app/OTRcut.sh
  • /app/bin/touch
  • /app/bin/jq
[HR][/HR]
Version 0.4 Beta - [2014-12-27]
  • Rename: Korrektur bei Sendernamen
  • Cutlisten werden jetzt nach Dateigröße und wenn nicht vorhanden, dann zusätzlich auch nach Dateinamen gesucht
  • Updateabfrage (DSM-Benachrichtigung funktioniert nur, wenn das Script als Benutzer "root" aufgerufen wird)
Geänderte Dateien:
  • Konfiguration.txt
  • synOTR-start.sh
  • /app/OTRcut.sh
  • /app/bin/bc
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16
Vielen Dank für die Mühe!

Bei meiner DS 214Play läuft das gut, aber leider nur bis zum Schneiden. Die folgende Logfile wird ausgespuckt:
Arbeitsverzeichnist ist: /volume1/homes/juergen/otr/synOTR
Löschverzeichnis vorhanden
Löschverzeichnis ist: /volume2/Downloadstation/#recycle/
Decodierverzeichnis vorhanden
Decodierverzeichnis ist: /volume2/Downloadstation/_decodiert
/volume1/homes/juergen/otr/synOTR/app/bin/tr: line 1: syntax error: unexpected ")"
online_version=
(standard_in) 2: parse error
Update ==> Es wurde keine neuere Version gefunden. Du nutzt synOTR-Version: 0.5
==> decodieren:


==> schneiden:


SCHNEIDE: ==> Die_Abenteuer_des_Huck_Finn_14.12.19_20-15_arte_95_TVOON_DE.mpg.HD.avi

Keine Config-Datei gefunden, benutze Standardwerte.
detailierte Ausgabe aktiv: no
/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 231: : command not found
ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Überprüfe ob /volume1/homes/juergen/otr/synOTR/app/bin/avisplit installiert ist --> okay
Überprüfe ob /volume1/homes/juergen/otr/synOTR/app/bin/avimerge installiert ist --> okay
Überprüfe welche Methode zum Umrechnen der Zeit benutzt wird --> date: invalid date '@120'
intern
Verwende /volume2/Downloadstation/ als Ausgabeordner.
mkdir: can't create directory '/volume1/homes/juergen/otr/synOTR/app/tmp/otrcut': File exists
Verwende /volume1/homes/juergen/otr/synOTR/app/tmp/otrcut als Ausgabeordner.
Lösche temporäre Dateien
Lösche OtrKey
Überprüfe um welches Aufnahmeformat es sich handelt --> avi
Bearbeite folgende Datei: /volume2/Downloadstation/_decodiert/Die_Abenteuer_des_Huck_Finn_14.12.19_20-15_arte_95_TVOON_DE.mpg.HD.avi
filesize = 1838994060
Führe Suchanfrage anhand der Dateigröße [1838994060] bei "cutlist.at" durch ---> okay
Cutlist/s gefunden.

Es wurden folgende Cutlists gefunden:
/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 643: /volume1/homes/juergen/otr/synOTR/app/bin/tr: cannot execute binary file
/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 645: [: : integer expression expected
Die beste Bewertung ist:
/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 754: /volume1/homes/juergen/otr/synOTR/app/bin/tr: cannot execute binary file
Lade -->/volume1/homes/juergen/otr/synOTR/app/tmp/otrcut/: Is a directory
false

Im OTRcut.sh Skript habe ich nichts verändert.
Mache ich irgendwas falsch?

Grüße
toller
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Hallo toller,

erst einmal vielen Dank für's testen. Nein, du machst natürlich nichts falsch.
Ich habe es fast befürchtet, dass es mit den mitgelieferten Programmen Probleme geben wird … aber das kann man auf einer einzelnen DS halt auch nicht testen.
Bei dir hängt es zunächst am Programm "tr". Eigentlich sollte das Programm generell auf der DS sein, aber aus irgend einem Grund habe ich es ausgetauscht … :confused:

Kannst du mal eine Sicherung von dem Script "OTRcut.sh" im Ordner "app" machen, und dann das Original im DSM-Texteditor öffnen? Im Texteditor oben über Suchen/Ersetzten alle Zeichen "$appdir/bin/tr" mit "tr" ersetzen (ohne Anführungszeichen). Und dann speichern noch mal testen. So schauen wir mal, ob es mit dem Original geht.

Hast du ipkg installiert?
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16
Nach dem Ersetzen kam wieder derselbe Fehler!?

ipkg hatte ich mal installiert; habe es aber wieder runter gemacht, weil ich damit nicht so recht klar kam.

EDIT:
Kann es sein, dass meine DS nichts mit dem Befehl "bash" anfangen kann? Nachdem ich früher schon einmal damit Probleme mit einem Skript hatte, habe ich das mal mit "sh" versucht und dann gings.

Dasselbe habe ich mal mit dem Befehl "bash" im SynOTR-Start.sh in Zeile 134 versucht und einfach die 2 Buchstaben "ba" weggelassen. Folgende Meldung im Log:

...==> schneiden:


SCHNEIDE: ==> Die_Abenteuer_des_Huck_Finn_14.12.19_20-15_arte_95_TVOON_DE.mpg.HD.avi

/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 19: syntax error: unexpected "("
...
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Hast du das originale Script geändert und auch gespeichert? Denn diese Zeile müsste jetzt definitiv anders aussehen:
/volume1/homes/juergen/otr/synOTR/app/OTRcut.sh: line 643: /volume1/homes/juergen/otr/synOTR/app/bin/tr: cannot execute binary file
Ich habe es bei mir auch gerade noch einmal auf das Systemeigene tr unter /usr/bin/tr umgestellt, und es funktioniert hier einwandfrei.
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Das $ gehört dazu.
Das "$appdir/bin/" steht in deinem Fall für "/volume1/homes/juergen/otr/synOTR/app/bin/" und zeigt dem Script so das mitgelieferte "tr". Wenn es wirklich überall ersetzt ist, und du das selbe Script auch verwendest, dann kann dort nicht mehr "/volume1/homes/juergen/otr/synOTR/app/bin/tr" im LOG stehen, weil es ja nicht mehr verwendet wird … oder steht jetzt im LOG ein anderer Fehler?
 

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16
Habe dir eine pn mit der Logfile gesendet...
 

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16
Ups, nur den Vorschauknopf gedrückt. Sorry
 

toller

Benutzer
Mitglied seit
06. Februar 2014
Beiträge
132
Punkte für Reaktionen
0
Punkte
16
So, ich hoffe es geht jetzt.
Ja, wie es scheint geht es jetzt prima. Danke für deine Hilfe!
Die 0.6 werde ich später dann auch noch probieren. Wie es aussieht, kannst du also die DS 214 Play auch auf die Positivliste setzen...
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.742
Punkte für Reaktionen
7
Punkte
84
Vielen Dank für deine Rückmeldung.
Schön, dass es jetzt funktioniert, nachdem du ja mit der manuellen Methode im anderen Thread nicht so viel Glück hattest. Konntest du dir damals eigentlich noch weiterhelfen? Ich hatte halt auch keine Idee …

Ich würde dir jetzt noch empfehlen, die letzte Version herunterzuladen. Du brauchst nur deine angepasste Konfiguration.txt ersetzen und keine weiteren Anpassungen vornehmen. Es sind noch einige andere Sachen ausgebessert worden.

Zu deinem funktionierenden Ablauf wäre es für mich noch interessant, welche "Module" du verwendest. Dekodieren und schneiden ist mir jetzt bekannt, aber wandelst du auch in MP4's um und verwendest die Umbenennung auch in Verbindung mit der Serienerkennung? Zumindest einen Testlauf mit allen aktivierten Optionen wäre für mich sehr informativ. Es reicht, wenn du eine 'rohe' (ungeschnitten / nicht umbenannt) decodierte .avi-Datei aus dem Löschordner verwendest und in den Zielunterordner ".../_decodiert/" verschiebst. Für die Serienerkennung müsste die Sendung auf otr-serien.de bereits gelistet sein.

Vielen Dank für deine Unterstützung