2014-09-23 5 views
0

Использование curl и json decode. Я могу получить список всех видеороликов YouTube. Он работает отлично. Curl возвращает NULL, когда сервер занят. Пожалуйста, предложите мне какое-либо решение этой проблемы.Youtube gdata curl error

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($curl, CURLOPT_TIMEOUT, 60); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_URL, 'http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2&alt=jsonc&max-results=30); 
$output = curl_exec($curl); 
curl_close($curl); 
$json = json_decode($output,true); 

Это код, который я использую для получения видео. Он возвращает NULL, когда сервер занят.

+0

Возможно, кэш вашего последнего результата, и если ваша функция получит нуль, она вернет последнее известное значение. – Lovato

+0

Спасибо, можете ли вы предложить мне лучший способ кэшировать последний результат. – Magnet

+0

Зависит от размера вашего приложения. Вы можете перейти от Pickle (для сохранения словаря) или использовать что-то вроде Memcache/Redis (базы данных с ключом). Оба будут работать, если ваш код работает и выходит, или остается и работает как приложение Flask. – Lovato

ответ

1

Предлагаю вам использовать ключ разработчика в вашем API-вызове. Потому что я думаю, что эта проблема может быть связана с ошибкой квоты API YouTube. Вы можете получить дополнительную информацию от this blog. Вы должны обратить внимание на приведенный текст:

The new quota system ties usage to a specific developer key; as long as your application includes a developer key along with your YouTube API requests, your requests will be less likely to be flagged for quota violations. 
Смежные вопросы