Simplified KabelDeutschland streaming proxy

Review

A few days go i wrote about How to reverse engineer the KabelDeutschland API. Attached to this post there was a PHP script hosted on github to get your own streaming proxy running.

After testing and spreading the word with some people i came to the decision that the procedure was far too complicated. The need of a webserver and the large number of configuration options were unnecessary.

That’s why i build a single binary version, written in go.

Limitation

This tool does not remove the restrictions made by KabelDeutschland. You will need an internet and a TV contract with them. It only give you the ability to use their streams besides the iOS app.

Download

Binaries for all major platforms can be found at the shared folder.

Shared Folder at mega.co.nz (mirror at dropbox)

Select the binary suitable for your machine.

Tested environments

  • Macbook Pro Mid 2012, OSX 10.10.2
  • Synology DS215j (arm)
  • RaspberryPi (arm)
  • Windows XP 32bit

Please drop me a line if it works or not on your system.

Installation

Grab the config.json and edit it with your customer-service-center credentials. You can also change the port if you like.

On windows, double-click the executable file. On Linux/Mac you have to use your terminal, navigate to the folder you downloaded the binary and type the following command.

If you got a permission denied error, you have to set the executable bit for the binary

On all systems you will see the same output if everything went fine.

You will see the list of interfaces, the proxy listens to. All of them are ready to use to serve the channel playlist.

On certain Windows systems, it is not possible to display the interface list. The proxy will work nevertheless. Simply paste your known IP-Adress or one of your loopback addresses.

Installation on a Synology Diskstation

By now the easiest way to install the KabelDeutschland proxy is to download the arm-version of the binary and put it to your home-folder on the diskstation. Put the edited config.json next to it. Now you have to log into your nas  using ssh as your user and run the following command.

This creates a new screen, starts the proxy and immediately detaches the screen. That means the process runs in the background.

In order to be able to use the screen command, your box has to be bootsrapped. You can find the instructions to do this here: Bootrap the DS215j. Installation of screen will be done with this command as root.

You can connect to the proxy using the IP-address of your diskstation. http://[diskstation]:8787.

To stop the process, attach to the screen and press control+c. Attaching works using this command.

Predefined package

Synology has its own package manager and I’ll try to build a repository containing the proxy as a installable package. This will provide a way more easier solution. I will keep you updated.

Usage

Copy one of the links form the terminal output and paste it into your desired media player. It should load the playlist automatically. In VLC it looks like on the screenshot. You can now switch between the channels. The playlist contains links pointing to the proxy. This link handles the license generation, KabelDeutschland used to verify the stream.

