チャネル全体のビデオフィード(すべてのビデオデータ)を取得し、現在作業中のアプリケーションで使用するためにMySQLデータベースに保存しようとしています。私はYouTubeAPIの経験が豊富ではありません。私が使用しているコードは次のとおりです。
public function printVideoFeed($count)
{
$this->startIndex($count);
$data = $this->yt->getVideoFeed($this->query);
foreach($data as $video)
{
echo $count .' - '.$video->getVideoTitle().'<br/>';
$count++;
}
//check if there are more videos
try{
$nextFeed = $data->getNextFeed();
} catch(Zend_Gdata_App_Exception $e)
{
echo $e->getMessage(). '<br/>';
}
if($nextFeed)
{
$this->printVideoFeed($count);
}
}
私が得ているエラーは次のとおりです。
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in C:\Program Files\ZendFrameworkCli\library\Zend\Gdata\App\Base.php on line 431
これは、3000本以上の動画を取得しようとしたときに発生する数少ないエラーの1つです。私の質問は、printVideoFeedメソッドを再度実行し続けながら、これがメモリ使用量を拡張し続けないようにするにはどうすればよいかということです。ループから抜け出す方法があるが、まだビデオが残っている場合は再起動すると、すばらしいでしょう。私は探していましたが、グーグルでこの質問をするのはちょっと難しいことです(探している結果を得るために)。