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.
1 |
./kd_proxy |
If you got a permission denied error, you have to set the executable bit for the binary
1 |
chmod u+x kd_proxy |
On all systems you will see the same output if everything went fine.
1 2 3 4 5 6 |
== Checking credentials done == Listening ... http://10.0.101.168:8787 http://192.168.216.71:8787 http://172.28.128.1:8787 |
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.
1 2 3 |
http://localhost:8787 http://127.0.0.1:8787 http://[your-ip]:8787 |
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.
1 |
TERM=xterm-xfree86 screen -S kd-proxy -d -m './kd_proxy' |
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.
1 |
ipkg install screen |
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.
1 |
TERM=xterm-xfree86 screen -r kd-proxy |
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.
- Open playlist
- The playlist loaded to VLC
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é
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)
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
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é
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é
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
Gibt es den Source von der Go-Anwendung auch auf Github?
Bisher noch nicht.
Ein part ist noch closed source aus einem anderen Projekt. Sobald ich den refactored habe, werde ich es auf github stellen.
Rein Programm-Ablauf-technisch ist es aber gleich dem web-script (https://github.com/edi-design/kd-streaming-proxy), nur etwas schlanker.
hi,
sadly not working (armv6, arch linux Pi)
http://pastebin.com/CwP37pry (Errors)
Did I need some other requirements on my system? go?
regards,
foxce
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é
Wird denn die DS213+ auch unterstützt ?
Die läuft mit einem Freescale PowerPC (e500v*) CPU.
Grüße
Ben
Es gibt eine inoffizielle toolchain für PowerPC.
Ich werde am Wochenende mal versuchen damit zu kompilieren und gebe dann Rückmeldung.
Super, das würde mich freuen 🙂
Hattest du nicht noch was mit nem Webserver erzählt , wäre das ne Alternative ?
Unter Windows und Android hab ichs zum laufen gebracht, geht einwandfrei. Ist die Qualität immer so dürftig ? Liegt warscheinlich an KD ?
Grüße
Ben
Das Programm gibt es auch als Variante in PHP geschrieben. Zu finden in meinem github repo (https://github.com/edi-design/kd-streaming-proxy).
Leider gibt es bei 2 Leuten bisher das Problem, dass die Lizensierten Links nicht erzeugt werden können. Leider kann ich den Fehler nicht reproduzieren mit meinem Account. Ich weiß, dass es mit einer Gruppen-ID von KD zusammen hängt, welche ich in der PHP Variante aber nicht so setzen kann wie im Go-Binary.
Ich drück die Daumen, dass es bei dir läuft.
Falls nicht und wenn du ein iOS Gerät hast, können wir gern versuchen, das Problem zu debuggen.
Beste Grüße,
André
Der PowerPC support wird in golang 1.5 integriert sein (https://groups.google.com/forum/#!topic/golang-nuts/4Ag2ahsTcvA).
Es gibt auch schon in TIP einen funktionierenden compiler. Ich werde die Woche mal eine virtuelle Maschine aufsetzen und gegen die aktuellste Version kompilieren lassen.
Also ich kann das PHP Script aufrufen, Playlist wird generiert, allerdings spielt er die liste nicht ab.
Die generierte m3u inhalt pro sender sieht auch anders
So siehts fürs Erste aus, ID und IP hab ich mal rausgenommen:
———————————————————————————————————-
http://xxx.xxx.xxx.xxx/kd-streaming-proxy-master/kd.php?id=xxxxxx&link=http%3A%2F%2Fcdn1.iptv.kabel-deutschland.de%2Flive-spts%2Fmedia%2Fdaserste%2Ftransmux%2Fhls.m3u8&log_level=none
Grüße
Ben
Die links sind richtig so.
In go musste ich den channel-link base64 encodieren, da sonst der http-router nicht damit klar kam.
Wenn du deinen link mal mit log_level=debug aufrufst, siehst du ob überhaupt ein lizensierter Link geniert werden kann.
Unter logs/result.log findest du dann die ergebnisse des calls an KD.
Beste Grüße,
André
Gibts bezüglich des PowerPC Support schon eine Info ?
Grüße
Ben
Hi Ben,
leider bin ich mit dem freien go port für ppc bisher nicht weiter gekommen und die 1.5 von golang ist noch nicht verfügbar.
Tut mir leid.
Beste grüße
André
Hey Ben,
vor einigen Wochen hat die Entwicklergruppe zu go die Version 1.5 ihres compilers veröffentlicht. Leider habe ich es eben erst geschafft, die Binaries gegen die neue Version zu compilieren. Unter http://freshest.me/powerpc-64bit-version-of-the-kabeldeutschland-streaming-proxy/ findest du endlich eine Version für ppc64 😉
Ich konnte sie bisher nicht testen, da ich keine DS213+ besitze, es wäre also super, wenn du mir Feedback geben könntest.
Beste Grüße,
André
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é
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.
Isch abe gar kein iOS-Gerät 😉 Kann also schlecht mit Burp vergleichen.
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.
Ich vermute mal, dass die Entwickler in etwa so etwas machen werden: http://stackoverflow.com/questions/17677655/how-to-generate-unique-identifier-which-should-work-in-all-ios-versions
Sobald ich kann, werde ich mal auf einem frischen iOS Gerät prüfen, was denn passiert, wenn eine unbekannte UDID an KD geht.
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é
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é
Ich nehme die Störung zurück 😉
Man sollte sich vorher aus dem Firmen VPN ausloggen, bevor man teste 😀
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.
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.
Für mich sollte eigentlich das selbe Setup in Frage kommen.
Kodi auf dem FireTV.
Von daher werde ich auf jeden fall dran bleiben.
Das hört man gerne 😉
Hi Sebastian,
schau dir mal den aktuellen Beitrag an. Kodi / XBMC laufen endlich 😉
http://freshest.me/updated-kabeldeutschland-streaming-proxy/
Beste Grüße,
André
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é
Hallo André,
habe über meinen KD-Anschluss mit Burp die Calls gecaptured. Kann ich dir die irgendwie zur Verfügung stellen?
Gruß
Marcus
Hi Marcus,
Super, Vielen Dank schon im Vorraus.
bitte an andre at freshest.me
Beste Grüße,
André
Mail ist raus.
Danke, kam an.
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
Hat sich erledigt.
Hallo,
und wo war jetzt der Fehler? Habe den gleichen Fehler.
LG
Same here..
on RasPi with Raspbmc
Hast du die config.json heruntergeladen und mit deinen Zugangsdaten von Kabel Deutschland gefüttert? Es kann bei Kabel Deutschland auch mal vorkommen, dass man mit 2 Kundennummern geführt wird, in dem Fall unbedingt mal selbst unter http://www.kabeldeutschland.de/csc/ einloggen und nachschauen, ob auch ein TV-Vertrag aufgeführt ist.
Viele Grüße
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
Hi Daniel,
leider wird die config nicht richtig von selbst erzeugt, du musst sie von einem der Mirror herunter laden und deine Daten anpassen.
https://dl.dropboxusercontent.com/u/2840418/freshest.me/kd_proxy/config.json
Beste Grüße,
André
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 😉
Moin, kann man das Ganze nicht auch direkt auf einer Fritzbox laufen lassen?
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é
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é
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?
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!
Sehr gut, freut mich 😉
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?
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”…
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é
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é
Danke für die schnelle Antwort!
Ich hab dir mal einen Screenshot angehängt:
http://fs5.directupload.net/images/151005/nsujop6v.png
Jedes mal wenn ich die Please edit your configuration Ausgabe bekomme, editiert er mir die config.json Inhalte in “null”
Hat deine config.json folgenden Inhalt (abgesehn davon dass dein user und pass drin steht) ?
{
"Service": {
"Username": "##username##",
"Password": "##password##",
"Listen": ":8787"
}
}
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é
Ist es möglich das Kodi-Addon auch unter Plex zu verwenden?
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é
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…
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é
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é
Hallo Tim,
welche Einstellungen hast du denn bitte bei TextEdit vorgenommen?
Grüße Lars
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
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é
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é
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é
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é
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).
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é
Stimmt,
jetzt klappt alles. DANKE
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é
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é
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é
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.
Hey,
leider gibt es aktuell auf Seiten von KabelDeutschland Änderungen am CDN.
Genaueres findest du hier http://freshest.me/powerpc-64bit-version-of-the-kabeldeutschland-streaming-proxy/#comment-3605
Ich versuche den Proxy dahingehend anzupassen.
Beste Grüße,
André
Danke für die Info. Gibst du hier Bescheid wenn es wieder geht? Oder soll man(n) von Zeit zu Zeit nachschauen? 🙂
Gruß & Danke
Jop, sobald ich einen Fix habe, antworte ich dir hier.
Aber du kannst dennoch gern öfters vorbei schauen 😉
Beste Grüße,
André
Hey,
eine neue Version ist verfügbar.
http://freshest.me/fixed-cdn-problem-with-kabeldeutschland-streaming-proxy/
Teste bitte ob es dein Problem behebt, zumindest ich kann damit wieder die Streams schauen.
Beste Grüße,
André
Hallo Andre,
Danke! Klappt super! Woran lag es denn?
Grüße
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é
Na da bin ich sicher nicht der einzige der sich darüber freut… 🙂
Super Arbeit.
Gruß
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?
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?
Hi David,
leider bietet meines Wissens nach KabelDeutschland keine HD Sender im Stream an.
Du kannst aber beim abrufen der Playlist die Qualität auf high setzen
http://localhost:8787/high
Beste Grüße,
André
Aah, danke für den Tipp! Probiere ich heute abend mal aus.
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é
hallo. habe windows 10 die config ist bei mir 1 kb groß und zeigt null an
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é
Das ist eine super Sache und deshalb ein herzliches Dankeschön an den Entwickler!
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
Habe es gefunden:
http://freshest.me/code-of-the-kabeldeutschland-streaming-proxy-is-available-as-open-source/
Unter “Configuration” 😉
Perfekt 😉
Wenn du noch Fragen hast, gib gern bescheid.
Beste Grüße,
André
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é
Hallo André,
Ich hatte es schon befürchtet. Ich ein @im UserName.
Den kann man ja auch nicht mehr ändern bei KD.
VG
Seko
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é
Hallo André,
die Mail ist raus. Würde mich auf jeden Fall sehr freuen, wenn du eine Lösung finden würdest.
Mail kam an.
Ich melde mich spätestens morgen, hoffentlich mit einer Lösung 😉
Beste Grüße,
André
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é
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é
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.
Ich habe mir das ganze jetzt nochmal angesehen und es funktioniert bei mir nur mit http://cache3.iptv.kabel-deutschland.de, alle anderen cache Server verweigern den Zugriff.
Ich habe jetzt alle Adressen auf cache3 gewechselt und jetzt geht alles,
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é
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.
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
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
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.
Das kann ich so bestätigen.
KD App kaputzki.
Vodafone App läuft.
VG
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.
Hi Thomas,
danke, dass du helfen willst, der Code steht schon seit Monaten frei auf github zur Verfügung 😉
http://freshest.me/code-of-the-kabeldeutschland-streaming-proxy-is-available-as-open-source/
Der Code der PHP sowie der GO-Version sind verfügbar.
Wenn du meine aktuellsten Blog-Posts liest, siehst du auch, dass ich aktiv nach einer Lösung suche, Vodafone uns aber das leben enorm schwer macht 😉
Beste Grüße,
André
Super danke, werde mich morgen mal dransetzen.
Verstehe leider nicht ganz, warum man es mit dem Tablet oder Smartphone empfangen kann und bei den Rechnern stellen sie sich so an.
Gruß
Thomas
Ich denke mal, dass es da Lizenz-Probleme gibt.
Ist ja auch der Grund, warum die RTL-Gruppe fehlt.
Wenn du Hilfe brauchst, meld dich einfach.
Beste Grüße,
André
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.
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.
Kann ich nur bestätigen, geht leider nicht mehr.
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
Verdammt, hab das eben weiter oben gelesen :
“Vodafone scheint irgendetwas an der JSON-Struktur geändert zu haben.”
Hallo,
gibts was neues ?
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.
Bei mir leider genau dasselbe 🙁
Hallo,
Bin bei Kabel Deuschland Kunde seit vielen Jahren.
Wo finde ich meine Username und Password?
Auf dem Vertrag, im Kundenportal vom Helpdesk oder wo?
Muss ich vielleicht danach fragen?
Danke,
mm