diff options
author | emilsvennesson <emilsvennesson@users.noreply.github.com> | 2017-12-29 20:06:24 +0100 |
---|---|---|
committer | Martijn Kaijser <martijn@xbmc.org> | 2018-01-13 10:21:04 +0100 |
commit | 27854c6fbe810992f76591a99ba7e6c3f958b060 (patch) | |
tree | d5a4a6bd8903ac9b6dc5dffa22dc5558c76eecf3 /plugin.video.cmore/resources/lib/WidevineHTTPRequestHandler.py | |
parent | 54eab88b5f830047899d3a6b3349c3db84ad0cd1 (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.py | 33 |
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 |