Этот вопрос не является дубликатом. Моя проблема не отображает неправильную часть данных, как в отмеченной статье, но, как внимательный пользователь, отражается: «Конкретная проблема в вашем вопросе заключается в том, что вы используете URL-адрес, который извлекает только фактическое видео, а не страницу, содержащую видео."Невозможно получить видеозапись с видеообъекта YouTube
Мне нужно будет получить название видео на YouTube для интернет-магазина Magento. Мой код следующий прямо сейчас:
$videocode = $_helper->productAttribute($_product, $_data['value'], $_data['code']);
$url = "http://www.youtube.com/v/".$videocode."?hl=en_US&version=3";
echo $url;
$videoTitle = file_get_contents($url);
try {
if ($videoTitle) {
preg_match("/<title>(.+?)<\/title>/is", $videoTitle, $titleOfVideo);
echo $titleOfVideo[1];
} else {
return false;
}
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
echo $url;
возвращает правильный URL видео.
Но после этого, если я пытаюсь var_dump $ videoTitle, он возвращает что-то вроде CWS[%xڍZ[{�Fzƀ�@�:Ҷ��v"�uh �H�(E�9����ή� $1=�馧m�=nϽko�z������$��M��_l�oR�lﳶ�����~�� �C)��4��4ʤ[SI�nM�"�.��b�yB��ᵵ��5�u�8�\�
, я имею в виду их группу. Но он не возвращает false.
Для $ titleOfVideo он возвращает array(0) { }
. В противном случае, если я не пытаюсь эхо или var_dump ничего, это ничего не возвращает мне. Что мне здесь не хватает?
После направленного и сделать некоторые исследования, мой код выглядит следующим образом:
$videocode = $_helper->productAttribute($_product, $_data['value'], $_data['code']);
$videocode = explode('&feature=youtu.be', $videocode);
$url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=".$videocode[0]."&key=".$apikey;
echo $url;
$json = file_get_contents($url);
var_dump($json); //bool(false)
$json_data = json_decode($json, true);
if ($json_data) {
print_r($json_data);
} else {
return false;
}
видео ID правильно. Но мой $json
false
. Что мне еще не хватает?
Возможный дубликат [Извлечение и отображение описания видео YouTube, название по его идентификатору с помощью API YouTube) (http://stackoverflow.com/questions/34022332/retrieve-and-display-youtube-video-description-title-by -its-id-using-youtube-ap) – NineBerry
Используйте официальный API вместо того, чтобы пытаться читать метаданные с сайта. Конкретная проблема в вашем вопросе заключается в том, что вы используете URL-адрес, который извлекает только фактическое видео, а не страницу, содержащую видео. – NineBerry
@NineBerry, немного посмотрев после того, как работает API YouTube, я пришел к выводу, что если «видеокод» $ - единственная деталь, которую я имею в отношении видео, то этого недостаточно для выполнения желаемого действия. Я прав? – sklrboy