add oembed dada-url

This commit is contained in:
Roy Olav Purser 2021-05-13 13:02:20 +02:00
parent 9e23554678
commit 8ed4aafc64
Signed by: roypur
GPG Key ID: E14D26A036F21656
4 changed files with 14 additions and 17 deletions

View File

@ -1,10 +1,11 @@
<html> <html>
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link type="application/json+oembed" href="{{ oembed }}" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/video.js/{{ videojs_version }}/video-js.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/video.js/{{ videojs_version }}/video-js.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@silvermine/videojs-chromecast@latest/dist/silvermine-videojs-chromecast.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@silvermine/videojs-chromecast@{{ chromecast_version }}/dist/silvermine-videojs-chromecast.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/{{ videojs_version }}/video.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/{{ videojs_version }}/video.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@silvermine/videojs-chromecast@latest/dist/silvermine-videojs-chromecast.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@silvermine/videojs-chromecast@{{ chromecast_version }}/dist/silvermine-videojs-chromecast.min.js"></script>
<script src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script> <script src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
<script src="{{ script }}"></script> <script src="{{ script }}"></script>
<link rel="stylesheet" href="{{ custom_style }}"> <link rel="stylesheet" href="{{ custom_style }}">

View File

@ -1,13 +1,3 @@
body { body {
margin: 0px; margin: 0px;
} }
/*
.video-js {
font-size: 1rem;
}
@media (pointer:coarse) and (orientation:portrait) {
.video-js {
font-size: 3rem;
}
}
*/

View File

@ -33,9 +33,9 @@ if playlist is not None:
with open("/app/sources.json", "w+") as f: with open("/app/sources.json", "w+") as f:
f.write(json.dumps(playlist)) f.write(json.dumps(playlist))
try: try:
resp = requests.get("https://api.cdnjs.com/libraries/castjs?fields=version") resp = requests.get("https://registry.npmjs.org/@silvermine/videojs-chromecast")
data = json.loads(resp.text) data = json.loads(resp.text)
chromecast_version = data["version"] chromecast_version = data["dist-tags"]["latest"]
except Exception as e: except Exception as e:
print(e) print(e)
else: else:

View File

@ -174,9 +174,15 @@ class MainHandler(tornado.web.RequestHandler):
if template_js is not None and template_html is not None: if template_js is not None and template_html is not None:
stream_path = f'{self.request.path}?provider={provider}' stream_path = f'{self.request.path}?provider={provider}'
rendered_js = template_js.generate(stream=stream_path); rendered_js = template_js.generate(stream=stream_path);
b64 = str(base64.b64encode(rendered_js), "ascii") b64_js = str(base64.b64encode(rendered_js), "ascii")
script = f'data:text/javascript;charset=utf-8;base64,{b64}' script = f'data:text/javascript;charset=utf-8;base64,{b64_js}'
rendered_html = template_html.generate(script=script, videojs_version=videojs_version, chromecast_version=chromecast_version, custom_style=custom_style) embed_json = {}
embed_json["version"] = "1.0"
embed_json["type"] = "video"
embed_json["html"] = f'<iframe src="{self.request.uri}"></iframe>'
b64_frame = str(base64.b64encode(bytes(json.dumps(embed_json), "utf-8")), "ascii")
oembed = f'data:application/json+oembed;charset=utf-8;base64,{b64_frame}'
rendered_html = template_html.generate(script=script, videojs_version=videojs_version, chromecast_version=chromecast_version, custom_style=custom_style, oembed=oembed)
self.write(rendered_html) self.write(rendered_html)
else: else:
self.set_status(404) self.set_status(404)