За последние пару недель мои коллеги и я работали над попытками получить подписки на наших клиентов видео YouTube через API v3. Примерно через неделю мы наконец получили возможность загружать субтитры, но YouTube предоставил нам это сообщение в интерфейсе пользователя . Трек-контент не обрабатывается и не отображает заголовок, который мы загружаем, Однако мы можем загрузить исходный формат, который был загружен; поэтому мы знаем, что файл был загружен успешно.
Нам также удалось получить флаг синхронизации для работы, который говорит YouTube, что он просматривает транскрипцию и устанавливает тайминги для видео, но на самом деле это не работает. Он возвращается, сообщая нам, что он синхронизируется, но когда мы переходим к пользовательскому интерфейсу для видео, он просто показывает название трека и дает нам сообщение "Содержание трека не обрабатывается".. Мы потратили все часы, которые у нас были, и теперь мы работаем над своим временем, чтобы решить эту проблему, но все равно не повезло.
Кто-нибудь сталкивался с этой проблемой раньше? Если да, то что вы могли сделать, чтобы заставить это работать?
Я опубликую фрагмент кода ниже, который показывает часть загрузки нашего script.
# Insert a video caption.
# Create a caption snippet with video id, language, name and draft status.
$captionSnippet = new Google_Service_YouTube_CaptionSnippet();
$captionSnippet->setVideoId($videoId);
$captionSnippet->setLanguage($captionLanguage);
$captionSnippet->setName($captionName);
$captionSnippet->setIsDraft( true );
# Create a caption with snippet.
$caption = new Google_Service_YouTube_Caption();
$caption->setSnippet($captionSnippet);
// Setting the defer flag to true tells the client to return a request which can be called
$client->setDefer(false);
// Get the file content of the uploaded file
$file = file_get_contents( $captionFile['tmp_name'] );
// Create a request for the API captions.insert method to create and upload a caption.
$insertRequest = $youtube->captions->insert("snippet", $caption, array(
'sync' => true,
'data' => $file,
'mimeType' => 'application/octet-stream',
'uploadType' => 'multipart' )
);
echo '<pre>'; print_r( $insertRequest ); echo '</pre>';
// // Read the caption file and upload it chunk by chunk.
$status = $insertRequest;
fclose($handle);
// If you want to make other calls after the file upload, set setDefer back to false
$client->setDefer(false);
Спасибо,
Тайлер Штайнхаус