summaryrefslogtreecommitdiff
path: root/plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py
diff options
context:
space:
mode:
authoremilsvennesson <emilsvennesson@users.noreply.github.com>2017-12-29 20:06:24 +0100
committerMartijn Kaijser <martijn@xbmc.org>2018-01-13 10:21:04 +0100
commit27854c6fbe810992f76591a99ba7e6c3f958b060 (patch)
treed5a4a6bd8903ac9b6dc5dffa22dc5558c76eecf3 /plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py
parent54eab88b5f830047899d3a6b3349c3db84ad0cd1 (diff)
[plugin.video.cmore] 0.2.0
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