https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc
ブラウザから直接このURLにアクセスすると、100%の確率で正しいデータが返されます。動画が追加されている場合はそこにあり、動画が削除されている場合は削除されています。
file_get_contents('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc');を介してこのデータを取得する場合
データがキャッシュされているか、更新されていない/現在のデータのようです...
ページの更新を続けると、新しい動画が表示/非表示になり、削除された動画が約5〜10分間表示/非表示になり、正確になります。
$ .getJSON()または$ .ajax()を使用してデータを取得する場合も同じことが起こります。
データは、ブラウザでURLにアクセスしたときと同じではありませんか?
ユーザー「EXAMPLE」がアップロードした最新の動画を取得しようとしています。
public function ajaxUpdateVideoFeed()
{
header("Content-type: application/json");
$json = file_get_contents('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc');
$data = json_decode($json, TRUE);
$videoId = $data['data']['items'][0]['id'];
echo json_encode($videoId);die();
}