Итак, я заметил несколько проблем с вашим сценарием, главная проблема в том, что ваш оператор if войдет в первый цикл, а в случае сбоя никогда не войдет в другой цикл
Я протестировал приведенный ниже скрипт на своем сервере и обнаружил, чтоэто работает, я надеюсь, что вам ясно, если я не оставил комментарии
<?php
function GetData($url,$post){
$ch = curl_init($url . $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$res = GetData("https://www.googleapis.com/youtube/v3/videos?","part=snippet&id=<video_id>&key=<your_key>");
$result = json_decode($res);
//Check for maxres thumb
$maxresThumb = $result->items[0]->snippet->thumbnails->maxres->url;
$thumbnail = '';
if($maxresThumb == '' || $maxresThumb == null){
//if maxresThumb is not existent check for high res
$highThumb = $result->items[0]->snippet->thumbnails->high->url;
if($highThumb == '' || $highThumb == null){
//Check for standard thumb
$standardThumb = $result->items[0]->snippet->thumbnails->standard->url;
if($standardThumb == '' || $standardThumb == null){
//CHeck for next thumb....
}else{
$thumbnail = $standardThumb;
}
}else{
$thumbnail = $highThumb;
}
}else{
$thumbnail = $maxResThumb;
}
?>