164 thoughts on “Simplified KabelDeutschland streaming proxy

  1. Tom says:

    Wow, was für ne tolle Idee! Schade nur das meine Synology (DS212+) nicht unterstützt wird:

    runtime: this CPU has no floating point hardware, so it cannot run
    this GOARM=6 binary. Recompile using GOARM=5.

    • Hi Tom,

      Danke für den Hinweis 😉
      ich hab die binaries nun für arm v5, v6 und v7 kompiliert.
      Du findest sie im shared folder.

      Gib bescheid ob es bei dir nun läuft.

      Beste Grüße,
      André

      • Tom says:

        Wow, das war schnell 😉 Läuft aber leider nicht, scheint wohl doch etwas komplizierter zu sein:

        ds> ./kd_proxy_arm_v5
        Illegal instruction (core dumped)

        • Tom says:

          Allerdings scheint auch die Web/PHP Variant bei mir problematisch zu sein:

          Die Playlist wir erstellt, kann aber dann nicht abgespielt werden. VLC geht nur nach und nach die gesamte Wiedergabeliste durch…


          Can't get licensed link for Id: 3xxxx0 Link: http://cdn1.iptv.kabel-deutschland.de/live-spts/media/xxx/transmux/hls.m3u8

          • Tom says:

            ok, in all den Blogs und Texten ist mir der völlig entgangen:

            ou need to have two contracts with KD. One for cable-tv and one for internet over cable. The second one is necessary because the streams are only available inside of their own network.

            Somit ist klar warum es nicht funktionieren kann. Kein Internet via Kabel bei mir :-/

          • Schade, aber ich werde mir das Problem dennoch ansehen.
            Du bist nicht der einzige mit dem “illegal instruction” error.
            Vielleicht kannst du wenn ich eine neue Version habe dennoch kurz testen?

        • Auch wenn du es leider nicht nutzen kannst, ich habe das Problem mit der illegal instruction lösen können. Mein cross-compiler-script hat bei arm etwas durcheinander gebracht. Nun gehen die verschiedenen Versionen.

          Beste Grüße,
          André

      • Dennis says:

        Hi eine Frage läuft super auf PC nur fehlt RTL und rtl2 weißt du wieso?

        Kann man das Script auch auf ein Firestick installieren?

        Ist wohl eine Arm 9 Version

        Würde mich freuen von dir zu hören

        • Hey Dennis,

          das die RTL-Gruppe nicht vorhanden ist, liegt leider nicht an meinem Tool. RTL verbietet KabelDeutschland das streaming aller Sender der Gruppe. Auch in der App von KabelDeutschland fehlen die Kanäle.

          Zu deiner zweiten Frage.
          Generell wäre es möglich den Proxy auch auf dem Firetv laufen zu lassen. Von Go gibt es einen Compiler für iOS und Android (https://godoc.org/golang.org/x/mobile/app) aber es wir schwierig ohne GUI den Proxy zu starten.

          Ich werde es mir auf jeden Fall mal ansehen.

          Beste Grüße,
          André

    • Dennis says:

      Hi eine Frage läuft super auf PC nur fehlt RTL und rtl2 weißt du wieso?

      Kann man das Script auch auf ein Firestick installieren?

      Ist wohl eine Arm 9 Version

      Würde mich freuen von dir zu hören

    • You don’t need any special requirements.
      Thanks for your error trace, i will have a look and see how i can fix the problem.

      best regards,
      André

    • hi,

      I managed to find the problem.
      My cross-compilation-script did some mess-up handling all of the arm version.
      I rebuild them, now it should work (tested it on my raspbian running PI B+).
      Download the arm_v6 build again please.

      Best regards,
      André

  2. Sehr tolle Sache!

    Das 64-Bit-Linux-Binary funktioniert bei mir auf dem Client einwandfrei, Stream schauen ging mit VLC sofort, super!

    Auf meinem Homeserver (32 Bit Debian auf einem alten AMD Duron) lies sich das 32-Bit-Binary leider nicht starten: SIGILL: illegal instruction. Gibt es noch andere Compiler-Flags, damit das auf so alten Prozessoren noch läuft? Dummerweise ist Go ja recht modern :/

    Aber eigentlich wollte ich sowieso die PHP-Variante auf dem Homeserver haben, Infrastruktur ist eh schon da und das ist auch nicht so fett wie dieser Go-Klotz. Allerdings – es funktioniert leider nicht. Erzeugen der Playlist klappt, will ich aber dann einen der konkreten Links in der Playlist aufrufen, kommt nichts zurück, womit VLC etwas anfangen könnte. Rufe ich einen dieser Links mit curl auf, bekomme ich “Can’t get licensed link for Id … ” usw. In den Logfiles (log_level=debug) steht einiges, aber da weist nichts konkret auf einen Fehler hin.

    Ich vermute, es liegt nicht an den Credentials, die haben schließlich mit der 64-Bit-Binary funktioniert, kopiert habe ich sie auch richtig, mehrfach kontrolliert. Funktioniert das Aufbauen der Playlist theoretisch mit falschen Credentials? Wie kann ich die PHP-Version noch debuggen?

    • Hallo Heiko,

      Das abholen der Playlist ist auch ohne Credentials möglich.
      Zum generieren des lizensierten Links wird jedoch eine spezifische Gruppen-Id benötigt, welche KD über den Sign-In zur verfügung stellt.

      Mit dir und Carsten (stadt-bremerhaven.de) habe ich leider schon zwei Personen gefunden wo meine Abfrage dieser ID nicht das gewünschte Ergebnis bringt. Mit meinem eigenen Account kann ich den Fehler leider nicht reproduzieren und Carsten wollte, verständlicherweise, nicht seine Credentials zum Debuggen überlassen. Hättest du eventuell Interesse?

      Im Go-Binary ist eine Liste valider Gruppen-IDs fest integriert, daher funktioniert die Erzeugung des Links bei dir damit auch.

      Ich würde gern das PHP-Script um diesen Fehler bereinigen, komme aber mit meinen aktuellen Möglichkeiten nicht weiter.

      Den illegal instruction sigkill werde ich am Wochenende versuchen zu beheben. Ich schätze ich haben bei der cross-compilation einen Fehler gemacht.

      Beste Grüße,
      André

      • Heiko says:

        Nicht falsch verstehen, aber die Credentials sind einen Hauch zu zentral, das ist ja quasi der Masterkey zum KD-Zugang inklusive Mails, Vertragsänderungen etc.. Theoretisch könnten die auch Checks drin haben, ob die gleichen Credentials von verschiedenen Stellen aus genutzt werden und dann den Zugang sperren (Sie wurden gehackt!), das ist mir ein bisschen zu heikel.

        Ich führe gern Testcode aus und erstatte Bericht inklusive Logfiles, sofern das was nützt. Wobei man da bei den Logfiles auch nicht so recht sicher sein kann, in welchem Wert das Passwort wie kodiert drinsteht (UDID? ApiPass?).

        Ich habe auch nochmal die Logfiles angeschaut, beim Holen der LicensedLinks kommen mainUrl und altUrl leer zurück. Ich habe sogar nochmal mit curl den API-Aufruf nachgebaut, wie im Artikel “How to reverse-engineer …” gezeigt (hoffentlich korrekt), das gleiche Ergebnis. Schwer zu beurteilen, an welcher Stelle zum ersten Mal was schief läuft und was dann Folgefehler sind, so ohne richtige Fehlermeldung von der API.

        • Das kann ich voll und ganz verstehen.
          Das Problem ist die SiteGuid. Bisher kenne ich nur 2 Gruppen, welche es erlauben lizensierte Links zu erzeugen.
          Stimmt die Gruppe nicht, kommen leere Urls.

          Um dich ein wenig zu beruhigen. Das Api-Pass ist fest in die KD-App integriert und für jeden User gleich, UDID ist spezifisch pro User und wird in der App generiert, ähnlich der früheren UUID von Apple. Auch die ist aktuell fest verdrahtet, da ich diese bisher nicht zurückrechnen konnte.

          Hast du dich durch mein Tutorial zum reverse-engineering gearbeitet und alle calls in Burp zur Verfügung. Dann könnten wir diese durchsprechen, vielleicht lässt sich damit rausfinden, warum deine SiteGuid nicht valide ist, aber es in der iOS App (wie bei Carsten) dennoch möglich ist Streams zu sehen.

          • Phillip says:

            Ich hatte auch das Problem, dass die URLs leer zurück kamen. Nachdem ich meine UDID eingetragen habe, hat es funktioniert (einfach über den Proxy schnell gesucht). Die Frage ist, ob Kabel Deutschland nur eine gewisse Menge Accounts pro UDID zulässt, denn eig. ist die UDID pro Gerät unterschiedlich. Ich teste das mal mit ein paar iPods und einer frischen neu installierten App, was beim ersten Request mit der UDID über die API passiert. App löschen und neu installieren geht nicht, da sich die UDID nicht ändert.

          • Da hast du recht, es ist nicht die beste Lösung eine fixe UDID zu verwenden. Ich suche immer noch nach dem Algorithmus, welchen KabelDeutschland verwendet um seine UDID zu berechnen. Leider ist es keiner der Standardisierten und bekannten Wege.
            Bin dabei aber auf dem selben Stand wie du, die UDID scheint Hardwaregebunden zu sein, da sie sich auf einem Gerät nicht ändert.
            Von daher hoffe ich noch, dass sie sich an MAC-Adresse oder ähnlichen festen Informationen orientiert und man die Berechnung so zurückführen kann.
            Aber bisher noch erfolglos.

    • Sebi says:

      Hallo Andre,
      vielen Dank für dein Tool. Ich habe das gleiche Problem wie Heiko, dass sich das 32-Bit-Linux-Binary wegen des Fehlers “SIGILL: illegal instruction” auf meinem Home-Server mit Ubuntu 14.04 32 Bit nicht starten lässt. Das 64-Bit-Binary hingegen läuft bei mir unter Ubuntu 15.04 64 Bit fehlerfrei.
      Wäre echt super, wenn du das hinbekommst. Vielen Dank im Voraus!

      • Hi Sebi,

        ich habe es eben mit meiner Cross-Compile VM (ubuntu 14.04 32bit) getestet und es läuft problemlos.

        andre@ubuntu-compile ~ [10:24:52]
        > $ ./kd_proxy_32
        == Checking credentials
        done
        == Listening ...
        http://192.168.178.66:8787
        ^C%
        andre@ubuntu-compile ~ [10:25:04]
        > $ uname -a
        Linux ubuntu-compile 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux

        Wie hast du das Binary auf den Server transferiert und wann hast du es geladen?

        Beste Grüße,
        André

  3. Sebastian says:

    Habe gerade auch einmal ein bisschen mit dem Proxy gespielt. Über meinen MAC und VLC klappt es super.

    Nun habe ich es versucht über Kodi zum laufen zu bekommen – leider ohne Erfolg. Ich nutze das PVR Plugin “PVR IPTV Simple Client”. Die Programmliste bekomme ich geladen. Nur wenn ich dann einen Kanal auswähle bekomme ich beim Proxy die Meldung “path requested: link/386632/aHR0cDovL2NkbjEuaXB0di5rYWJlbC1kZXV0c2NobGFuZC5kZS9saXZlLXNwdHMvbWVkaWEvcHJvNy90cmFuc211eC9obHMubTN1OA==:== Get licensed link” angezeigt und nichts passiert.

    In der Kodi-Log steht dazu “Open – Error, could not open file pvr://channels/tv/Alle Kanäle/3.pvr”.

    Ich muss zugeben ich bin noch relativ neu bzgl. PVR Clients/Plugins am Kodi. Mache ich ggfs. etwas falsch bzw. geht das überhaupt wie ich es mir vorstelle?

    • Hi Sebastian,

      das Problem mit Kodi kann ich reproduzieren. Der scheint den Link der Playlist nicht richtig aufzurufen.
      Du hast alles richtig gemacht, ich schau mir das noch mal an, warum es nicht geht.

      Generell gibt es gerade ein Problem bei. Ich bekomme gar keine Streams mehr. Gegenstelle antwortet nicht.
      Bei mir gibt es aber auch aktuell eine Großraum-Störung.

      Beste Grüße,
      André

    • Das Problem liegt leider an Kodi, der kommt mit den Playlists von KD nicht klar.
      Nachdem ich den Channel auf eine Playlist von KD auflöse kann Kodi mit dieser nicht mehr arbeiten.

      Die Playlist:
      #EXTM3U
      #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000
      CCURstream564000.m3u8
      #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1064000
      CCURstream1064000.m3u8
      #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1664000
      CCURstream1664000.m3u8

      Leider kann ich bisher keine Lösung dafür finden.

      • Sebastian says:

        Sehr schade. Das wäre ein nettes Setup. Meine Synology DS213j im Zusammenspiel mit Kodi.

        Trotzdem vielen Dank für die schnelle Rückmeldung. Ich werde die Seite immer mal wieder besuchen für den Fall das es was neues gibt.

  4. Marcus says:

    Hallo André,

    bin über Carsten auf dein Projekt gestoßen.
    Dein Programm funktioniert bei mir unter Windows 7 64 Bit problemlos, echt toll! Gute Arbeit. Nun besitze ich ein Synology DS 213+ mit FREESCALE QorIQ P1022 Prozessor. Habe versucht deine PHP Version zu betreiben, scheitere aber mit folgendem Fehler:

    Can’t get licensed link for Id: xxxxxx Link: http://cdn1.iptv.kabel-deutschland.de/live-spts/media/arte/transmux/hls.m3u8

    Bin wohl nicht der einzige laut den Kommentaren.. Kommst du mit dem Debugging vorran?

    Grüße

    • Hi Marcus,

      du hast leider das selbe Problem wie schon einige andere mit der SiteGuid.
      Leider hat sich bisher niemand bereit erklärt mir zum debuggen seine Account-Daten zur Verfügung zu stellen bzw. mit Burp die iOS zu loggen.
      Ohne dass komme ich aktuell nicht weiter, da es mit meinem Account funktioniert. Ich würde das Problem sehr gern lösen.

      Beste Grüße,
      André

  5. bshassmann says:

    Hi,

    bei mir gehts leider nicht. Ich bekomme nur die Meldung “Credentials are wrong”. Meine Daten habe ich aber korrekt eingeben. Mein System ist ein Win 8.1.

    LG

  6. Hi, liest sich richtig interessant! Klasse Idee.
    Aber gehe ich recht der Annahme, dass ich das Paket mit einer Ds214 play nicht nutzen kann? Die hat ja einen Intel Atom drin.
    Das wäre ja schade!

    Gruß Daniel

    • Hi Daniel,

      du solltest das Paket eigentlich problemlos auf der DS214play nutzen können.
      Der Intel Atom ist ein normaler X86 Prozessor, du kannst also die Linux Binaries verwenden.
      Ich gehe davon aus, das die 32bit Version die richtige ist.

      Gib bitte kurz bescheid ob es geklappt hat.

      Alternativ hast du bestimmt einen webserver auf der DiskStation am laufen, dann nutze die PHP-Version meines Programms.
      https://github.com/edi-design/kd-streaming-proxy

      Beste Grüße,
      André

      • Hi André,
        das klingt super.
        Ich habe es auf die Syno gepackt und installiert. Daraufhin wurde eine config.json in dem Verzeichnis erstellt. Wenn ich mir die ansehe, steht aber nur NULL drin. Was müsste da eigentlich stehen? chmod habe ich auf testweise auf 777 gesetzt aber da ist echt nichts drin.

        Danke für deine Hilfe!
        Daniel

        • das steht nur in der Log.txt:
          2015-05-06 20:35:11 OUT Using Python (python)…
          2015-05-06 20:35:12 OUT Starting tvstreamrecord v.1.0.5 with Python 2
          2015-05-06 20:35:12 OUT Logging output initialized
          2015-05-06 20:35:12 OUT Initializing database…
          2015-05-06 20:35:12 OUT New database created. Thank you for using this package.
          2015-05-06 20:35:12 OUT Initializing config…
          2015-05-06 20:35:12 OUT Checking internationalization…
          2015-05-06 20:35:12 OUT Initializing records…
          2015-05-06 20:35:12 OUT Initializing EPG import thread…
          2015-05-06 20:35:12 OUT Starting server on: 0.0.0.0:8030

          • Super danke. Das hat mir geholfen. Kleinere Probleme mit dem EPG aber das wird sich schon noch richten. Könnte jedenfalls schon Streams sehen.

            Was ich jetzt noch nicht ganz verstehe: dein Teil liefert die Senderliste wenn ich es per SSH starte mit ./KD… Diese importiere ich. Wenn ich jetzt Putty beende, läuft deins weiter? Oder ist das gar nicht mehr wichtig weil die URLs jetzt immer so bleiben?
            Sry für die Frage aber so groß bin ich jetzt nicht mit Linux unterwegs.
            Will nur wissen ob jetzt dauerhaft dort dein Programm auf der Synology laufen muss und ob das mit dem Befehl so ausreichend ist. Bei dem Synology Paket steht ja eigentlich etwas anderes in der Anleitung. (Term….) nur ich habe ja nun die Linux Variante genutzt und auch diese Befehle ausgeführt.

            Besten Dank für Erleuchtung.
            Gruß, Daniel

          • Mit der aktuellen Version wird eine Playlist generiert, welche auch ohne den Proxy funktioniert.
            Es kann jedoch sein, dass sich die Adressen der Streams ändern, daher ist der Proxy so eingestellt, dass er alle 24h erneut nach den Links fragt.
            Da solltest du nur im Hinterkopf haben, falls die Stream mal nicht mehr laufen, einfach die Playlist neu generieren.

            In der ersten Version war es wichtig, dass der Proxy dauerhaft lief, da die Links per direkten Aufruf an ihn generiert wurden. Das lief aber nicht mit Kodi.
            Jetzt ist es nur noch Bequemlichkeit indem man den Proxy als Playlist aufruft, kümmert er sich automatisch um das generieren neuer Links.

            Beste Grüße,
            André

          • Super André,
            Danke für den schnellen, wertvollen und informativen Support und vor allem deine Leistung für das Tool. Sehr lobenswert! Ich weiß, das hört man gerne 😉

    • Leider nein, ich wüsste nicht wie ich für die FritzBox binaries compilieren kann und leider läuft auch kein PHP-fähiger webserver auf ihr.

      Beste Grüße,
      André

  7. Tim says:

    Hi, ich bekomme im Terminal auf dem Mac nur “-bash: ./kd_proxy: Operation not permitted”. CHMOD habe ich mehrmals ausgeführt und auch die Zugriffsrechte repariert. Wie kann ich das Skript starten?

    • Hi Tim,

      kannst du bitte mal in dem Ordner folgenden Befehl ausführen.
      ls -la
      Es sieht im ersten Moment aus, als wenn du keine executable Rechte hast.
      chmod +x kd_proxy

      Beste Grüße,
      André

  8. Tim says:

    Der ls-Befehl bringt bei mir u.a. folgende Zeile: -rwxr-xrwx@ 1 Tim staff 6804932 6 Mai 14:35 kd_proxy
    Der untere CHMOD-Befehl bringt leider auch keine Besserung. Die Datei liegt direkt in meinem Benutzerordner. Es scheint mir, als hätte ich keine Admin-Rechte in dem Ordner. Wie könnte ich das beheben?

  9. Tim says:

    Problem gelöst 🙂 Bin auf die Idee gekommen, kd_proxy nochmals herunterzuladen, nun klappt es auf Anhieb mit dem chmod Befehl und ich hab wieder etwas über’s Terminal erklärt – auch wenn ich mir den Fehler nicht erklären kann 😉
    Danke für die Unterstützung!

  10. Tim says:

    Da ich Neukunde bei KD bin, funktionierten meine Zugangsdaten gestern noch nicht. Dies klappt nun, allerdings kommt nach Starten des Skripts folgender Fehler:

    == Checking credentials
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal 0xb code=0x1 addr=0x0 pc=0x6577d]

    goroutine 1 [running]:
    kd.signIn()
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd/service.go:189 +0x4fd
    kd.Service(0x0)
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd/service.go:32 +0x44
    main.main()
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd.go:53 +0x588
    mini:~ Tim$

    Muss im Skript noch etwas angepasst werden?

    • Rene says:

      Hast du eventuell einen Schreibfehler/Syntaxfehler in der config.json gehabt? Bei mir hat es dadurch auch die config.json zerhauen und Inhalt war “null”…

  11. Tim says:

    Hatte mir die config.json vom Mirror runtergeladen. Statt csc-username setze ich meinen Benutzernamen rein, richtig? Habe alles ausprobiert, nun kommt beim Starten des Proxys nur, dass ich meine Benutzerdaten eingeben solle und die config.json ist danach wieder leer (bzw. null). Ich komme da nicht weiter…

    • Eine leere Datei legt er eigentlich nur an, wenn er die config.json nicht finden kann.
      Kannst du bitte in dem Ordner wo config und kd_proxy liegen ein ls -la machen.
      Im ersten Augenschein hast du alles richtig gemacht.

      Was du auch versuchen kannst, einfach mal den Inhalt der richtigen json Datei in die neu angelegte zu kopieren, also das null auszutauschen und erneut starten.

      Beste Grüße,
      André

      • Jonas says:

        Hey André,

        Habe das gleiche Problem unter Mac OS X 10.11
        Bekomme als Ausgabe im Terminal nur “Please edit your configuration at…”

        Die config.json ist soweit aber richtig und liegt auch im selben Ordner wie die kd_proxy. Wird aber nach jedem ausführen durch den Inhalt “null” ersetzt.

        Gibts noch irgendeine andere Problemlösung?

        • Hey Jonas,

          das ist ein komischen Fehlerbild.
          Ich werde mir das mal ansehen.
          Hast du versucht das binary mal mit -c ./config.json auszuführen.
          Mit dem -c Parameter kannst du explizit angeben wo die config liegt.

          Beste Grüße,
          André

          • Hat deine config.json folgenden Inhalt (abgesehn davon dass dein user und pass drin steht) ?

            {
            "Service": {
            "Username": "##username##",
            "Password": "##password##",
            "Listen": ":8787"
            }
            }

          • Jonas says:

            Sieht genauso aus, nur ohne die Hashtags (#)
            Nur nachdem ich die kd_proxy über das Terminal ausführe, ist die config komplett leer, bis auf ein “null”

          • das ist echt strange.
            Hab eben noch mal alles getestet und kann mir nicht erklären woran das liegen kann.

            Folgendermaßen sieht es bei mir aus:

            > $ ll
            total 27160
            -rw-r--r-- 1 andre staff 113B Apr 24 08:41 config.json
            -rwxr-xr-x 1 andre staff 6.0M Oct 6 15:50 kd-proxy-386
            -rwxr-xr-x 1 andre staff 7.3M Oct 6 15:50 kd-proxy-amd64
            -rw-r--r-- 1 andre staff 6.1K Sep 16 10:38 playlist_medium.m3u

            > $ ./kd-proxy-amd64 -c config.json
            == Checking credentials
            done
            == Listening ...
            http://172.23.0.98:8787
            http://172.23.0.122:8787
            http://172.28.128.1:8787

            Kannst du mir bitte einen ähnlichen Auszug von deinem Set-Up schicken.

            Beste Grüße,
            André

    • Hi Thilo,

      sofern es im Plex auch möglich ist mit m3u Playlist zu arbeiten, dann sollte es laufen.
      Folgendes Plugin habe ich beim Suchen entdeckt: https://github.com/Cigaras/IPTV.bundle.

      Wenn du es zum laufen bekommen hast, dann schreibe bitte noch einmal. Dann kann ich die Anleitung um Plex erweitern 😉

      Beste Grüße,
      André

      • Markus says:

        Funktioniert mit dem o.g. Plugin perfekt.
        Einfach nach der Installationsanleitung vorgehen:
        – Archiv in das Plugins-Verzeichnis entpacken
        – In der Playlistadresse einfach “http://127.0.0.1:8787” eingetragen
        – Plex neustarten
        – Stream starten

        Das User Interface ist natürlich nicht so ideal, wie in der nativen KD-App, aber man kann die Streams wunderbar öffnen und sich ggf. auch außerhalb des Heimnetzwerks streamen…

  12. Tim says:

    Hi, das mit dem Austauschen habe ich schon erfolglos probiert. Hier ist das Ergebnis vom ls -la:

    -rw-r–r–@ 1 Tim staff 4 11 Mai 02:32 config.json
    -rwxr–r–@ 1 Tim staff 6804932 7 Mai 23:25 kd_proxy

    • Ich glaube, die größe der config.json ist definitiv zu klein mit 4byte.
      Schau bitte nochmal da rein, ob du wirklich den Inhalt wie folgt eingefügt hast:
      {
      "Service": {
      "Username": "csc-username",
      "Password": "csc-password",
      "Listen": ":8787"
      }
      }

      Bei mir sieht das ls -la so aus, config.json 122 byte:

      -rw-r--r-- 1 andre staff 112B 11 Mai 21:05 config.json
      -rwxr-xr-x 1 andre staff 6,5M 26 Apr 13:04 kd_proxy

      andre@mbp-andre ~/Development/Sources/private/kd-go/build/mac [21:05:19]
      > $ ./kd_proxy [±master ●●]
      == Checking credentials
      done
      == Listening ...
      http://192.168.178.23:8787

      Der proxy überschreibt die config, wenn sie nicht konform ist. Ich hoffe, dass hilft dir.

      Beste Grüße,
      André

  13. Tim says:

    Was soll ich sagen, nun läuft’s! 🙂
    Habe mit den Einstellungen von Textedit rumgespielt, kann sein, dass es an der Kodierung der config.json lag. Also vielen Dank nochmals für die Unterstützung und den Komfort, den der Proxy ermöglicht! Mache mich nun daran, den Proxy in Kodi einzubinden. Mal sehen, vielleicht klappt dies auch mit einem EPG.

    Viele Grüße

    Tim

    • Super, dass freut mich.
      EPG funktioiert, wenn man die Streams in tvheadend einträgt. Leider ist das ne bescheidene Handarbeit, daher habe ich noch keine Anleitung geschrieben wie das geht.

      Bestw Grüße,
      André

    • Seko says:

      So viel Hilfe bekommen und dann nicht mal den Lösungsweg teilen?!! Eine Antwort für Lars, wäre auch für mich sehr hilfreich.

      VG

  14. Ronny says:

    Hab das ganze mal unter Windows probiert mir ist nur aufgefallen das in der Wiedergabeliste z.B. RTL, RTL2, SuperRTL nicht angezeigt wird kann mir jemand sagen ob das bei euch auch so ist oder ist die Liste einfach in der Anzahl der Sender begrenzt?

    • KabelDeutschland darf die komplette RTL-Gruppe nicht als Stream anbieten. RTL verbietet es lizenzrechtlich, da sie mit RTL-Now ihr eigenes Angebot promoten wollen.

      Beste Grüße,
      André

  15. Heiko says:

    hi,
    ich bekomme jedes mal wenn ich den Befehl ./kd_proxy ausführe, dieses ergebnis: Please edit your configuration at: /Users/highco/Documents/config.json obwohl ich die daten geändert hatte, sagt er mir das jedes mal, mac variante. woran kann das liegen?

    vielen dank schon mal

    gruss
    heiko

    • Hi Heiko,

      mit welcher Version des Proxies arbeitest du gerade?
      ./kd_proxy --version

      Die config.json muss im selben Ordner wie das binary (kd_proxy) selbst liegen und so aussehen, wie das Beispiel in der Dropbox bzw. auf Mega.

      {
      "Service": {
      "Username": "username",
      "Password": "password",
      "Listen": ":8787"
      }
      }

      Beste Grüße,
      André

  16. Klausi says:

    Hi André,
    funktioniert super auf Mac. Nun wollte ich das Ganze auf meinem QNAP laufen lassen (QTS 4.1, TS-451S). Leider bekomme ich die Meldung “Credentials are wrong” – obwohl die selben auf dem Mac laufen.
    Hast Du eine Idee?
    Danke
    Klausi

    • Hi,

      versuch bitte die config noch einmal zu löschen und komplett neu anzulegen. Es gab einen anderen User, welcher das Problem hatte, dass das encoding der config beim Transfer auf sein NAS kaputt ging und er deshalb den selben Fehler bekam wie du.

      Falls das nicht hilft, melde dich bitte noch einmal.

      Beste Grüße,
      André

      • Klausi says:

        Danke für die schnelle Antwort.

        Nein es geht leider nicht.

        == Checking credentials
        Credentials are wrong

        Die Meldung kommt sehr schnell, so dass es scheint, als ob die credentials überhaupt nicht überprüft werden…
        Grüße
        Klaus

        • Hi Klaus,

          entschuldige bitte, dass es erst so spät wieder Antworte. Die Hitzewelle hat mich vom Rechner fern gehalten 😉

          Dass die Meldung so schnell kommt ist durchaus richtig. Das Programm fragt als allererstes bei KabelDeutschland nach einem validen Account mit deinen Zugangsdaten an. Was ich mir aber nicht erklären kann ist, dass es auf deinem Rechner funktioniert, auf dem NAS aber nicht.

          Kannst du bitte folgendes bei dir Aufrufen. Dies ist der Call, der an KabelDeutschland zum authentifizieren gesendet wird. Bitte führe den auf einem Terminal auf deinem NAS aus. Natürlich vorher mit deinem Benutzername und Password austauschen.

          curl -i -s -k -X 'POST' \
          -H 'Content-Type: application/json;charset=utf-8' -H 'User-Agent: TV 1.1.5 rv:1.2.2 (iPhone; iPhone OS 8.1.2; en_US)' \
          -b 'ASP.NET_SessionId=e2uy4v45t5fafz45pim0yx45' \
          --data-binary $'{\"password\":\"###DEIN PASSWORD###\",\"providerID\":0,\"userName\":\"###DEIN USERNAME###\",\"initObj\":{\"ApiUser\":\"tvpapi_181\",\"UDID\":\"D2AC633AFB644CF0A67505370578CDE5\",\"DomainID\":336085,\"Platform\":\"iPad\",\"ApiPass\":\"azNDLzsnTBTtArVW2SHR\",\"Locale\":{\"LocaleDevice\":\"null\",\"LocaleUserState\":\"Unknown\",\"LocaleCountry\":\"null\",\"LocaleLanguage\":\"null\"},\"SiteGuid\":\"638452\"}}' \
          'https://api-live.iptv.kabel-deutschland.de/v2_9/gateways/jsonpostgw.aspx?m=SSOSignIn&iOSv=8.1.2&Appv=1.1.5'

          Beste Grüße,
          André

          • Klausi says:

            Hallo André

            Danke für die Antwort. Ja die Hitze schafft einen…

            ich habe es ausprobiert und bekomme “dos charset ‘CP850’ unavailable – using ASCII” – mehr nicht.

            Was hättest Du erwartet? Was hätte kommen sollen?

            Grüße
            Klaus

          • Folgendes hätte so in etwa kommen sollen.

            HTTP/1.1 200 OK
            Cache-Control: private
            Content-Type: application/json; charset=utf-8
            Server: Microsoft-IIS/8.5
            Access-Control-Allow-Origin: *
            X-AspNet-Version: 2.0.50727
            X-Powered-By: ASP.NET
            Date: Sun, 05 Jul 2015 17:50:30 GMT
            Content-Length: 696

            {"SiteGuid":"679869","DomainID":336085,"LoginStatus":0,"UserData":{"m_oBasicData":{"m_sUserName":"###dein username###","m_sFirstName":"","m_sLastName":"","m_sEmail":"","m_sAddress":"","m_sCity":"","m_State":null,"m_Country":null,"m_sZip":"","m_sPhone":"","m_sFacebookID":"","m_sFacebookImage":"","m_bIsFacebookImagePermitted":false,"m_sAffiliateCode":"","m_CoGuid":"","m_ExternalToken":"","m_sFacebookToken":"","m_sTwitterToken":"","m_sTwitterTokenSecret":"","m_UserType":{"ID":null,"Description":"","IsDefault":false}},"m_oDynamicData":{"m_sUserData":[{"m_sDataType":"ext_status","m_sValue":"0"}]},"m_sSiteGUID":"679869","m_domianID":336085,"m_isDomainMaster":true,"m_eUserState":0,"m_nSSOOperatorID":0}}%

            Deine Fehlermeldung ist mir völlig unbekannt. Ein wenig googlen danach, zeigt mir, dass es ein Problem bei QNAP ist. Die Code-Page fehlt bei einer lib. Hast du auf deinem NAS einen webserver laufen, welcher PHP kann? Dann könntest du auf den PHP-Proxy von mir ausweichen (https://github.com/edi-design/kd-streaming-proxy).

  17. Ralf says:

    Hallo,
    meinen KD-Zugang habe ich zu Hause (Netz 192.168.10…) Auf meinem Windows Notebook funktioniert hier alles alles wunderbar. Dieses Netzwerk ist über VPN mit meinem Büro (Netz 192.168.12…) verbunden.
    Wenn ich es mit dem gleichen Rechner im Büro versuche, wird zwar die playlist angezeigt, aber die Programme können nicht angeschaut werden.

    Gibt es dazu vielleicht eine Lösung?

    • Hallo Ralf,

      das klingt danach als wenn deine Netzwerk-Konfiguration nicht allen Traffic über das VPN sendet. Deine genannten IP-Adressen sind lokale Adressen im LAN aber nicht im WAN. Der Proxy kann sich nur zu KabelDeutschland verbinden wenn du eine WAN-Adresse von KabelDeutschland hast.

      Testen kannst du dies recht simpel. Gehe daheim auf http://www.wieistmeineip.de/ und dann einmal per VPN vom Büro aus.
      Wenn bei beiden das selbe Ergebnis kommt, dann funktioniert der Stream mit Sicherheit. Kommt im Büro eine andere IP als daheim, dann routet dein Rechner nicht seinen gesamten Traffic über das VPN. Der Proxy kann demzufolge den Stream nicht auflösen.

      Beste Grüße,
      André

  18. Benny says:

    Hallo zusammen.
    Erst mal schönen Dank für das Projekt.

    Aber so ganz verstehe ich das hier nicht. Ich habe den Proxy auf einem Raspberry pi installiert. In Kodi passierte bei Eingabe der URL entsprechend der Anleitung hier erstmal nichts.

    Dann habe ich die URL des Proxy im Browser geöffnet und konnte eine Playlist.mru herunterladen. Wenn ich diese in Kodi als lokale Playlist auswähle, klappt alles…suuper….TV-Stream ist da für über 50 Sender. Das klappt aber jetzt ohne Proxy…

    wofür brauch ich den Proxy noch???

    Gruß
    Benny

    • Hi Benny,

      Du hast Recht. In der aktuellsten Version ist der Proxy primär nur zum erzeugen der Playlist notwendig.
      In den älteren Versionen wurde der Stream direkt über den Proxy geschickt. Dies ist nun nicht mehr notwendig.
      Du solltest ihn dennoch weiter verwenden, da KabelDeutschland die Stream-Urls der Sender mit einer Session versieht, welche nach einer gewissen Zeit abläuft. Der Proxy sorgt dafür, dass diese Session wieder neu aufgebaut wird.

      Wenn du in Kodi die Playlist nicht manuell öffnen möchtest bzw. sie immer vom Proxy aktualisiert werden soll, dann verwende am besten das PVR IPTV Simple Plugin. Eine kurze Anleitung findest du hier http://freshest.me/updated-kabeldeutschland-streaming-proxy/

      Beste Grüße,
      André

  19. Florian says:

    Ich zweifle gerade schon an mir selbst. Ich bekomme den Proxy nicht zum laufen, weder auf dem QNAP noch auf dem Raspberry Pi.
    Ich bekomme jedesmal die Antwort “Credentials are wrong” obwohl diese auf dem iPhone funktionieren.
    config.json schon x-mal bearbeitet, hochgeladen, auf den Geräten von Hand geschrieben usw.
    Auf den direkten Call über curl mit meinen Zugangsdaten bekomme ich auch brav:

    HTTP/1.1 200 OK
    Cache-Control: private
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/8.5
    Access-Control-Allow-Origin: *
    X-AspNet-Version: 2.0.50727
    X-Powered-By: ASP.NET
    Date: Sat, 11 Jul 2015 12:49:22 GMT
    Content-Length: 5

    Kann es sein das sich der Proxy an dem “.” (Punkt) in meinem Benutzernamen stört ?

    Viele Grüße
    Florian

    • Hi Florian,

      ich habe eben eine neue Version des Proxy auf dropbox sowie mega gestellt.
      Wenn du ihn mit ./kd_proxy -v startest, bekommst nun etwas mehr Informationen über das was schief lief.

      Es zeigt dir außerdem einen JSON-String an. Dieser enthält deinen Usernamen und dein Password.
      Kopiere den JSON-String und füge ihn an die passende Stelle im folgenden Befehl ein, an Stelle von ##JSON##.

      curl -X POST https://api-live.iptv.kabel-deutschland.de/v2_9/gateways/jsonpostgw.aspx\?m\=SSOSignIn\&iOSv\=8.1.2\&Appv\=1.1.5 -d '##JSON##'

      In der Antwort ist ein Feld namens LoginStatus. Dieses muss den Wert 0 haben, damit es funktioniert. Was kommt bei dir?
      Hast du in deinem Nutzernamen oder Passwort vielleicht ein ” als Zeichen?

      Solltest das immer noch nicht weiter helfen würde ich dir eine Mail mit meinem Skype-Name schicken und wir debuggen das gemeinsam.

      Beste Grüße,
      André

  20. Michael says:

    Hallo,

    ich versuche nun die ganze Zeit ebenfalls den Proxy auf meinem QNAP (TS-210) zum Laufen zu bekommen, bekomme aber folgende Meldung:

    [~] # ./kd_proxy_arm_v5 -v
    == Checking credentials
    {“initObj”:{“ApiUser”:”tvpapi_181″,”UDID”:”D2AC633AFB644CF0A67505370578CDE5″,”DomainID”:315384,”SiteGuid”:679870,”Platform”:”iPad”,”ApiPass”:”azNDLzsnTBTtArVW2SHR”,”Locale”:{“LocaleDevice”:”null”,”LocaleUserState”:”Unknown”,”LocaleCountry”:”null”,”LocaleLanguage”:”null”}},”userName”:”blablabla”,”password”:”blablabla”,”providerID”:0}
    could not fetch: Post https://api-live.iptv.kabel-deutschland.de/v2_9/gateways/jsonpostgw.aspx?m=SSOSignIn&iOSv=8.1.2&Appv=1.1.5: x509: failed to load system roots and no roots provided
    Returned result: %v{0 0 }
    Credentials are wrong
    [~] #

    Es sieht wohl so aus, dass die URL “https://api-live.iptv.kabel-deutschland.de” nicht als vertrauenswürdig eingestuft wird, und ich habe bisher keine Möglichkeit gefunden ein CA Zertifikat zu installieren…

    Bei “wget” gibts ja auch die Möglichkeit zu sagen “`–no-check-certificate’.” Vielleicht wäre sowas ne Option?

    Gruß

    Michael

    PS: Über die Windows EXE gehts mit meinen Zugangsdaten

    • Hi Michael,

      ich habe eben eine neue Version in die dropbox sowie auf mega gestellt.
      Mit dem von dir gewünschten Parameter -no-check-certificate kann die Version 0.1.2 den Zertifikats-Check ignorieren.

      Bitte gib kurz bescheid ob es funktioniert.

      Beste Grüße,
      André

  21. wim says:

    Hall Andre. Super Arbeit. ich bin auch Doppel-Kunde bei KD und wollte dein Script mal testen. die iOS-App funktioniert bei mir 1A. Leider scheinen die erzeugten Links in der Playlist-Datei nicht zu funktionieren. VLC schimpft: “Ihre Eingabe konnte nicht geöffnet werden…” gefolgt von dem jeweiligen Streaming-Link. Dann rattert er alle Sender aus der Playlist durch und zeigt immer dasselbe… Rufe ich en Link im Browser auf, erhalte ich 404.

    Woran kann das liegen? Danke schonmal.

    • KabelDeutschland hat etwas an ihrer Server Architektur geändert und erlaubte einige Zugriffe nicht mehr. Ich musste eine andere Möglichkeit finden die Channels aufzulösen.

      Viel Spaß damit.

      Beste Grüße,
      André

  22. Christian says:

    Hi,
    der Proxy läuft auf meinem Rasp2 mit OpenElec und Kodi super.
    Aber ich bekomm den Autostart nicht zum laufen.

    Hat da noch jemand eine Idee?

  23. David says:

    Moin,
    bei mir auf Windows 8.1 mit dem aktuellen VLC Player läuft es prima. Auch wenn es nur die SD Sender sind, ist das ganz praktisch. Gibt es auch einen Weg, die freien HD Sender zu sehen?

  24. Tobias says:

    Moin,

    also bei mir läuft das irgendwie nicht. Habe sowohl die Webserver Version als auch die GO Version getestet. Die m3u enthält bei mir nur: #EXTM3U

    Die GO Version gibt folgendes zurück:
    This works only if you are using a KabelDeutschland Internet connection.
    no link

    Ich bin aber im Kabel Deutschland Netz und auf meinem Android Phone läuft es auch mit der App

    • Hi Tobias,

      kannst du es heute bitte noch einmal testen bitte.
      Ab und an gibt es im KD-Netz Probleme mit dem CDN. Bei mir läuft aktuell alles.
      Habe es über VPN aus dem Büro, genauso wie direkt daheim getestet.

      Beste Grüße,
      André

  25. Roy says:

    Guten Tag André,
    vielen Dank, daß Du Dir diese ganze Arbeit “aufgehalst” hast.
    Nach anfänglichen Schwierigkeiten, funktioniert es jetzt beim zweiten Versuch einwandfrei am:
    MacBookPro Late 2011 mit OSX 10.8.5
    Vielleicht gibt es ja auch bald die Möglichkeit, auch die HD Sender mit dem VLC zu gucken?
    Das wäre dann natürlich “noch einer oben drauf”…
    Gruß,
    Roy

    • Hi Roy,
      HD wäre toll, aber leider bietet KabelDeutschland das nicht an.
      Auch wenn man das HD Paket gekauft hat, ist ein Stream nicht möglich.
      Ich tippe mal, ähnlich wie bei RTL, dass es Lizenz-Gründe dafür gibt.

      Beste Grüße,
      André

  26. gosch2912 says:

    Ist es richtig das man einfach nur das script kd_proxy ausführen muss? Ich bräuchte mal einen Anhaltspunkt wie man die config.json konfiguriert. ICh denke mal, da kommen die zugangsdaten rein oder?

    Vielen Dank

  27. Seko says:

    Hallo,

    auch bei mir wird immer eine neue config.json erstellt. Inhalt ist “null”.

    Folgende Meldung gibt die Konsole zurück.

    (Beim ersten Mal)
    Please edit your configuration at: /Users/Seko/Downloads/kd_proxy/mac/config.json

    (Beim zweiten Mal)
    == Checking credentials
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal 0xb code=0x1 addr=0x0 pc=0x84b80]

    goroutine 1 [running]:
    kd.signIn()
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd/service.go:199 +0x900
    kd.Service(0x0, 0xc82000ad80, 0xc82000ae00, 0xc82000ae30)
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd/service.go:41 +0x97
    main.main()
    /Volumes/Home/andre/Development/Sources/privat/kd-go/src/kd.go:60 +0x64b

    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
    /usr/local/Cellar/go/1.5.1/libexec/src/runtime/asm_amd64.s:1696 +0x1

    iMac 2009 – os x 10.11.3

    Kann mir jemand weiterhelfen?

    VG
    Seko

    • Hey Seko,

      hast du vielleicht spezielle Sonderzeichen in deinem Benutzernamen oder Passwort?
      So etwas wie \ oder “.
      Bei der config.json muss es sich um valides json in UTF-8 encoding handeln.

      Auf Mac solltest du das mit folgendem Befehl testen können
      cat config.json | json_pp

      Beste Grüße,
      André

        • Hmm, an dem @ liegt es nicht.
          Habe eben mal zum testen in meinen Username ein @ eingebaut und bekomme nur die Fehlermeldung, dass nun meine Credentials nicht mehr stimmen.

          Kannst du mir deine config.json bitte schicken. (andre at freshest.me)
          Gerne mit falschen Credentials, solange der Fehler aber immer noch auftritt.
          Wandele einfach deinen Nutzernamen und Passwort soweit ab, dass sie nicht mehr stimmen, aber immer noch der Fehler kommt.

          Damit kann ich dann schauen, wo das Problem liegt, da der Fehler ja schon vor der Authentifizierung geworfen wird.

          Vielen Dank.

          Beste Grüße,
          André

          • Seko says:

            Hallo André,

            die Mail ist raus. Würde mich auf jeden Fall sehr freuen, wenn du eine Lösung finden würdest.

          • Hier nun die Lösung des Problems 😉
            Bitte nutzt kein TextEdit. Dabei handelt es sich nicht wie der Name vermuten lässt um einen einfachen Text-Editor, sondern um ein vollständiges Schreibprogramm wie Wordpad.
            Das Problem bei Seko war, das TextEdit im Json keine ” gesetzt hat, sondern “ also formatierte Anführungszeichen. Das entspricht nicht mehr validem JSON, daher springt der Proxy mit einem Fehler raus.

            Vielen Dank an Seko für die Mithilfe.

            Beste Grüße,
            André

  28. siedenburg says:

    Leider funktioniert das Ganze jetzt wieder nicht mehr.
    Ich habe ein wenig getestet (viel geht leider nicht, da ich mit Burp nicht in die KD App rein komme) und es scheinen hauptsählich die privaten Sender betroffen zu sein. Sender wie z.B. 3Sat funktionieren noch.

    Es wäre schön wenn das Programm, auch nach längerer Zeit, noch dementsprechend angepasst wird.

    • Hi,
      ich habe eben mal nachgesehen, was das Problem ist.
      Leider kann ich nichts dagegen tun, es liegt nicht am Proxy sondern an KD.
      Es gibt mal wieder Probleme mit dem CDN von KabelDeutschland.

      Bei mir zum Beispiel gehen die privaten Sender, aber 3Sat zum Beispiel nicht.

      Leider kann ich nur sagen, dass du ein wenig Geduld haben musst bis KabelDeutschland das Problem auf seiner Seite löst.

      Die letzten mal war das Problem am nächsten morgen behoben.

      Sofern es Probleme mit meiner Software gibt, werde ich diese auf jeden Fall zeitnah beheben 😉 Das Projekt wird weiterhin aktiv gepflegt, es gibt nut zur Zeit keine Anforderungen für neue Features.

      Beste Grüße,
      André

      • siedenburg says:

        Ok, danke für die schnelle Antwort.

        Ich war nur überrascht, da gestern noch alles lief und auch auf dem Handy und Tablet läuft alles. Ist nur ärgerlich wenn man dann Fernsehen möchte, aber keinen TV hat. So ein PC Monitor ist doch etwas größer im Vergleich zu einem Handy oder Tablet.

  29. Marcus says:

    Hi,
    vielen Dank erstmal für dein tolles Tool. Soweit funktioniert es problemlos (RPi2 + Openelec)

    Ich nutze aber nicht den proxy an sich, um mir die Sender anzuschauen, sondern nur die m3u8-links der einzelnen Sender. Die habe ich in meinem tvheadend-backend hinterlegt um so dann über Kodi TV zu schauen.

    Anscheinend ändern sich aber die m3u8-Links der einzelnen Sender ab und zu.

    Gibt es die Möglichkeit , per Befehl z.b., die m3u8-links, die der kd-proxy generiert , neu auslesen zu lassen?
    Also konkret möchte ich, dass mir die Datei “playlist_high.m3u” neu generiert wird. Geht das irgendwie?

    Danke und Gruß,
    Marcus

    • Hallo Marcus,

      die links ändern sich, da KabelDeutschland ab und an sein CDN anpasst und die Streams auf verschiedene Server legt.

      Folgender Befehl sollte funktionieren um die Playlist auf der Kommando-Zeile zu generieren und zu speichern.

      wget http://[IP]:8787/high -O playlist.m3u -T 120

      Was mich interessiert, wie hast du es geschafft die streams ins TV-Headend einzubinden? 😉

      Vielen Dank.

      Beste Grüße,
      André

      • Marcus says:

        Hi Andre,

        vielen Dank für die schnelle Rückmeldung, Befehl hat funktioniert 🙂

        Ja Tvheadendeinbindung hat mich etwas Zeit gekostet, bis ich es hinbekommen habe 🙂
        Kurzerklärung:

        1) Neues IPTV Network angelegt
        2) Für jeden sender ein Mux erstellt und bei URL folgendes hinterlegt:
        pipe://ffmpeg -loglevel fatal -i http://xxxxxxxxxxxxx.m3u8 -acodec copy -vcodec copy -bsf h264_mp4toannexb -f mpegts pipe:1
        –> er pipet den http stream ins ffmpeg, weil tvheadend alleine den http-stream nicht selber lesen kann
        3) Dann erstellt er einen Service zu jedem Mux
        4) Für jeden Sender dann einen Channel mit zugehörigen Service erstellt

        🙂

        Ich werde das ganze aber jetzt modifizieren, da sich ja die https ändern, indem ich ein skript aufrufe; da sieht die URL dann ca. so aus:
        pipe://skrip.sh ZDF
        Das soll dann für den Parameter (in dem Falle ZDF), deine playlist.m3u Datei nach dem http-stream sucht und den dann ins ffmpeg pipet.

  30. Seko says:

    Geht es bei den anderen auch seit 2 Tagen gar nicht mehr oder mache ich was falsch. Über die app auf dem Telefon geht es.

    VG
    Seko

  31. gosch2912 says:

    Hi,

    hi die Einbindung in tvheadend hatte bei mir ganz einfach funktioniert.

    Neues automatisches (!) IPTV Network erstellt,
    Adresse : http://meinserver:8787/playlist.m3u#
    Nach einem “Force Scan” hatte ich alle Kanäle bei meinen Services.

    Alerdings geht es seit ein paar Tagen nicht mehr. Auch wenn ich die o.g. Adresse bei
    VLC eingebe gehts nicht, es ging aber vorher wunderbar… Wie Seko schon schrieb…

    Weiß jemnad Rat

  32. Rene says:

    Hi,

    leider funktioniert die erstellte Senderliste seit annähernd zwei Tagen nicht mehr. Senderliste wird erstellt, jedoch immer 403 forbidden. Eine Änderung der Links auf “cache3” brachte auch keine Besserung. Die App von Vodafone im selben Netz funktioniert jedoch.

      • Thomas says:

        Dito!!! Vodafone scheint irgendetwas an der JSON-Struktur geändert zu haben.

        could not decode response: json: cannot unmarshal object into Go value of type config.ChannelList
        could not fetch: json: cannot unmarshal object into Go value of type config.ChannelList

        Vielleicht gibt der Entwickler mal den Source-Code frei ;), damit man es selbst fixen kann.

  33. Nat says:

    Ich habe den KD-Proxy auf meiner DS414j laufen (schon seit einigen Monaten) in o.g. Variante (Screen).

    Seit einer Weile habe ich folgendes Problem:
    Läuft der Prozess etwas länger (Tage) funktioniert das Tool irgendwann nicht mehr.
    Der Prozess läuft noch und der Port 8787 ist auch noch offen – Connection funktioniert auch.
    Es wird nur kein gültiges Result an den Client (hier VLC) geliefert.

    Öffne ich die Screen-Session, so sehe ich auf stdout folgendes:

    == Checking credentials
    done
    == Listening …
    http://192.168.178.4:8787

    == Get channellist
    == Get channellist
    == Get channellist
    == Get channellist
    could not fetch: json: cannot unmarshal object into Go value of type config.ChannelList

    Hier sind 3 alte erfolgreiche Versuche zu sehen und ein neuer mit entsprechender Fehlermeldung. “Get channellist” und die Fehlermeldung wiederholen sich jeweils mit jedem erneuten Versuch die Playlist abzurufen.

    • Nat says:

      Oh, ich sehe gerade, dass die Fehlermeldung anscheinend nichts mit meinem Problem zu tun hat. Das scheint wohl ein allgemeines Problem zu sein. O.g. Verhalten hatte ich allerdings trotzdem schon seit längerem und dürfte nicht mit der aktuellen Problematik in Zusammenhang stehen.

  34. Andreas Lehmann says:

    Leider bekomme ich nachfolgende Fehlermeldung :
    == Get channellist
    could not fetch: json: cannot unmarshal object into Go value of type config.ChannelList
    SCHLAGWORTEANDROIDFERNSEHENIPTVKABEL DEUTSCHLANDMULTIMEDIAVODAFONE

    Die ChannelList ist leer, auch die erstellte *.m3u Datei

    Über ein wenig Hilfe wäre ich sehr dankbar. Dann könnte ich auch TV in mein Arbeitszimmer und in meinen Hobbyraum streamen…

    danke im Voraus Andreas

  35. Michaela says:

    Hallo,
    Wird das Projekt noch verfolgt?
    Bin erst jetzt darauf gestoßen und habe mir die Windows-Variante auf meinen Proliant-Server mit Windows 7 installiert. Leider akzeptiert das Programm meine Credentials nicht, auf meinem IPad hingegen funktioniert es mit diesen Userdaten.

Leave a Reply

Your email address will not be published. Required fields are marked *