получить название видео на YouTube - PullRequest
0 голосов
/ 22 августа 2011

Я использую следующий код для получения заголовка некоторого видео на YouTube, которое ранее работало нормально, но я получаю некоторые ошибки / предупреждения за последние несколько дней,

$entry = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/' . $key);
return ($entry) ? ucwords(strtolower($entry->children('http://search.yahoo.com/mrss/')->group->title)) : false;

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: http://gdata.youtube.com/feeds/api/videos/jIP4xI9C8us:1: ошибка синтаксического анализатора: документ пуст в /home/public_html/panel/index.php в строке 214

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: в /home/public_html/panel/index.php в строке 214

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ^ в / home / public_html /panel / index.php в строке 214

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: http://gdata.youtube.com/feeds/api/videos/jIP4xI9C8us:1: ошибка синтаксического анализатора: ожидается начальный тег, '<' не найден в / home/public_html/panel/index.php в строке 214 </p>

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: в /home/public_html/panel/index.php в строке 214

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ^ in / home / public_html / panel / index.php в строке 214

Ответы [ 3 ]

2 голосов
/ 17 июля 2013

вот мой путь.

использовать API данных Youtube v3.0

$searchResponse = $youtube->videos->listVideos('id','snippet,statistics',
        array('id' => 'CSV_VIDEO_IDS_HERE',
              'fields' => 'items(id,snippet(title,publishedAt,channelId,channelTitle,thumbnails(default),description),statistics)'
    ));

foreach($searchResponse["items"] as $item)
{
    echo "video titles: ".$item['snippet']['title'];
}

библиотека google-api-php-client

0 голосов
/ 15 июля 2013

Мой путь:

функция

function getVideoInfo($videoID){
    if($videoID == ""){
        return false;   
    }
    /* Get the xml file from YouTube Data API */
    $books = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/'.$videoID);
    $user = $books->author[0]->name;
    $desc = $books->content[0]; 
    $title = $books->title[0];
    $link = 'http://www.youtube.com/watch?v='.$videoID;

    return array($user, $title, $desc, $link); 
}

main

$info = getVideoInfo($YourVideoID);
    echo $info[0];  //username
    echo '<br />';
    echo $info[1];  //title
    echo '<br />';
    echo $info[2];  //description
    echo '<br />';
    echo $info[3];  //link
0 голосов
/ 22 августа 2011

Можете ли вы попробовать заменить ваш звонок на simplexml_load_file следующей функцией и посмотреть, есть ли у нее такая же проблема?Похоже, ваш хост мог изменить некоторые настройки безопасности PHP.

function load_youtube_xml($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_REFERER, 'http://www.YourWebSiteName.com/');
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}
$xml = load_youtube_xml(YOUTUBE_URL);

PS Когда я удаляю :1 из вашего URL, он загружает файл при входе в браузер.

...