diff --git a/backend/stream.py b/backend/stream.py index e0bc062..5030717 100755 --- a/backend/stream.py +++ b/backend/stream.py @@ -269,10 +269,13 @@ class MainHandler(tornado.web.RequestHandler): upstream_proxy = await handler.proxy.proxy_url(upstream, None) ctype = await handler.proxy.content_type(upstream_proxy) self.set_header("Content-Type", ctype) - if redir: + if ctype == "application/vnd.apple.mpegurl": + async with handler.proxy.local() as session: + resp = await session.get(upstream_proxy) + data = await resp.read() + self.write(data) + elif redir: self.redirect(upstream_proxy, status=303) - else: - self.set_header("Content-Location", upstream_proxy) async def get(self): await self.handle_any(True) diff --git a/backend/stream_providers.py b/backend/stream_providers.py index a16e025..9a698a2 100755 --- a/backend/stream_providers.py +++ b/backend/stream_providers.py @@ -167,7 +167,7 @@ class MetaRunner(StreamProvider): self.logger.info(e) return StreamData(None, data.get("og:image"), data.get("og:title"), data.get("og:description"), False) -upstream_cache = expiringdict.ExpiringDict(max_len=128, max_age_seconds=30) +upstream_cache = expiringdict.ExpiringDict(max_len=4096, max_age_seconds=1800) async def get_from_runner(cache_key, runner, logger): result = None diff --git a/frontend/script.js b/frontend/script.js index 6f899dd..c957381 100644 --- a/frontend/script.js +++ b/frontend/script.js @@ -26,7 +26,6 @@ video.className = "video-js vjs-big-play-centered"; body.appendChild(video); const ctype = xhr.getResponseHeader("Content-Type"); - const media = xhr.getResponseHeader("Content-Location"); const image = xhr.getResponseHeader("Custom-Poster"); console.log(ctype); const options = {}; @@ -44,7 +43,7 @@ } const source = {}; source.type = ctype; - source.src = media; + source.src = upstream; player.src(source); const canPlayTypeRaw = player.canPlayType(ctype); const canPlayType = (canPlayTypeRaw === "maybe") || (canPlayTypeRaw === "probably");