summaryrefslogtreecommitdiff
path: root/plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py')
-rw-r--r--plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py b/plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py
new file mode 100644
index 0000000..ade620d
--- /dev/null
+++ b/plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py
@@ -0,0 +1,33 @@
+import BaseHTTPServer
+import urlparse
+import urllib
+
+from Widevine import Widevine
+
+wv = Widevine()
+
+
+class WidevineHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
+ def do_HEAD(self):
+ self.send_response(200)
+
+ def do_POST(self):
+ length = int(self.headers['content-length'])
+ wv_challenge = self.rfile.read(length)
+ query = dict(urlparse.parse_qsl(urlparse.urlsplit(self.path).query))
+ mpd_url = query['mpd_url']
+ token = query['license_url'].split('token=')[1]
+
+ try:
+ wv_license = wv.get_license(mpd_url, wv_challenge, token)
+ self.send_response(200)
+ self.end_headers()
+ self.wfile.write(wv_license)
+ self.finish()
+ except Exception as ex:
+ self.send_response(400)
+ self.wfile.write(ex.value)
+
+ def log_message(self, format, *args):
+ """Disable the BaseHTTPServer log."""
+ return