我正在尝试将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