Помощник
|
Передача видео в плеер? Ретранслятор! |
arashvg
|
Сообщение
#1
|
||
|
|
||
|
|||
Freekiller |
5.2.2012, 10:47;
Ответить: Freekiller
Сообщение
#2
|
|
Вот тебе код, у меня на денвере работает
<?php set_time_limit(0);
//+------------------------------+ //| relaying | //+------------------------------+ //===================================================================++ // Настройки, если Вы не уверены в том что делаете, лучше не меняйте!|| //===================================================================++ define("QUALITY", '360'); define("MESSAGE", 'Sorry video not found'); define("TIMEOUT", 10); //#### Дальше ничего не менять без знаний PHP define("BLOCK", 8*1024); $url = "http://vk.com/video_ext.php?oid=64208647&id=161215477&hash=ad710bacd9e94891&"; #if(isset($_GET['str'])) if($url){ //Обработка входящих данных $get = explode( "?", $url ); $get = strtolower( end( $get ) ); preg_match('|oid=(.*)&|Uis', $get, $oid); preg_match('|&id=(.*)&|Uis', $get, $id); preg_match('|hash=(.*)&|Uis', $get, $hash); $oid = $oid['1']; $id = $id['1']; $hash = $hash['1']; $quality = isset($match[3]) ? $match[3] : QUALITY; $startTime = isset($_GET['start']) ? '?start='.$_GET['start'] : ''; } else die (MESSAGE); //## Получаем данные со страницы $data = getData($oid, $id, $hash, MESSAGE, TIMEOUT); //## Разбираем полученные данные //get host $start = strpos($data, 'st=')+3; $length = strpos($data, '&', $start)-$start; $host = substr($data, $start, $length); //get uid $start = strpos($data, 'uid=')+4; $length = strpos($data, '&', $start)-$start; $uid = substr($data, $start, $length); //get hash $start = strpos($data, 'vtag=')+5; $length = strpos($data, '&', $start)-$start; $hash = substr($data, $start, $length); //fix for very old video $oldVideo = false; if(strpos($host, 'vkadre.ru')){ $oldVideo = true; $start = strpos($data, 'vkid=')+5; $length = strpos($data, '&', $start)-$start; $vkid = substr($data, $start, $length); }else{ $highQuality = false; if(strpos($data, "video_max_hd = '0'")!==false) $quality = '240'; else { if(strpos($data, "video_max_hd = '1'")!==false) $maxQ = '360'; else if(strpos($data, "video_max_hd = '2'")!==false) $maxQ = '480'; else if(strpos($data, "video_max_hd = '3'")!==false) $maxQ = '720'; if($maxQ<$quality) $quality = $maxQ; $highQuality = true; } $ext = '.mp4'; if(strpos($data, 'video_no_flv = 0')!==false) { if(!$highQuality || $quality=='240') { $quality = ''; $ext = 'flv'; } } } if($oldVideo){ $link = 'http://'.$host.'/assets/videos/'.$hash.$vkid.'.vk.flv'; $startTime = ''; } else $link = $host.'u'.$uid.'/video/'.$hash.'.'.$quality.$ext; $header = get_headers($link, 0); $fp = @fopen($link, "rb") or die (MESSAGE); if(isset($header)){ foreach($header as $v) header($v); } while(!feof($fp)){ echo fread($fp, BLOCK); } fclose($fp); function getData($oid, $id, $hash, $message="Video not found", $timeout=30) { $url = 'http://vk.com/video_ext.php?oid='.$oid.'&id='.$id.'&hash='.$hash; $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); return $data; } ?> |
|
|
arashvg
|
Сообщение
#3
|
|
Вот тебе код, у меня на денвере работает Вы не совсем правильно меня поняли, мне не нужно парсить контакт, мне нужно скормить скрипту ссылку на виде, например http://tubecontext.com/videoplayer/l.mp4 (ссылка рабочая, видео есть). И пропустить это видео через него как через ретранслятор. тоесть прмрено так: <?php $url='http://tubecontext.com/videoplayer/l.mp4'; $header = get_headers($url, 0); $fp = @fopen($url, "rb") or die (MESSAGE); if(isset($header)){ foreach($header as $v) header($v); } while(!feof($fp)){ echo fread($fp, BLOCK); } fclose($fp); ?> но у меня этот код дает ошибку 504, а сам парсер ВК в свою очередь, предлагает скачать видео, такого же эффекта нужно добиться и мне! -------------------- |
|
|
HapkomaH |
6.2.2012, 12:39;
Ответить: HapkomaH
Сообщение
#4
|
|
504 ошибка значит, что времени не хватило, поставить нужно set_time_limit(0); особенно на локалке. И желательно после echo fread($fp, BLOCK); добавить еще flush(); для отдачи текущего буфера браузеру сразу. Кстати для разгрузки небольшой сервера лучше наверное читать большими блоками (не проверял, могу ошибаться).
P.S.: arashvg, добро пожаловать! |
|
|
arashvg
|
Сообщение
#5
|
|
следующий код
<?php error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 'On'); set_time_limit(0); $url='http://tubecontext.com/videoplayer/l.mp4'; $header = get_headers($url, 0); $fp = @fopen($url, "rb") or die (MESSAGE); if(isset($header)){ foreach($header as $v) header($v); } while(!feof($fp)){ echo fread($fp, BLOCK); flush(); } fclose($fp); ?> выдает также выдает 504, теструю на хостинге, вот ссылка http://onlainmovie.pp.ua/2.php моежет в самом коде ошибка, тоесть может я не то, или не все то что нужно взял из работающего парсера? P.S.: тут пришло в голову, а есть ли в ВК защита ссылки по ИП, например как на фильмиксе, или других круптых онлайн сайтах? есле нету, то в парсере нету и ретранслятора... тоесть он просто выдергивает ссылку из кода плеера (прямую ссылку, которая меняется не зависимо от ИП, а например раз в сутки), а не пропускает через себя видео поток, в таком случае и мой код работать не будет, хотя, он должен отдавать мне вдео на скачку вет сслку на видео я ему скормил также как и процедура парсинга в исходном скрипте.... Кто, что думает? -------------------- |
|
|
arashvg
|
Сообщение
#6
|
|
p.s. после 50-го нажатия F5 в браузере с загруженной ссылкой http://onlainmovie.pp.ua/2.php браузер все-таки предложил мне скачать файл, размером 10 мб, но вставляя ссылку в плеер видео не отображается, хотя по индикатору буферизации плеера, в буфер файл загружается
закомментировав строку //flush(); получаю
-------------------- |
|
|
arashvg
|
Сообщение
#7
|
|
блин дебилизм, добавил $link=$_GET['str']; перед строкой $header = get_headers($link, 0); в исходном коде, и все работет, в чем проблема была, хз )
-------------------- |
|
|
Freekiller |
8.4.2012, 7:26;
Ответить: Freekiller
Сообщение
#8
|
|
arashvg, Если нужен просто ретранслятор видео то
[php]$title = "имя файла"; header('Content-Disposition: attachment; filename="'.$title.'.flv"'); $link = ссылка на видео .flv'; $header = get_headers($link, 0); $fp = @fopen($link, "rb"); if(isset($header)) foreach($header as $v) header($v); while(!feof($fp)) echo fread($fp, BLOCK); fclose($fp);[/php] |
|
|
Bond_mw |
28.2.2015, 17:09;
Ответить: Bond_mw
Сообщение
#9
|
|
|
Вот тебе код, у меня на денвере работает Не подскажите работает еще?
Сообщение отредактировал Bond - 28.2.2015, 17:10 |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Через какой браузер и как можно найти в кэшэ браузера видео | 9 | Room | 1763 | 26.2.2024, 21:51 автор: bestx24 |
|
📌 Рандомизация видео/аудио/фото/текста с минимальным участием - 𝓓𝓮𝓵𝓽𝓪𝓣𝓸𝓸𝓵𝓼 Мы предлагаем комплексное решение для рандомизации всех видов офера |
2 | leviathan | 1327 | 29.1.2024, 21:29 автор: leviathan |
|
Скрипт поисковика видео StrongTube | 3 | 3josoft | 1545 | 14.8.2023, 14:45 автор: 3josoft |
|
BuxarVideoUploader - Автоматическое скачивание и загрузка видео из любых/ на любые видео хостинги (YouTube, TikTok, Instagram, Facebook, Яндекс Дзен, Вконтакте, Одноклассники, Rutube, Dailymotion, d.tube, Telegram и т.д. | 0 | BuxarNET | 1180 | 19.7.2023, 5:58 автор: BuxarNET |
|
DreamCash.tl - максимальный заработок на онлайн-видео. До 95% отчислений, автовыкуп подписок, отличный конверт! Официальный топик партнерской программы DreamCash.tl |
144 | 3landers | 92422 | 30.12.2022, 13:25 автор: DreamSupport |
Текстовая версия | Сейчас: 19.3.2024, 6:57 |