PHP 페이지를 만들고 CURL을 사용하여 "브라우저 기반 업로드"를 할 수 있습니다. 즉, 업로드를 제어 할 수 있으며 진행률 표시 줄을 만들 수 있습니다.
업로드 방법은 다음과 같습니다. 이 코드의 맨 아래 부분이 흥미로운 부분입니다. CURL을 사용하여 "브라우저 기반 업로드"를 만든 다음 결과를 반환합니다.
// upload.php
require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
// Define the authentication that will be used
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
// Authenticate
$authenticationURL= 'https://www.google.com/accounts/ClientLogin';
$httpClient =
Zend_Gdata_ClientLogin::getHttpClient(
$username = "USERNAME",
$password = "PASSWORD",
$service = 'youtube',
$client = null,
$source = 'HTML SOURCE CODE SNIPPET',
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$applicationId = 'YOUR APPLICATION ID';
$clientId = 'Upload videos to youtube using the youtube API';
$developerKey = 'YOUR DEVELOPER KEY';
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setVideoTitle($videoTitle);
$myVideoEntry->setVideoDescription($VideoDescription);
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory($VideoCategory);
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags($VideoTags);
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $postUrl."?nexturl=http://YOUR_WEBPAGE.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="file">
$post = array("file"=>"@".$VideoFile['tmp_name'], "token"=>$tokenValue);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
echo $info;
당신은 읽을 수 있습니다 여기 https://developers.google.com/youtube/2.0/developers_guide_php#Browser_based_Upload
당신이 국지적 브라우저 업로드 방법은이 문제를 피하기 위해해서 존재 (첫번째 YouTube에서 서버와 2 시간에) 두 번 동영상을 업로드해야하기 때문에 짜증이 더. – themihai