Automatisches Update der Channels.conf aus dem Internet

  • Nach der Senderverschiebungsorgie auf Astra in der vergangenen Zeit habe ich ein kleines Script entwickelt, welches die Senderliste von www.linowsat.de herunterlädt und in die aktuelle channels.conf einarbeitet. Dies ist die erste Testversion 0.6 und ich hoffe auf viele Tester und Feedback.


    Die Features dieses kleinen Bash scriptes:

    • Erstellen einer neuen channels.conf aus der bestehenden (die aktuelle Datei wird nicht angefaßt)
    • Die bestehende Kanalreihenfolge bleibt erhalten
    • Es werden keine Kanäle eingearbeitet welche in der Originaldatei nicht enthalten sind
    • Alle Gruppen und Kommentare bleiben erhalten
    • Es wird das Umbennen von Kanälen ebenso erkannt, wie die Veränderung ihrer Parameter
    • Sollte ein Timer auf einem Kanal eingestellt sein, bei welchem sich die für den Timer relevanten Daten ändern, so wird die Änderung nicht durchgeführt, da sonst der VDR nicht mehr startet
    • Ausgabe von klaren Meldungen welche Kanäne aktualisiert, umbenannt, verschoben oder beibehalten wurden, bzw. welche Timer ein Update verhindern


    Nutzung:
    Um das Script zu nutzen, einfach das tar.gz-Archiv über

    Code
    tar -xvzf checkchannels.tar.gz

    in einem Verzeichnis entpacken. Dann das Script mit einem Editor öffnen und die VDRConf-Variable am Anfang des Scriptes anpassen. Danach kann man das Script (bei bestehender Internetverbindugn) starten. Hilfe gibt es über

    Code
    checkchannels -h

    Die neue channels.conf wird unter dem Namen newchannels.conf im Verzeichnis /tmp angelegt. Getestet wurde das Script bisher nur auf Fedora Core 6. Für Erfolgsmeldungen auf anderen Betriebssystemen wäre ich sehr dankbar.


    Neue Version: Siehe unten

  • Hallo SHODAN,


    vielen Dank für das tolle Skript. Ich benutze es unter C't-VDR 6 (Debian Etch).
    Ich musste nur die VDRConf-Variable auf /var/lib/vdr setzen und das Skript lief los. Da meine channels.conf anscheinend einige Änderungen nicht mitbekommen hat, war die Ausgabe ziemlich lang. Der Aufruf checkchannels > /tmp/newchannels.log brachte zwar Abhilfe, man sieht den Fortschritt aber nicht mehr auf dem Bildschirm. Vielleicht magst du ja noch eine Option zum Loggen einbauen.


    Und wo ich gerade bei Anregungen bin: Klasse wäre natürlich, wenn auch die Datei channes.pl von tvmovie2vdr abgeglichen würde, so sie im System vorhanden ist. Das wäre eine weitere echte Arbeitserleichterung!


    Nochmals vielen Dank!


    Gruß,
    Frid

  • Zitat

    Original von Fridi
    Der Aufruf checkchannels > /tmp/newchannels.log brachte zwar Abhilfe, man sieht den Fortschritt aber nicht mehr auf dem Bildschirm.


    Hi,

    Code
    man tee


    mfg


    cp

    easyVDR 0.6: VDR: Asus M2N-VM DVI, 2GB RAM, AMD A64 X2 4000+ EE, Samsung SpinPoint T166 400GB SATA II, LG Electronics GSA-H62N schwarz DVD Brenner, TT1.5 FF, TT Budget verpackt in einem Silverstone LC17 Gehäuse.
    Client: MediaMVP


    yavdr 0.3a:Asus M4A78LT-M LE, 4GB RAM, AMD Athlon II X2 240e, Asus Geforce ENGT520, 320GB Samsung Spinpoint M7 HM320II, 300W be quiet! Pure Power L7, TT-Budget S2-1600, EKL Alpenföhn Panorama, verpackt in einem Techsolo TC-380 HTPC Gehäuse


    yavdr 0.5: Intel DH67GD, Intel Pentium G620 2x 2.60GHz So.1155, 60GB Corsair Force 3 SSD, 8GB Ram, Linux4Media S2 ver 5.4, Asus ENGT 520 Silent, CoHaus CIR


    TV: Panasonic 42" Plasma TH-42PV45

  • Hallo linowsat,


    zuerst mal danke für die tolle Website, welche das Script überhaupt erst möglich macht. Das Script arbeitet in mehreren Stufen:


    • Zuerst versucht es einen Sender mit exakt dem gleichen Namen und Network zu finden, wenn das Klappt wird die neue Senderinformation ausgegeben und der Sender als Verschoben ausgegeben.
    • Klappt das nicht, sucht das Script nach einem Sender bei dem die Felder 2-7 (Frequenz, Parameter, Quelle, SRate, VPID und die erste APID) und (ab Version 0.7) das Feld 10 (SID - war ein Bug) übereinstimmen. Wird hier ein Sender gefunden, so wird der neue Sender als Umbenannt ausgegeben.
    • Wird hier auch nichts gefunden, versucht das Script den Sender nur über den Sendernamen zu erkennen (falls sich das Netzwerk geändert hat). Klappt das, so wird der Sender als "guessed" ausgegeben.


    Hinzu kommen einige Sicherungen wie z.B. das keine Sender verändert werden, welche in der Datei timers.conf stehen und das die Senderliste gecached wird, falls keine Internetverbindung besteht. Auch wenn das Ergebnis einer Suche nicht eindeutig ist, wird der alte Sender zur Sicherheit belassen.

  • Hallo zusammen,


    im Anhang findet ihr die Version 0.7 des checkchannels-Scriptes mit folgenden Änderungen:

    • Bugfix: Sendersuche nach Eigenschaften ignoriert die SID.
    • Bugfix: Sender welche doppelt vorkommen führen zu falschen "Umbenannt"-Meldungen.
    • Features: Die neue channels.conf wird nur heruntergeladen, wenn die Datei im Cache älter als 2 Stunden ist.
  • Ist wirklich nicht ganz so trivial Veränderungen der Sendeparameter zu erkennen. Das kann ich bestätigen. Es gibt halt keine zuverlässige ID welche einen Service nach einem Frequenzwechsel oder SID-Wechsel identifiziert.


    Deine Erkennungsmerkmale finde ich gut. Ich wüßte aber nicht wie man folgende Probleme lösen kann:


    Auf einigen Satelliten gibt es mehrere Service mit identischen Servicenamen zum Beispiel 'Arte'.


    Der Provider ändert nach einem Frequenzwechsel einiger Programme die Servicenamen. Z.B.: 'Kabel 1' wurde nach dem Frequenzwechsel in 'kabel eins' unbenannt.


    Einige Service werden nur zeitweise aufgeschaltet (Sexsender nachts). In meiner channels.conf stehen normalerweise immer nur die Sender die beim letzten Scan erfasst wurden. Einige wenige Sender werden durch eine manuell gepflegte Liste automatisch hinzugefügt.


    Dabei handelt es sich auch um NVOD Service welche man im Tranportstrom nur schwierig findet. Insbesondere von ausländischen NVOD Servicen fehlen die Einträge in meiner channels.conf.


    Übrigens findest du auf meiner Startseite einen XML RSS-Feed in dem neue Service angezeigt werden. Vielleicht kannst du damit noch was anfangen. Ich könnte diese Daten auch anders zugänglich machen.


    Viele Grüße
    Oliver

  • Hallo linowsat,


    ja, ist wirklich nicht ganz einfach. Gerade wenn - wie vor kurzem - mal wieder alles umarangiert wird.


    Bei doppelten Sendernamen geht das Script einen sehr pragmatischen Ansatz: Zuerst wird geprüft ob der Name zur eindeutigen Identifizierung reicht. Wenn nicht versucht das Script den Service über seine Parameter zu finden, ganz so als hätte es Ihn nicht gefunden. Das klappt meistens. Ansonsten wird der Service mit einer passenden Meldung beibehalten.


    Für die nur zeitweise aktiven Services würde ich sagen, daß diese meist nicht so wichtig sind. Das Script löscht ja nichts was es nicht findet und so muß man hier händisch nachpflegen.


    Für die Umbennenung + Verschieben habe ich mir schon überlegt mit einer phonetischen Suche zu arbeiten. Mal sehen wann ich Zeit habe das zu testen und ob es was bringt...


    Das mit dem RSS-Feed ist klasse. Evtl. könnte man diesen für einen Reminder nutzen: "Ein Sender in Ihrer channels.conf hat sich geändert..."


    Ich sehe schon, daß Thema hat viel Potential. Hätte nicht gedacht daß so eine kleine "quick and dirty" Arbeitserleichterung so viele Ideen provoziert ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!