«Видео обрабатывается» при загрузке на YouTube через API v3 - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь загрузить видео в формате mp4 на YouTube и использую код со страницы разработчика. Я очень старался и в конце концов заглянул в исходный код. Теперь я, наконец, нахожусь в точке, где я вижу видео в моей студии-создателе. Проблема в том, что это черная миниатюра, она просто говорит об обработке и навсегда останется в этом состоянии (не завершила неделю спустя). Мои видео длиной около 10 минут, всего 13 МБ или около того, и я подозреваю, что код, который я получил со страницы Google, устарел и не обновлялся, что меня очень расстраивает.

Я пробовал разные фрагменты кода и редактировал параметры. Я получил свой код от: https://developers.google.com/youtube/v3/docs/videos/insert?apix=true

Это мой код на данный момент:

$client = new Google_Client();
$client->setApplicationName('API code samples');
$client->setScopes([
    'https://www.googleapis.com/auth/youtube.upload'
]);

$client->setAuthConfig('assets/client_id.json');
$client->setAccessType('offline');

// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open this link in your browser:\n%s\n", $authUrl);
print('Enter verification code: ');
$authCode = trim(fgets(STDIN));

// Exchange authorization code for an access token.
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
$client->setAccessToken($accessToken);

// Define service object for making API requests.
$service = new Google_Service_YouTube($client);

// Define the $video object, which will be uploaded as the request body.
$video = new Google_Service_YouTube_Video();

// Add 'localizations' object to the $video object.
$localizations = new Google_Service_YouTube_VideoLocalization();
$video->setLocalizations($localizations);

$queryParams = [
    'autoLevels' => true,
    'notifySubscribers' => true,
    'stabilize' => false,
    'data' => file_get_contents("./content/$id/_$thread_name.mp4"),
    'mimeType' => 'video/mp4',
    'uploadType' => 'multipart'
];

$response = $service->videos->insert(
    'snippet',
    $video,
    $queryParams
);

echo "https://youtu.be/".$response->id;

Я ожидаю, что мой код запустится, загрузите видео и потом дайте мне ссылку. В данный момент я не получаю никаких ошибок и получаю ссылку. Ссылка просто не показывает рабочее видео.

Пример видео, которое я загрузил (все они выглядят одинаково): https://youtu.be/iOB_i-ZD5io

...