Update #4 almost impossible to fix

Hey Guys,

it has been a while since my last update. It was a busy week an unfortunately not a good one for the proxy.

I managed to patch the certificate pinning out of the App to be able to read the SSL encrypted traffic and thought that from now on, it would be easy to get the proxy up and running again.

I was wrong. I was able to reverse engineer the new API but when it comes to play the actual stream I always got the already mentioned Forbidden response from the server. Until yesterday I was not sure what is the problem but then I discovered, that there is always a request on a port directly on the device.

Calling internal SSL Proxy

Calling internal SSL Proxy

What Vodafone is doing here is, they are proxying the stream through an internal SSL-Proxy. This is kind of a a VPN which secures the complete communication of the stream.

I am not able to see what happens inside of this secure connection.

There is a only slight chance that I am able to find some solutions in the source of the Android App, but it is very hard. Vodafone uses a SSL-Proxy package provided by Ineoquest and I am not able to disassemble this part of the code, because it is encrypted.

I am sorry but I think they found an very effective way from preventing us watching TV on other devices than the allowed ones.

Best regards,

Update #3 Progress on fixing the problem

This is just a very short Update to tell you that finally I found a solution to query the API of KabelDeutschland (Vodafone Kabel) again.

Postman Query Channel List

Postman Query Channel List

I found the reason why the API was not responding anymore.

There is still a problem getting the licensed channel-links. The request results in an error.

VLC error Channel Link

VLC error Channel Link

Hopefully I will find a solution for this soon.

Best regards,

Update #2 on the still broken KabelDeutschland (Vodafone Kabel) Proxy

I try to keep you guys updated as often as I can.

Today i was able to take a look into the current version of the Vodafone Kabel TV App. I tried to find the part of the code where they check if someone is interfering with the communication of the app. And to be honest, Vodafone (KabelDeutschland) found a pretty efficient way to prevent me from reading the SSL-encrypted traffic.

The following code example out of the app shows, how they did it.

In the onCreate action of the splash-screen, they are checking if the provided SSL-pub-key fits to the one provided by the app itself. This prevents me from using a proxy with a self-signed certificate to decrypt the communication.

I have not completely given up on this, but it is getting harder and harder to find a way to fix the proxy.

In the source I am able to see what requests are made, but the payload of the request body will be generated with a couple of properties but also dynamically generated IDs. These IDs I was not able to re-generate by myself, yet.

It definitely will take longer than expected to get this up and running again.

Best regards,

Update on the still broken KabelDeutschland (Vodafone Kabel) Proxy

Hey Guys,

to give you a little update about the current state of my work, here is what I tried already.

First, I was not able to solve the problem. KabelDeutschland (Vodafone Kabel) changed something in their API and within their Apps.
Normally I would use the same strategy I did to start this project in the first place, reverse engineering.

Unfortunately KabelDeutschland(Vodafone Kabel) now scans on every startup of the App (Android and iOS) if something listens to the connection. I am not able to use burp as a proxy to read the HTTPS encrypted traffic by now. It always tells me that I am not connected to the internet.

Vodafone TV App Error

Vodafone TV App Error

I will have to find another way to get into the encrypted communication of the app, to find out what they changed within their API.

If anyone has an idea, I would love to hear it.

Beste regards,

KabelDeutschland Streaming Proxy broken at the moment

Hey Guys,

as some of you already noted, the Proxy is not working at the moment. KabelDeutschland changed something the way they deliver the streams.

Good news, the App on Android and iOS is still working, so I am able to reverse engineer what is going on.

I will keep you updated as soon as I know more.

Best regards,

Belkin USB 3.0 Dual Video Docking Station using with Apple MacBook Pro

My Setup

Today I received my new Docking Station to be used with my MacBook Pro (Retina, 13-inch, Early 2015). I ordered it to be able to only attach a single cable (next to the power cord) to my MacBook and have display, network and sound available.

Belkin USB 3.0 Dual Video Docking Station

The station is not a new product, but at the moment the price is unbeatable compared to other products designed to be used especially with a MacBook. If you take a look at the Belkin Thunderbolt 2 Express-HD-Dock which offers nearly the same specifications (but including Thunderbolt) for almost three times the price, buying the USB 3.0 version is the most rational decision. My decision was faced regarding my intended use, to be able to work on the external displays and not for gaming.


The following ports are available:

  • 1x SuperSpeed USB 3.0-Port (Typ B),
  • 2 SuperSpeed USB 3.0-Ports (Typ A),
  • Hi-Speed USB 2.0 Ports (Typ A),
  • 1 RJ45-Gigabit Ethernet-Port,
  • 2.1 Sound Port (Out-, Input)
  • Kensington Lock
  • 1x DisplayPort,
  • 1x DVI-I Port

As you can see, you do not only have the display and ethernet ports but also 4 USB ports. Two of them are using the fast USB 3.0 standard and one of these is providing 2.1A output to be able to charge your tablet or mobile phone as fast as possible.

