Не удается получить идентификатор видео после загрузки с помощью Direct-Upload на Youtube

#php #zend-framework #youtube #youtube-api

#php #zend-framework #YouTube #youtube-api

Вопрос:

Я использую метод прямой загрузки для загрузки видео на YouTube. Видео успешно загружается, но я не могу получить идентификатор видео после завершения процесса загрузки.

 try {
  $newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
$v_id = $newEntry->getVideoId();
  mysql_query("UPDATE `mytable` SET youtube_video_id = '$v_id' WHERE ID = '$tid'");
} catch (Zend_Gdata_App_HttpException $httpException) {
  echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
    echo $e->getMessage();
}
  

это $v_id возвращается пустым после загрузки.

кто-нибудь знает, как правильно получить идентификатор видео?

Спасибо

Редактировать:

Я нашел проблему. Все дело было в сервере mysql. он исчезал каждый раз, когда я хотел вставить идентификатор видео YouTube. Я только что выполнил mysql_ping, и это решилось.

Комментарии:

1. Можете ли вы опубликовать пример $uploadUrl?

2. $uploadUrl = ‘ uploads.gdata. youtube.com/feeds/api/users/default/uploads ‘;

3. Вы видели это? code.google.com/apis/youtube/2.0 /…

4. @Peter я проверил это сейчас, но я не знаю, как это использовать на самом деле

Ответ №1:

Вероятно, видео все еще обрабатывается Youtube, и он еще не присвоил видео идентификатор. Сначала нам нужно проверить статус видео, прежде чем запрашивать у него информацию. Попробуйте следующее

 $state = $newEntry->getVideoState();

if ($state) {
  echo 'Upload video ID is ' . $newEntry->getVideoId();
  } else {
    echo "Not able to retrieve the video status information yet. " . 
      "Please try again later.n";
}
  

Кроме того, если это не сработает, пожалуйста, предоставьте больше отладочной информации, такой как вывод var_dump ($ newEntry) после отправки.

Ответ №2:

Я нашел проблему. Все дело было в сервере mysql. он исчезал каждый раз, когда я хотел вставить идентификатор видео YouTube. Я только что выполнил mysql_ping, и это решилось.