Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача видео в плеер? Передача удаленного видео в плеер 
:(
    Опции темы
arashvg
Дата 6.1.2012, 16:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 19.6.2009

Репутация: нет
Всего: нет



собственно есть скрипт который (работал пока контакт не поменял структуру) вытаскивал прямую ссылку на видеофайл контакта и потоком передавал его в плеер, на его основе нужно сделать обычную передачу видео в плеер, тоесть выдирать никаких сслок не нужно:

вот код скрипта: 

Код

<?php set_time_limit(0);
//+------------------------------+
//|    relaying                 |
//+------------------------------+

//===================================================================++
// Настройки, если Вы не уверены в том что делаете, лучше не меняйте!||
//===================================================================++

define("QUALITY", '360'); 
define("MESSAGE", 'Sorry video not found'); 
define("TIMEOUT", 10);  




//#### Дальше ничего не менять без знаний PHP
define("BLOCK", 8*1024);

if(isset($_GET['str']))
{ 
    //Обработка входящих данных
    if(preg_match('#^video((?:|-)\d+)_(\d+)(?:|_(\d+))$#', $_GET['str'], $match))
    {
            $oid = $match[1];
            $id = $match[2];
            $quality = isset($match[3]) ? $match[3] : QUALITY;
            $startTime = isset($_GET['start']) ? '?start='.$_GET['start'] : '';
    }
    else die(MESSAGE);
}
else die (MESSAGE);

//## Получаем данные со страницы
$data = getData($oid, $id, 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;


$link .= $startTime;
$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, $message="Video not found", $timeout=30)
{
    $url = 'http://vkontakte.ru/video.php?act=a_embedbox&oid='. $oid .'&vid='. $id;
    $ch = curl_init($url) ;
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
    curl_setopt($ch,CURLOPT_TIMEOUT, $timeout);
    $data = curl_exec($ch);

    $start = strpos($data, 'hash=')+5;
    $length = strpos($data, '\\', $start)-$start;
    $hash = substr($data, $start, $length);

    $url = 'http://vkontakte.ru/video_ext.php?oid='.$oid.'&id='.$id.'&hash='.$hash;
    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);
    if(strpos($data, 'не найден')!==false ||  strpos($data, 'видео изъято')!==false) die($message);

return $data;
}
?>

  

пытался сделать сам, но у меня ничео не работает, может подскажыте где ошибся? вот мой код:

Код

<?php
define("QUALITY", '360'); 
define("MESSAGE", 'Sorry video not found'); 
define("TIMEOUT", 10); 

 
//echo $_GET['stat'];
$link. = $_GET['stat'];
$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);
echo $fp;


?>

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.