Я попытался проверить, является ли видео в YouTube, а не частным, а не удалено и т.д. Мне нужно это для видео-блога.
Весь код, который я нашел и попробовал, не работал. Я надеюсь, что вы можете мне помочь. Я зарегистрировался для нового API v3.
Мой код выглядит следующим образом, но я всегда получаю "Bad Request 400",
$theURL = "https://www.googleapis.com/youtube/v3/videos?part=status&id=". get_post_meta($post->ID,"wpzoom_post_embed_code", true) ."&key=my_api_key";
// echo $theURL;
//$theURL = "http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=". get_post_meta($post->ID,"wpzoom_post_embed_code", true) ."&format=json";
$headers = get_headers($theURL);
print_r ($headers);
if (substr($headers[0], 9, 3) !== "404") {
echo "online";
} else {
echo "offline";
}
Нашел решение. Но я не понял, как отключить видео в офлайн-режиме. Я ищу в своей строке данных curl для "totalResults": 0, "потому что я получаю сразу один ID для видео.
Вот мой код. - Может быть, у кого-то есть лучшая идея исправить эту небольшую проблему.
$theURL = "https://www.googleapis.com/youtube/v3/videos?part=status&id=" . get_post_meta($post->ID, "wpzoom_post_embed_code", true) . "&key=my_api_key";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$theURL);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
$data = curl_exec($ch);
//var_dump($data);
if (strpos($data,'totalResults": 0,') !== false) {
echo '<span> <img src="link_for_button" alt="online"/> Offline</span><br />'; //echo "<span style='color:red;'>Video Offline</span>";
} else echo '<span><img src="link_for_button" alt="online"/> Online</span><br />'; //echo "<span style='color:green;'>Video Online</span>";