通过API v3上传到YouTube时,“正在处理视频”

时间:2019-05-07 20:27:25

标签: php youtube-data-api

我正在尝试将mp4格式的视频上传到YouTube,并且正在使用开发者页面上的代码。我做了很多尝试,最终研究了源代码。现在,我终于可以在创作者工作室中观看视频了。问题是,这是一个黑色的缩略图,只表示正在处理,并且将永远保持该状态(一周后未完成)。我的视频长约10分钟,只有13mb左右,我怀疑我从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

0 个答案:

没有答案