Re: moonwalk
Пока все хорошо, похоже у Вас сервер находится в РФ а видео заблокированно
Вы тут как гость.
Неофициальный форум DLNA Home Media Server → Coding → moonwalk
Страницы Назад 1 … 5 6 7 8 9 … 21 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Пока все хорошо, похоже у Вас сервер находится в РФ а видео заблокированно
в казахстане и через сайт лостфильма показывает а вот скрипт нехочет прямой линк отдавать
с сервака в сша тоже самое нет линка
тоже не работает
А вы код можете показать?
Нужна помощь. У меня сайт на https, но ссылки на потоки у moonwalk http и, как итог, видео не загружается
Mixed Content: The page at 'URL-SITE-WITH-HTTPS' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'URL-TO-m3u8'. This request has been blocked; the content must be served over HTTPS.
Может кто сталкивался и знает как обойти эту проблему?
Используйте домен https://streamguard.cc в место http://moonwalk.cc
Используйте домен https://streamguard.cc/
Ладно, так и быть, опишу точнее:
- Для парсинга использую код, который описан в этом обсуждении
- Получаю m3u8 файл такого вида
#EXTM3U
#EXT-X-STREAM-INF:RESOLUTION=640x266,BANDWIDTH=377000
http://185.38.12.34/sec/1534503396/373530314cb1c2175cc6f69280586475c00f713d0f0d5aae/ivs/b6/7a/35a9bdbbc5a6/hls/tracks-4,5/index.m3u8
#EXT-X-STREAM-INF:RESOLUTION=1152x480,BANDWIDTH=571000
http://185.38.12.34/sec/1534503396/3238393706103159363c0c0badf0b11cd2fa5526463372b6/ivs/b6/7a/35a9bdbbc5a6/hls/tracks-3,5/index.m3u8
#EXT-X-STREAM-INF:RESOLUTION=1280x532,BANDWIDTH=1038000
http://185.38.12.34/sec/1534503396/363332305f34604567ff06c16a122fc203b863044aa5d1a5/ivs/b6/7a/35a9bdbbc5a6/hls/tracks-2,5/index.m3u8
#EXT-X-STREAM-INF:RESOLUTION=1920x800,BANDWIDTH=1835000
http://185.38.12.34/sec/1534503396/38323535f25b916b09c69ea7f26a89d903206357acc3f5ac/ivs/b6/7a/35a9bdbbc5a6/hls/tracks-1,5/index.m3u8
- Открываю его на сайте с помощью js плеера (не реклама)
- А дальше уже та проблема, что я описал немного выше
опять не работает
Warning: file_get_contents(http://moonwalk.cc/video/bd7a7a86a22dcd92/iframe): failed to open stream: HTTP request failed! in .../public_html/moonwalk.php on line 103
No VideoBalancer info in the loaded iframe.
опять не работает
Warning: file_get_contents(http://moonwalk.cc/video/bd7a7a86a22dcd92/iframe): failed to open stream: HTTP request failed! in .../public_html/moonwalk.php on line 103 No VideoBalancer info in the loaded iframe.
Пробуйте этот код, немножко пришлось переделать и дописать свое для удобства, требуется поддержка curl на хостинге.
вывод ссылок такой
А возможно ли достать те же mp4 ссылки или m3u8 на весь сезон? или только циклом парсить каждый iframe (...&seasson=1episode=1, ...&seasson=1episode=2, ...)?
Только парсить, так как ссылки живу не долго.
А возможно ли достать те же mp4 ссылки или m3u8 на весь сезон? или только циклом парсить каждый iframe (...&seasson=1episode=1, ...&seasson=1episode=2, ...)?
Сначала конечно iframe (...&seasson=1episode=1, ...&seasson=1episode=2, ...), а потом уже в скрипт,что выше.
Примерно так. Пробуйте. Это сезоны и сериалы
<?php
// Входные параметры
$url = isset($_REQUEST['url']) ? $_REQUEST['url' ] : "";
$url = str_replace(array('.biz','.top','.org','.co','.pw'),'.cc',$url);
$cookies = array();
$headers = "Accept-Encoding: gzip, deflate\r\n".
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n".
"Referer: ".$url."\r\n".
"User-Agent: Mozilla/5.0\r\n";
// Загружаем страницу iframe
$page = curl($url);
// Берём json данные о сериале
$data = GetRegexValue($page, "#VideoBalancer\((.*?)\);#is");
if (!$data) die("No VideoBalancer info in the loaded iframe.<br>".$page);
$options = JSDecode($data);
$token_serial = $options["serial_token"];
foreach ($options["seasons"] as $season) {
$pageSeason = curl('http://moonwalk.cc/serial/'.$token_serial.'/iframe?season='.$season);
// Берём json данные о сериале
$data = GetRegexValue($pageSeason, "#VideoBalancer\((.*?)\);#is");
$optionsSeason = JSDecode($data);
foreach ($optionsSeason["episodes"] as $episode) {
echo '<br>http://moonwalk.cc/video/'.$token_serial.'/iframe?season='.$season.'&episode='.$episode.'|'.'Ceзон '.$season. ' серия '.$episode.'"';
}
}
///////////////////////////////////////////////////////////////////////////////
// Получение страницы с указанными методом и заголовками/////
function curl($url, $post='', $mode=array()) {
$defaultmode = array('charset' => 'utf-8', 'ssl' => 0, 'cookie' => 1, 'headers' => 0, 'useragent' => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0');
foreach ($defaultmode as $k => $v) {
if (!isset($mode[$k]) ) {
$mode[$k] = $v;
}
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, $mode['headers']);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $mode['useragent']);
curl_setopt($ch, CURLOPT_ENCODING, $mode['charset']);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 200);
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if ($mode['cookie']) {
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');
}
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if ($mode['ssl']) {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
////////////////////////////////////////////////////////////////////
// Функция получения значения по указанному регулярному выражению
function GetRegexValue($text, $pattern, $group=1) {
if (preg_match($pattern, $text, $matches))
return $matches[$group];
return "";
}
///////////////////////////////////////////////////////////////////////////////
// Функция получения массива из JS кода вместо json_decode
function JSDecode($data) {
$data = str_replace("encodeURIComponent(", "", $data); // Убираем левые js команды
$data = str_replace("'),", "',", $data);
$data = str_replace("'", "\"" , $data); // Заменяем одинарные кавычки на экранированные обычные
$data = str_replace(["\n","\r"], "", $data); // Убираем переносы строк
$data = preg_replace('/([^\w"\.])(\w+)\s*:/','$1"$2":', $data); // Берём в кавычки имена
$data = preg_replace('/("\w+")\s*:\s*([\w\.]+)/' ,'$1:"$2"', $data); // Берём в кавычки все значения
$data = preg_replace('/(,\s*)(})/','$2', $data); // Убираем лишние пробелы
$json = json_decode($data, true);
return $json;
}
Можно сделать через форму.
Я себе сделал вот так:
Почему то полученные ссылки иногда выдают 403 ошибку при открытии с другого ip, например возьмем фильм мстители 3, запустил код на сервере, получил все ссылки, и если на локальном компе выполнить wget URL_MP4 то ошибка 403, а если на том же сервере попробовать скачать, то качается нормально.
Такое наблюдается не очень часто, и вроде только у фильмов. С сериалами вроде как всё норм.
Почему то полученные ссылки иногда выдают 403 ошибку при открытии с другого ip
Подтверждаю.
Ссылка вида
http://wonky.lostcut.net/moonwalk.php?u … 619/iframe
Играться не будет.
Хотя эту хоть в VLC пихай, будет показывать:
http://wonky.lostcut.net/moonwalk.php?u … ab6/iframe
Причины не известны. Никакой дополнительной информации о защите или блокировке не найдено.
Сейчас вообще всё перестало работать ((((
$iv = GetRegexValue($jsData, '#,\br="([^"]+)",#i');
вот тут пустое значение получаю
Сейчас вообще всё перестало работать ((((
$iv = GetRegexValue($jsData, '#,\br="([^"]+)",#i');
вот тут пустое значение получаю
Из-за того, что там js код часто меняется так, что и регулярки приходится всё с такой же частотой подгонять, то это значение iv можно и захардкорить.
Сделать строкой:
$iv = "79e4add175162a762071a11fe45d249f";
Из-за того, что там js код часто меняется так, что и регулярки приходится всё с такой же частотой подгонять, то это значение iv можно и захардкорить.
Сделать строкой:
$iv = "79e4add175162a762071a11fe45d249f";
Спасибо. Всё работает. Вот бы ещё 403 ошибки в некоторых видео не было бы )
Сейчас вообще всё перестало работать ((((
$iv = GetRegexValue($jsData, '#,\br="([^"]+)",#i');
вот тут пустое значение получаю
Только сегодня добрался до компа,проверил регулярку,она рабочая. Скрипт ссылки получает, там js код не менялся.
Пример
Не кто не сталкивался с тем что у некоторых видео например в качестве 1080 ссылка ведет на 720?
Не кто не сталкивался с тем что у некоторых видео например в качестве 1080 ссылка ведет на 720?
Вот если б пример ссылки привели...
Вот если б пример ссылки привели...
WendyH! Посмотри мой пример выше
Вот если б пример ссылки привели...
походу у moonwalk'а какая то фигня была, сейчас проснулся и теперь 1080 стал 1080 )
опять скрипт не работает:(
кто-то может поделится рабочим?
найти
$iv = "79e4add175162a762071a11fe45d249f";
и вставить вместо этого
$iv = GetRegexValue($jsData, '#,\br="([^"]+)",#i');
опять скрипт не работает:(
кто-то может поделится рабочим?
А вы этим кодом пользуетесь? https://hms.lostcut.net/viewtopic.php?pid=12707#p12707
Да быстро он погибает( Только вчера поставил скрипт от Spell'а и опять все похерилось(((( Spell на форуме может поправит?)
В общем я немного разобрался!!! Тестируем.
Спасибище огромное!!!
Страницы Назад 1 … 5 6 7 8 9 … 21 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Неофициальный форум DLNA Home Media Server → Coding → moonwalk