[HowTo] Import von Aufnahmen in neue TVHeadend-Installation

  • Da kann ich dir nicht helfen.

    Die Skripte sind einfach nur als Hilfe gedacht, um die alten Aufnahmen in eine Neuinstallation von tvh zu bekommen. Natürlich kann man da weiter mit rumbasteln, um verschiedene Ideen umzusetzen, aber da würde ich mich dann ausklinken.

  • Ja klar - wäre auch nur ein Luxusprobelm. Wenn die Aufnahmen mal "abgschaut" und gelöscht werden, ist der Ordner wieder sauber
    Grüße und schönes WE ;)

    TV-Server: DS920+ ; Datengrab und TVH-Server DVB-C via FitzBox 6591
    MM-Server: DS116 ; Backup für DS920
    Client1: Sony Bravia XR 48OLEDA90K (Google-TV-Kodi)
    Client2: HP TouchSmart 520-1130ez / LibreELEC-Generic.x86_64 (Küche)
    Client5: Optiplex SSF-i3 / LibreELEC-Generic.x86_64 (Keller)

  • Moin,
    hatte mal langeweile.

    Für jede Aufnahme gibt es hier ein Logfile:
    log/">http://192.168.115.200:8091/files/volume1/%40appdata/tvheadend/dvr/[definition='1','0']log[/definition]/

    In jedem Logfile liegt der Speicherpfad der Aufnahme, Z.B.:
    44f19988754d556ca4c71eca479bf041.[definition='1','0']log[/definition]
    "filename": "/volume1/tvh/tvrecords/Natur im Garten (3-10)/Natur im Garten (3-10) - 2021-05-15.ts",

    Eigentlich sollten diese Aufnahmen alle im Ordner /volume1/tvh/tvrecords/Natur im Garten/ liegen, nicht für jede Aufnahme ein Ordner: Natur im Garten (3-10).
    Normalerweise könnte ich jetzt die 8 Files kurz bearbieten und die ts-Files in den richtigen Ordner verschieben (vorher den TVH stoppen).
    Leider hab ich mit den Rechten im Linux nicht so viel Ahnung.
    Ich lass es aber so - die Sendungen werden eh bald abgesehen - oder ich lösche die :evil:


    Die Rechte für die Logfiles liegen bei "sc-tvheadend" (Bild)

    Images

    TV-Server: DS920+ ; Datengrab und TVH-Server DVB-C via FitzBox 6591
    MM-Server: DS116 ; Backup für DS920
    Client1: Sony Bravia XR 48OLEDA90K (Google-TV-Kodi)
    Client2: HP TouchSmart 520-1130ez / LibreELEC-Generic.x86_64 (Küche)
    Client5: Optiplex SSF-i3 / LibreELEC-Generic.x86_64 (Keller)

  • Ich habe eine ziemlich spezielle Frage.
    Ich würde meine Aufnahmen gerne von einer TVH Installation auf einer Synology auf eine Installation auf einem Raspberry umziehen.
    Meine Linux Kenntnisse sind rudimentär. Bevor ich mir alles zerschieße, frage ich doch mal, ob und wie das möglich ist.
    Und so ganz steige ich durch den Prozeß nicht durch.

    In der Syno Installation ist der Aufnahme Ordner /volume1/TVH

    Auf dem Raspberry habe ich einen Ordner auf der Syno per SMB nach /home/hts/Aufnahmen/


    wie stelle ich das an?

    So wie ich das sehe, muss ich den Speicher Ort in den logs ändern.

    Die Aufnahmen in /home/hts/Aufnahmen/ verschieben?
    Denn zwei verschiedene Aufnahme Verzeichnisse gehen ja wohl nicht. So dass die Möglichkeit weg fällt, das alte Verzeichnis einfach in die Pi Installation zu mounten ?

    Wo kopiere ich dann die alten Logs hin.

    Wenn das nicht narrensicher zu machen ist, lasse ich lieber die Finger davon und lasse die alte Installation parallel laufen. Zum Glück geht das in Kodi 20 auf zwei TVH Installationen zuzugreifen.

    Gruß
    Patrick

  • Das sind immer lustige Zufälle, dass ich genau dann nach Monaten hier rein schaue, wenn jemand ne Frage hat.

    Hast du die Beschreibung zu den beiden Lösungen durch gelesen? Eigentlich steht da alles sehr gdnau erklärt.

    Wenn du die configs noch hast, aber der Pfad zu den Aufnahmen nicht mehr stimmt, musst du die halt alle anpassen. Automatisiert oder händisch.

    Wenn dir das zu viel Aufwand ist, musst du nur die Lösung 2 nehmen, da kommst du ganz ohne die configs aus.

  • Hmm, ich weiß ehrlich gesagt nicht, wie ich das noch einfacher beschreiben soll.

    Die configs kann man nicht einfach kopieren. Man muss den Inhalt über die API von TVH schicken. Dafür gibt es das Skript.

    Wichtig ist, dass man den Pfad dabei so anpasst, dass er auch zu den neuen Speicherorten passt.
    Ggf. muss man das Skript anpassen oder halt die Verzeichnisstruktur.

    Es kann ja zig verschiedene Varianten geben, wo jemand mit seinem TVH herkommt und wo er hin will. Ich kann und will das auch gar nicht abbilden. Ich hab meine Lösung in zwei Varianten geteilt und umfangreich beschrieben. Ich kann niemandem abnehmen, sich ggf. selbst in das Skript rein zu fuchsen und für den eigenen Bedarf anzupassen. Sry.

  • Moin,
    siehe oben:
    Pro Aufnahme gibt es ein Logfile in TVH, dort steht auch der Aufnahmepfad drin:

    44f19988754d556ca4c71eca479bf041.[definition='1','0']log[/definition]
    "filename": "/volume1/tvh/tvrecords/Natur im Garten (3-10)/Natur im Garten (3-10) - 2021-05-15.ts",

    Wenn du irgendwo umziehst muss die Ordnerstrucktur gleich bleiben, sonst findet TVH die Aufnahmen nicht mehr.
    Als ich mal umgezogen bin (allerdings von DS auf DS) habe ich die komplette App gesichert und vorher die Pfade angelegt.
    Dann zurückgesichert - läuft.

    (hoffe das das richtig war)

    TV-Server: DS920+ ; Datengrab und TVH-Server DVB-C via FitzBox 6591
    MM-Server: DS116 ; Backup für DS920
    Client1: Sony Bravia XR 48OLEDA90K (Google-TV-Kodi)
    Client2: HP TouchSmart 520-1130ez / LibreELEC-Generic.x86_64 (Küche)
    Client5: Optiplex SSF-i3 / LibreELEC-Generic.x86_64 (Keller)

  • Hallo,

    ich versuche mich soeben an der Lösung 2, scheitere aber an der Anpassung.

    Ich habe nur ein einziges Verzeichnis in welchem ALLE MP4 Dateien ohne weitere Unterverzeichnisse vorhanden sind. Wie muss ich den Code anpassen?

    Vielen Dank für Eure Hilfe,
    Gruß Wolfgang

    P.S. hat sich erledigt. Mein Vorhaben scheiterte an einem anderen Grund, leider.

  • Ich habe leider Lösung 1 von Simaryp nach wie vor nicht ans Laufen gebracht, habe aber festgestellt, dass KODI von selbst für Lösung 2 gesorgt hat:
    Die Aufnahmen sind ja als Dateien vorhanden, deshalb sind sie unter "Filme" zu finden. Und der Universal Scraper hat für viele Aufnahmen auch passende Cover etc. gefunden.

    Es wäre zwar schöner, wenn die alten Aufnahmen zusammen mit den neuen am selben Ort zu finden wären, aber so komme ich auch klar.

    Trotzdem vielen Dank!

    Ich habe ein ähnliches Problem, ich bekomme das Script nicht zum Laufen! :(
    Ich hatte einen Stromausfall und damit ist der TVH-Server hart runtergefahren, ohne seine IMDB sichern zu können. Auf der Platte sind jetzt zahlreiche Aufnahmen, die unter Kodi nicht (mehr) angezeigt werden. Die Logfiles habe ich zum größten Teil noch. Ich musste allerdings das Script ein wenig für Python3 anpassen:


    Änderungen:

    • Geänderte Import-Anweisungen
    • print erfordert jetzt Klammern, ergänzt
    • Es muss nun heißen urllib.request.urlopen(...), geändert
    • Der Aufruf darf keine reservierten Zeichen enthalten, das kann durch einen Aufruf von "quote(...)" erreichen, done

    Ich habe auf die for-Schleifen verzichtet, denn ein Teil ist bei mir ja noch vorhanden und ich möchte doppelte Einträge vermeiden, auch wenn das wiederholtes manuelles Editieren und Aufrufen bedeutet. Die Authentifizierung steht bei mir auf "plain und digest".
    Probleme:

    • Ich habe in TVH einen Admin und einen normalen User angelegt. Das Login geht bei beiden erst nach dem 3. oder 5., 6. Mal. Ich verwende Keepass, kann mich also nicht vertippt haben! Nerv! Keine Ahnung ob das mit dem nächsten Problem zusammenhängt.
    • Beim Versuch das Script auszuführen kommt es in Python zu einer Exception in einer Exception beim Versuch die URL aufzurufen:

    WTF???

    Cheers

    Don

  • Ich habe eigentlich exakt die Anweisungen für Lösung1 aus #1 befolgt.

    Wenn ich nun versuche das Phython-Skript auszuführen passiert exakt gar nichts.

    Ich bekomme die Anzeige wie im Screenshot und dabei bleibt es dann.

    Was kann ich tun, um zu sheen wo es "hängt"?

    Hallo md1302,

    ich habe davon bisher echt auch keine Ahnung. Versuche mich aber seit Mittwoch intensiv in das Thema einzuarbeiten.

    Ich bin Windows-User, deshalb müssen sich meine Erfahrungen nicht ganz mit deinen decken, aber...

    Bei mir sah es vorgestern noch genauso aus.

    Ursache war, das Python nicht richtig installiert war bzw. das python nicht bei den Windows Systemvariablen hinterlegt war.

    Für meinen Fall habe ich eine tolle Anleitung gefunden, die alles Schritt für Schritt erklärt. Aber die ist halt für Windows...

    https://www.marlem-software.de/marlemblog/2022/10/19/python-programmieren-trotz-handicap-python-installieren-in-windows-11/#:~:text=Um%20die%20Python%2DDatei%20ausf%C3%BChren,cd%20C%3A%5CPython%2DTest%20.

    Achja, und ich musste die Raute "#" vor dem python weglassen. Erst dann wurde der Befehl erkannt.

    NAS: Synology DS216j (2x4TB Seagate Ironwolf HDD) mit Emby Media Server
    Client: Kodi 18.9 auf Win10
    SAT über Kathrein EXIP418 und DVBViewer

  • Ich arbeite an Lösung 2.

    Als das Python-Script dann endlich ausgeführt wurde, habe ich eine Menge Fehlermeldungen erhalten.

    Ich bin immer noch dabei sie abzuarbeiten.

    Zuerst wurde der print-Befehl angemeckert. Den Ausdruck nach dem print-Befehl musste ich in Klammern setzen.

    Code
    Hier das Orginal:
        print"ERROR in filestr2num: file name doesn't start with 'YYYY-MM-DD_HH-MM.ts'. Use Inode Change Time instead."
    Bei mir funktioniert das:
        print("ERROR in filestr2num: file name doesn't start with 'YYYY-MM-DD_HH-MM.ts'. Use Inode Change Time instead.")

    Nicht wundern, bei mir werden Datum und Uhrzeit durch ein Unterstrich getrennt und nicht wie in der Originallösung durch ein "T", deshalb habe ich den Befehl leicht angepasst.

    Damit ich sehe, bei welcher Datei die Bearbeitung gerade ist (auch zur Fehlersuche), habe ich außerdem folgende Codezeile an den Anfang der Funktion importRecord gestellt. Das funktioniert ganz gut.

    Code
    print("Datei = ",filepath)

    Aktuell scheitere ich aber an folgender Fehlermeldung:

    Ich entnehme der Fehlermeldung, dass der Befehl "ffprobe" in der Funktion videoDuration nicht erkannt wurde.

    Offensichtlich ist "ffprobe" ein Programm, das mit der Installation von "ffmpeg" installiert wird.

    Ich habe "ffmpeg" von der SynoCommunity auf meinem Synology-NAS installiert. Aber irgendwie wird es nicht erkannt.

    Auch auf meinem Windows-Laptop (von dem ich das Python-Script starte) habe ich "ffmpeg" installiert.

    Dort habe ich es auch wieder bei den Windows-Systemvariablen hinterlegt.

    Mit dem Befehlen ffmpeg -version und ffprobe -version kann man prüfen, ob die Programme korrekt installiert wurden.

    Interessanterweise werden beide Programme erkannt, solange ich die Prüfung über CMD auf meinem Laptop mache.

    Nachdem ich mich aber per SSH auf meine Synology-NAS verbunden habe, wird ffprobe nicht mehr erkannt.

    Daher vermute ich, dass das Problem dort liegt.

    Leider weiß ich noch nicht, wie ich es lösen kann.

    NAS: Synology DS216j (2x4TB Seagate Ironwolf HDD) mit Emby Media Server
    Client: Kodi 18.9 auf Win10
    SAT über Kathrein EXIP418 und DVBViewer

  • Das Problem mit ffprobe habe ich nun gelöst, indem ich dafür den absoluten Pfad angegeben habe.

    Gleich darauf wartete das nächste Problem auf mich...

    Hier mein Code:

    Ich habe einige print-Befehle eingefügt, um den Fehler und den Code besser verstehen zu können...

    Und hier meine Fehlermeldung:

    Leider übersteigt das bei weitem meine Fähigkeiten. Falls jemand Tipps für mich hätte, wäre ich unendlich dankbar!

    NAS: Synology DS216j (2x4TB Seagate Ironwolf HDD) mit Emby Media Server
    Client: Kodi 18.9 auf Win10
    SAT über Kathrein EXIP418 und DVBViewer

  • So, ich kämpfe jetzt seit 10 Tagen mit der Lösung 2.

    Ich habe schon einige Probleme gelöst.

    An der Berechnung der Aufnahmedauer bin ich allerdings gescheitert.

    Ich habe mir jetzt geholfen, indem ich gesagt habe, wenn die Funktion in einen Fehler läuft, gebe ich die Aufnahmedauer als 1 Stunde vor.

    Das scheint auch zu funktionieren. Ich weiß nur noch nicht, welche Auswirkungen, das auf meine Aufnahmen hat.

    Ich habe den Code angepasst und mit reichlich neuen Kommentaren versehen.

    So sieht er aktuell aus:

    Wahrscheinlich hat mein Code noch ein Problem damit, dass meine Dateinamen auch Leerzeichen enthalten können.

    Um dieses Problem auszuschließen, habe ich die aktuelle Testaufnahme allerdings angepasst, sodass sie kein Leerzeichen enthält.

    Dennoch komme ich nicht zum Ziel.

    Hier meine aktuelle Fehlermeldung.

    Kann mir jemand bei der Lösung weiterhelfen?

    Ich muss sonst leider hier abbrechen. Ich weiß einfach nicht mehr weiter.

    NAS: Synology DS216j (2x4TB Seagate Ironwolf HDD) mit Emby Media Server
    Client: Kodi 18.9 auf Win10
    SAT über Kathrein EXIP418 und DVBViewer

  • Moin,

    bin mal wieder an dem Thema dran.

    Ich versuche gerade alles was nicht direkt von Synology ist, auf einen kleinen Dell-Wyse zu portieren.

    Hatte schon den LMS (Logitech-Media-server) und Osca#m dort neu hingesetzt.

    Habe mir auch den Osca#m und TVH selber auf meiner Hardware kompiliert - meiner Meinung merkt man das am Kodi-Clienten auf jeden Fall an Umschaltzeiten und alles was PVR ist.

    Ich denke Synology wird wohl bald alles was Multimedia ist rausschmeissen (siehe DS-Video).

    Also habe ich den Configordner der DS per WinSCP komplett auf meinen PC runtergeladen. (besser man packt sich im Lunix das Zeugs zusammen)

    Dort dann das Verzeichnis nach dem alten Aufnahmeordner durchsucht - und mit einem Rutsch ersetzt durch den neuen Aufnahmeordner.

    In meinem Falle habe ich den alten Ordner der DS weitergenutzt und nur gemountet.

    Bitte aufpassen! - Ausser den Logfile der Aufnahmen sind auch noch die Datei (Conf) des eigentliche Aufnahmeordner und eventuell der Links für die Picons zu ändern.

    Erstmal nur die Records-Logfiles ändern dann neu suchen - da werdet ihr schon sehen.

    Dann noch mit dem WinSCP prüfen ob die Rechte für hts/video noch stimmen, eventuell neu setzen - auch mit dem WinSCP.

    Dann habe ich festgestellt, das TVH zu schnell gestartet wird obwohl der Recordordner noch nicht komplett gemountet ist.

    Dann kommt der Fehler - keine Aufnahmen gefunden o.ä.

    Ich habe dann in der Datei "tvheadend.service" eine Startverzögerung von 10sek eingebaut.

    Ich bin kein Linux-Profi !! - alles nur angelesen und durch Selbstversuche erkämpft ;)

    (ja ich weiß, kann man alles mit Container machen - habe mit aber den LMS schon zweimal zerschossen)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!