Scope of delivery

  • Belkin USB 3.0 Dual Video Docking Stand
  • 1,8 m 5V/4A Power Supply,
  • Upstream-USB 3.0-Cable
  • DVI-I/VGA Converter


The dock is not only a port replicator but includes a fully working graphics- and sound-module. The display port will be provided by the DisplayLink technology. With this setup you are able to use 4 additional displays on your latest mac, two of them connected directly to the MacBook (Thunderbolt, HDMI) and the other two connected via DVI and DisplayPort to the Belkin Dock. I know it is possible to use display-chaining provided by ThunderBolt but displays with a Thunderbolt port are way too expensive.


Most of the functions are working out of the box. That means your are able to use the Gigabit Ethernet Port and the sound-module without installing any additional drivers. Only the graphic-adapter needs the installation of a driver provided by the DisplayLink interests group. You can download it from here. Be sure to always use the latest version. At the moment I am using 2.5 Beta 2 because with some older version I experienced problems plugging in and out of the Dock would result in a system freeze. This problem is solved within the newest version.

Advantages and Disadvantages

One of the biggest advantage is the price of about 90€. You will get a fully featured docking solution for you MacBook or any other UltraBook. It look tremendously good, is well made and provide a stable stand for your book.

I can’t see any real disadvantage, but you should be aware of, that the DisplayLink technology uses you CPU to provide the power to render the image on the external Displays. This means you have a constant load of about 3-5% for the DisplayLink process. The next thing you should know is, you can’t compare the graphics adapter with a modern Nvidia GeForce card, you won’t be able to play games on a display attached to the dock because it is not able to rendern a suitable frame-rate. But nevertheless it is no problem to watch movies or anything like this.

Using the Docking Station via USB2 is possible but not recommended. The problem is, that USB2 only provides 480Mbit/s transfer-rate. The combination of Gigabit Ethernet, one Display Port and the sound module results in loosing frames-per-second, which makes it almost impossible to use. But as the name already said, it is designed for USB3 and not USB2.


To face a final conclusion it is way too early, but the first impression couldn’t be better. You will get a pretty good looking docking station with a lot of features to an very affordable price. I would definitely recommend buying the Belkin USB 3.0 Dual Video Docking Station.

There will be a new post in a couple of weeks where I will write about the daily work with the station and provide you with more information about advantages and disadvantages.

Fixed CDN problem with KabelDeutschland streaming proxy

What’s new

As some of you already noted, there have been some issues with getting the channel-list from the KabelDeutschland API. They migrated to a new Content-Delivery-Network which does not support a get-header-Request anymore. This causes the proxy to generate invalid channel-links and your were unable to watch the streams.

This should be fixed by now. I committed the fix within the PHP and the GO version of the proxy and also compiled the binaries to a new version 0.1.3.

Please give me feedback if the problem is solved for you.

Binaries Download

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

Sourcecode Repositories





Code of the KabelDeutschland streaming proxy is available as open source


A couple of times (stadt-bremerhaven.dedo-it-neat.com) I have been asked to open up the source code of my KabelDeuschland Streaming Proxy. There has been the PHP version available for quite some time on github (kd-streaming-proxy) but until now I was not able to open-source the version written in GO.

Now I got the time to clean up everything, wrote a lot of comments and put it on github for everyone to contribute.


I hope there are a lot of developers out there using my proxy and are willing to help me with the further development.

About the code

The code is completely written in GO. It should be able to compile with any version above 1.3, but to be able to generate the cross-platform binaries you need version 1.5 of GO.


It only has one dependency to the gorilla mux router. You can install it by entering the following command.

Build the source

To build the source for various platforms, simply run the build-script provided under scripts/build.sh.
It relies on a proper configured go-environment with GOPATH and GOROOT set up.

By now, I only tested the build process on OS X but it should not be a problem to run the commands on Linux.


Place a config.json next to the binary and fill it with the following content, including your KabelDeutschland credentials.

Run the binary

The easiest way, is to run the binary without any params. It searches automatically for the config.json next to the binary.



PowerPC 64bit version of the KabelDeutschland streaming proxy

What’s new

Since golang updated their compiler to version 1.5 a couple of weeks ago, I am now able to use their new cross-compile toolchain to provide you some more binaries. By now there are two new, PPC64 and PPC64le. Both of them are, as the name says, for the PowerPC architecture with a 64bit bus system. The second one is directly compiled for the low-energy profiled CPUs. This build can be used on the Synology DS213+ for example.

Below you can see the full list of all supported platforms.


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




Take the binary that fits to your environment and run it.


Version 0.1.2 of the KabelDeutschland streaming proxy

What’s new

This time, it is only a small update. I just added some improvements a couple of the users asked for. The most notable new feature is the ability to skip the certificate check. User Michael had the problem that his QNAP (TS-210) has no root certificates installed. This ended him up with an error message and prevented him from using the proxy.

I added a start-up trigger to disable the CA-Check. It is called -no-check-certificate.



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


To see a list of all triggers the proxy supports simply add -h.

If you want to see, if the disabling of the certificate check works, add -v -no-check-certificate. This disables the check and enables verbose mode to see a lot more informations.