Редактор темы

Реклама
Реклама
Реклама
Реклама

Важно Скрипт-парсер трейлера с ютуба (вставляет ссылку в доп.поле)

  • Автор темы Автор темы Sistemos
  • Дата начала Дата начала
Сделал скрипт-молодец.Просто в следующий раз при разработке модуля или скрипта человек будет глядеть глубже.

В следующий раз - шел бы ты подальше со своими замечаниями
 
Извиняюсь если обидел автора(
Sistemos)
скрипта!
 
АП темы, вдруг кто-то не видел. Скрипт рабочий.
@Sistemos, проверил на dle 11, всегда находит один и тот же ролик.
почитал в теме про прокси (http://zerocoolpro.biz/forum/thread...jaet-ssylku-v-dop-pole.1224/page-2#post-60306)
взял прокси 213.85.92.10:80 и еще несколько.

ничего не находит

мой файл treiler_pars.php
Код:
<?php
if ( isset($_POST['fname']) and $_POST['fname'] != '' and !substr_count($_POST['fname'], 'http') ) {
    $youtube_query = trim( strip_tags ($_POST['fname']) );
    $youtube_query = preg_replace('/\s/', '+', $youtube_query);
    $doptext = iconv("cp1251", "utf8", '+трейлер');    
    $pars_url = 'http://www.youtube.com/results?search_query='.$youtube_query.$doptext;
$ch = curl_init();

    $proxy = '213.85.92.10:80';
    //$proxyauth = 'user:password';
    curl_setopt($ch, CURLOPT_URL,$pars_url);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    //curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);

  $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
  curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
  curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent

$content = curl_exec( $ch );
curl_close($ch);
    preg_match_all ('/<a\shref="\/watch\?v=(.+?)"\sclass/', $content, $link_treiler_mass);
    foreach($link_treiler_mass[1] as $k=>$z){
        $dop_treiler_mass[] = 'https://www.youtube.com/embed/'.$z;
        $iframe_treiler_mass[] = '<iframe width="640" height="360" src="https://www.youtube.com/embed/'.$z.'?feature=player_embedded" frameborder="0" allowfullscreen></iframe>';
    }    
    echo $dop_treiler_mass[0];
}
?>
 
Автор темы
  • Нравится
Реакции: Xmen
спасибо, можешь подскажешь где нормальные найти?
да и в след версии модуля (если будешь делать) пожалуйста, предусмотри прокси.
Модуль отличный.
 
Автор темы
Подскажите, выводит так
Снимок экрана 2016-03-30 в 14.21.10.jpg
Что не так сделал?
 
Автор темы
@Beats,
Код:
<iframe width="100%" height="480" src="[xfvalue_НАЗВАНИЕДОППОЛЯ]" frameborder="0" allowfullscreen></iframe>
 
Почему то при нажатии на получить трейлер пишет
Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /var/www/****/data/www/****/treiler_pars.php on line 18https://www.youtube.com/embed/k28xJyEbWS8
Но трейлер вроде как находит,как убрать текс ошибки с поля?
 
Почему то при нажатии на получить трейлер пишет
Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /var/www/****/data/www/****/treiler_pars.php on line 18https://www.youtube.com/embed/k28xJyEbWS8
Но трейлер вроде как находит,как убрать текс ошибки с поля?
Сам разобрался просто в файле treiler_pars.php прописал error_reporting (0);
Модуль отличный 🙄
 
Снимок.PNG

у всех фильмов вместо трейлера показывает вот это реклама
подскажите что может быть не так ?
 
Это:
Код:
$content = file_get_contents($pars_url);
Заменить на:

Код:
$ch = curl_init();

    $proxy = '198.169.246.30:80';
    //$proxyauth = 'user:password';
    curl_setopt($ch, CURLOPT_URL,$pars_url);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    //curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);

  $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
  curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
  curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent

$content = curl_exec( $ch );
curl_close($ch);
Если прокси с авторизацией, раскомментируем две строчки:

Код:
$proxyauth = 'user:password';
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);

где искать -
Это:
Код:
$content = file_get_contents($pars_url);

????
 
нашел, ток дошло что в файле а не в коде аддневс
только вот жму теперь искать трейлер - ниче не происходит
на 11 дле точно работает ?
 
Автор темы
@aeneas, зависит только блокирует ли Ютуб IP-адрес.

Можешь еще попробовать содержимое файла treiler_pars.php заменить на этот код:
Код:
<?php
if ( isset($_POST['fname']) and $_POST['fname'] != '' and !substr_count($_POST['fname'], 'http') ) {
    $youtube_query = trim( strip_tags ($_POST['fname']) );
    $youtube_query = preg_replace('/\s/', '+', $youtube_query);
    $doptext = '+трейлер';
   //$doptext = iconv("cp1251", "utf8", $doptext);  
    $pars_url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q='.$youtube_query.$doptext.'&max-results=1&orderby=relevance&format=5&alt=json&key=AIzaSyDyCiiBDnq1JHZZDURvs9CtHQ2kTTP_fxs';
    $content_mass = json_decode(file_get_contents($pars_url));
    $z = $content_mass->{'items'}['0']->{'id'}->{'videoId'};
    $url_treiler = 'https://www.youtube.com/embed/'.$z;   
    echo $url_treiler;
}
?>
 
Последнее редактирование:
у меня походу ютуб блокирует что то
 
@aeneas, зависит только блокирует ли Ютуб IP-адрес.

Можешь еще попробовать содержимое treiler_pars.php заменить на этот код:
Код:
<?php
if ( isset($_POST['fname']) and $_POST['fname'] != '' and !substr_count($_POST['fname'], 'http') ) {
    $youtube_query = trim( strip_tags ($_POST['fname']) );
    $youtube_query = preg_replace('/\s/', '+', $youtube_query);
    $doptext = '+трейлер';
   //$doptext = iconv("cp1251", "utf8", $doptext);   
    $pars_url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q='.$youtube_query.$doptext.'&max-results=1&orderby=relevance&format=5&alt=json&key=AIzaSyDyCiiBDnq1JHZZDURvs9CtHQ2kTTP_fxs';
    $content_mass = json_decode(file_get_contents($pars_url));
    $z = $content_mass->{'items'}['0']->{'id'}->{'videoId'};
    $url_treiler = 'https://www.youtube.com/embed/'.$z;    
    echo $url_treiler;
}
?>
сделал
искал трейлер к Физрук спасает Россию он мне засунул 1-ю серию кина Невский )) причем не трейлер а фильм сунул
 
все работает по коду предложенному @Sistemos, !! неправильно искало потому что у меня к названию фильма ставилось слово автоматом )
спс, на этом коде без прокси пашет )
 

Похожие темы Последние темы Популярные темы

Назад
Сверху