html — получает и возвращает медиа-URL (m3u8), используя переполнение стека

У меня есть веб-сайт, на котором размещены видео от клиента. На сайте файлы загружаются извне по ссылке m3u8.

Теперь клиент хотел бы разместить эти видео на канале Roku.

Если я просто использую ссылку m3u8 с сайта, это дает ошибку, потому что сгенерированный URL-адрес отправляется с cookie, и поэтому клиент должен щелкнуть и ссылку, чтобы сгенерировать для них новый код.

Я хотел бы, если это возможно (и я не видел это здесь), чтобы очистить HTML-страницу и просто вернуть ссылку через скрипт PHP на веб-сайте из Roku.

Я знаю, как получить заголовки и тому подобное, используя чистый php, но у меня возникают проблемы с возвратом ссылки m3u8.

У меня есть код, чтобы показать, что я не ищу раздаточные материалы и на самом деле пытаюсь.

Это то, что я использовал для получения названия заголовка, например.

Примечание: я хотел бы знать, возможно ли иметь один php, который автоматически заполняет html-страницу на URL, чтобы мне не приходилось использовать разные php для каждого видео с предварительно введенным URL.

<?php
$html = file_get_contents('http://example.com'); //get the html returned from the following url

$movie_doc = new DOMDocument();

libxml_use_internal_errors(TRUE); //disable libxml errors

if(!empty($html)){ //if any html is actually returned

$movie_doc->loadHTML($html);
libxml_clear_errors(); //remove errors for yucky html

$movie_xpath = new DOMXPath($movie_doc);

//get all the titles
$movie_row = $movie_xpath->query('//title');

if($movie_row->length > 0){
foreach($movie_row as $row){
echo $row->nodeValue . "<br/>";
}
}
}
?>

0

Решение

Для этого есть простой подход, который предполагает использование регулярных выражений.

В этом примере предположим, что файл видео M3u8 находится по адресу: http://example.com/theVideoPage

Вы должны указать источник URL видео в вашем XML-файле на ваш PHP-файл.

http://thisPhpFileLocation.com

<?php
$html = file_get_contents("http://example.com/theVideoPage");

preg_match_all(
'/(http.*m3u8)/',

$html,
$posts, // will contain the article data
PREG_SET_ORDER // formats data into an array of posts
);

foreach ($posts as $post) {
$link = $post[0];

header("Location: $link");
}
?>

Теперь, если вы хотите использовать URL-адрес, к которому вы можете добавить URL-ссылку в конце, он может выглядеть примерно так, и вы будете использовать адрес как таковой для URL-адреса видео, расположенного по адресу

http://thisPhpFileLocation.com?id=theVideoPage

<?php
$id = $_GET['id'];
$html = file_get_contents("http://example.com".$id);

preg_match_all(
'/(http.*m3u8)/',

$html,
$things, // will contain the article data
PREG_SET_ORDER // formats data into an array of posts
);

foreach ($things as $thing) {
$link = $thing[1];

// clear out the output buffer
while (ob_get_status())
{
ob_end_clean();
}

// no redirect
header("Location: $link");

}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]