Diese Frage ist kein Duplikat. Mein Problem ist nicht das Anzeigen falscher Daten, wie es bei dem markierten Artikel der Fall ist, sondern als ein aufmerksamer Benutzer: "Das konkrete Problem in Ihrer Frage ist, dass Sie eine URL verwenden, die nur das eigentliche Video abruft, nicht die Seite mit der Video."Videotitel kann nicht vom YouTube-Videoobjekt abgerufen werden
Ich müsste den Titel eines YouTube-Videos für einen Magento-Webshop bekommen. Mein Code ist nach dem jetzt:
$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";
}
Die echo $url;
gibt die richtige Video-URL.
Aber danach, wenn ich versuche, die $ videoTitle var_dump, gibt es so etwas wie 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�\�
, ich meine eine Reihe von ihnen. Aber es gibt nicht falsch zurück.
Für die $ titleOfVideo gibt array(0) { }
zurück. Sonst, wenn ich nicht versuche, irgendetwas zu echo oder var_dump, gibt es nichts für mich zurück. Was fehlt mir hier?
Nach gerichtet ist und einige der Forschung zu machen, sieht mein Code wie folgt vor:
$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;
}
Die Video-ID korrekt ist. Aber meine $json
Rückkehr false
. Was vermisse ich noch?
Mögliches Duplikat von [YouTube-Videobeschreibung abrufen und anzeigen, Titel anhand seiner ID mithilfe der YouTube-API] (http://stackoverflow.com/questions/34022332/retrieve-and-display-youtube-video-description-title-by -its-id-using-youtube-ap) – NineBerry
Verwenden Sie die offizielle API, anstatt zu versuchen, Metadaten von der Live-Site zu lesen. Das konkrete Problem in Ihrer Frage ist, dass Sie eine URL verwenden, die nur das tatsächliche Video abruft, nicht die Seite, die das Video enthält. – NineBerry
@NineBerry, nachdem ich ein wenig nach dem Weg der YouTube API gearbeitet habe, kam ich zu dem Schluss, dass, wenn der '$ videocode' das einzige Detail ist, das ich in Bezug auf das Video habe, reicht es nicht aus, die gewünschte Aktion auszuführen. Habe ich recht? – sklrboy