From 4cbc21de464e2ffa827a3b616a45e70e67c033c2 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Tue, 18 Sep 2018 18:49:43 +0200 Subject: [PATCH] feat: Add support for HTTP range requests when stream mode is enabled Fixes #192 --- controllers/FrontController.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/controllers/FrontController.php b/controllers/FrontController.php index b34ed28..d6b7823 100644 --- a/controllers/FrontController.php +++ b/controllers/FrontController.php @@ -422,9 +422,21 @@ class FrontController $body = new Stream($stream); } else { $client = new Client(); - $stream = $client->request('GET', $video->url, ['stream' => true]); + $stream = $client->request( + 'GET', + $video->url, + [ + 'stream' => true, + 'headers' => ['Range' => $request->getHeader('Range')] + ] + ); $response = $response->withHeader('Content-Type', $stream->getHeader('Content-Type')); $response = $response->withHeader('Content-Length', $stream->getHeader('Content-Length')); + $response = $response->withHeader('Accept-Ranges', $stream->getHeader('Accept-Ranges')); + $response = $response->withHeader('Content-Range', $stream->getHeader('Content-Range')); + if ($stream->getStatusCode() == 206) { + $response = $response->withStatus(206); + } $body = $stream->getBody(); } if ($request->isGet()) {