fix: Specify allowed protocols explicitely

"^=http" also catches http_dash_segments
This commit is contained in:
Pierre Rudloff 2019-03-24 15:13:01 +01:00
parent 2ebe1a5bb0
commit 506584ceee
2 changed files with 6 additions and 11 deletions

View file

@ -67,7 +67,7 @@ class FrontController
*
* @var string
*/
private $defaultFormat = 'best[protocol^=http]';
private $defaultFormat = 'best[protocol=https]/best[protocol=http]';
/**
* LocaleManager instance.
@ -265,14 +265,14 @@ class FrontController
private function getAudioResponse(Request $request, Response $response, array $params, $password = null)
{
try {
if (isset($params['from']) || isset($params['to'])) {
if (isset($params['from']) && !empty($params['from']) || isset($params['to']) && !empty($params['to'])) {
throw new Exception('Force convert when we need to seek.');
}
if ($this->config->stream) {
return $this->getStream($params['url'], 'mp3', $response, $request, $password);
} else {
$urls = $this->download->getURL($params['url'], 'mp3[protocol^=http]', $password);
$urls = $this->download->getURL($params['url'], 'mp3[protocol=https]/mp3[protocol=http]', $password);
return $response->withRedirect($urls[0]);
}
@ -300,11 +300,7 @@ class FrontController
} catch (PasswordException $e) {
return $this->password($request, $response);
}
if ($this->config->stream) {
$protocol = '';
} else {
$protocol = '[protocol^=http]';
}
if (isset($video->entries)) {
$template = 'playlist.tpl';
} else {
@ -324,7 +320,6 @@ class FrontController
'class' => 'video',
'title' => $title,
'description' => $description,
'protocol' => $protocol,
'config' => $this->config,
'canonical' => $this->getCanonicalUrl($request),
'locale' => $this->localeManager->getLocale(),

View file

@ -27,7 +27,7 @@
{/if}
<select name="format" id="format" class="formats monospace">
<optgroup label="{t}Generic formats{/t}">
<option value="best{$protocol}">
<option value="{if $config->stream}best{else}best[protocol=https]/best[protocol=http]{/if}">
{strip}
{t}Best{/t} ({$video->ext})
{/strip}
@ -37,7 +37,7 @@
{t}Remux best video with best audio{/t}
</option>
{/if}
<option value="worst{$protocol}">
<option value="{if $config->stream}worst{else}worst[protocol=https]/worst[protocol=http]{/if}">
{t}Worst{/t}
</option>
</optgroup>