2013-04-22 3 views
3

У меня есть код php, который правильно извлекает, используя api YouTube, заголовок, видеоролик, число просмотров, дату видео, дату последнего комментария и первые 160 символов описание. Я не могу понять, как получить полное описание. Я знаю, что он находится в xml, потому что я его сбросил. Так почему же я получаю только 160 символов?Как получить все описание видео YouTube, php, gdata

Полное описание усечено на 157 символов, и добавляется «...», так что к тому времени, когда я его эхо или var_dump, это 160 символов. Вот мой полный тестовый код (без заголовка, видеоролика и т. Д.).

<?php 
    $feedURL = 'http://gdata.youtube.com/feeds/api/videos?q=phone&v=2&fields=entry[yt:statistics/@viewCount > 10000]&start-index=1&max-results=1'; 
    $sxml = simplexml_load_file($feedURL); 
    foreach ($sxml->entry as $entry) { 
     $media = $entry->children('http://search.yahoo.com/mrss/'); 
     echo $media->group->description; 
    } 
?> 

Это то, что отображается на странице:

СВОБОДНЫЙ TuTiTu в игры: раскраски http://www.tutitu.tv/index.php/games СВОБОДНЫЙ TuTiTu по адресу: http://www.tutitu.tv/index.php/coloring Присоединяйтесь к нам на Facebook: HTTPS ...

Когда я получаю XML это путь:

gdata.youtube.com/feeds/api/videos/JI-5kh_4gO0?v=2 & альт = JSON-в-сценарии & обратного вызова = youtubeFeedCallback & prettyprint = тр у.е

Вся описание выглядит следующим образом:

"media$description": { 
"$t": "FREE TuTiTu's Games: http://www.tutitu.tv/index.php/games\nFREE TuTiTu's Coloring pages at: http://www.tutitu.tv/index.php/coloring\nJoin us on Facebook: https://www.facebook.com/TuTiTuTV\nTuTiTu's T-Shirts: http://www.zazzle.com/TuTiTu?rf=238778092083495163\n\nTuTiTu - The toys come to life\n\nTuTiTu - \"The toys come to life\" is a 3D animated television show targeting 2-3 year olds. Through colorful shapes TuTiTu will stimulate the children's imagination and creativity. On each episode TuTiTu's shapes will transform into a new and exciting toy.", 
"type": "plain" 
}, 

Я уверен, что я что-то основное не хватает, но, когда я искал решение, я не нашел.

Спасибо за любую помощь.

ответ

3

Эти 2 различных типов запросов API возвращает другой размер описания. Я предполагаю, что это способ ограничить общий размер ответа.

1) Выполнение поиска: http://gdata.youtube.com/feeds/api/videos?q=phone&v=2&fields=entry&alt=json&prettyprint=true вернет короткое описание видео.
2) выполнение видео запроса, как в: http://gdata.youtube.com/feeds/api/videos/JI-5kh_4gO0?v=2&alt=json&prettyprint=true вернет длинное описание видео.

BTW: версия api 3 позволит вам запросить список идентификаторов видео в 1 запросе (чтобы получить их длинные описания).

+0

Спасибо, монахини, это то, что мне нужно. Я предполагаю, что разница в длине описания может быть где-то задокументирована, но хорошее горе, и это довольно хлопотно. – Amber

+1

данный ответ не работает в версии 3. используйте это -> 'https://www.googleapis.com/youtube/v3/videos?key= & part = snippet & id = ' – Manibharathi

1

$media->group->{'media$description'} должен сделать трюк

+0

Итак, теперь у меня есть $ str = $ media-> group -> {'media $ description'}; echo "Описание:". $ Str. "
"; Но теперь он ничего не печатает Описание: Не работает, если у меня нет проблем с синтаксисом. – Amber