Codeigniter:ビデオをYouTubeにアップロードします
-
25-10-2019 - |
質問
CodeIgniter + Zendライブラリを使用しています。ユーザーが自分のサイトにビデオをアップロードできるようにしたいので、YouTubeチャンネルにアップロードします。これは、YouTube APIへの私の最初の露出です。誰かが私を正しい方向に向けることができますか?
私はこれを見るのは正しいですか: http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#direct_uploading?誰かがPHPを介してアップロードがどのように行われるかを示すコードのスニペットを持っていますか?
解決
サイズと複雑さのために、CIでZendを使用することはお勧めしません。 Codeigniter専用のライブラリを開発しました https://github.com/jimdoescode/codeigniter-youtube-api-library
ライブラリは、YouTubeにアップロードするためのいくつかの異なるオプションを提供します。サーバーに保存されているビデオをYouTubeにアップロードする場所で直接アップロードできます。フォームを使用して、クライアントからYouTubeにビデオをアップロードするオプションもあります。それをチェックして、ご質問がある場合はお知らせください。
他のヒント
これを試してみてください
class Addvideo extends Controller {
function Addvideo()
{
parent::Controller();
$this->load->library("zend");
$this->zend->load("Zend/Gdata/AuthSub");
$this->zend->load("Zend/Gdata/ClientLogin");
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
/************Authentication**************/
$this->zend->load("Zend/Gdata/YouTube");
$this->zend->load("Zend/Gdata/HttpClient");
$this->zend->load("Zend/Gdata/App/MediaFileSource");
$this->zend->load("Zend/Gdata/App/HttpException");
$this->zend->load("Zend/Uri/Http");
$youtube = new Zend_Gdata_YouTube();
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$Gdata_AuthSub=new Zend_Gdata_AuthSub();
$this->load->helper("text");
}
function index(){
$data['result']='videos';
$this->load->view('videos/newform', $data);
}
function indexed(){
$title = 'GruppoDSE Video';
$description = 'Description';
$youtube = new Zend_Gdata_YouTube();
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = $this->config->item('username'),
$password = $this->config->item('password'),
$service = 'youtube',
$client = null,
$source = 'Arts Connector', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$developerKey = $this->config->item('developer_key');
$applicationId = 'Arts Connector';
$clientId = 'My video upload client - v1';
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setVideoTitle($title);
$myVideoEntry->setVideoDescription($description);
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('Autos');
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$data['tokenValue'] = $tokenArray['token'];
$data['postUrl'] = $tokenArray['url'];
// place to redirect user after upload
$data['nextUrl'] = 'http://www.avantajsoftwares.com/gruppo/uploadVideo';
$res="Il file video aggiungere con successo, il risultato atteso verrà visualizzato dopo alcune volte";
$this->session->set_userdata('greenFlag',$res);
// build the form
$this->load->view('videos/form', $data);
}
function AddVideoAjax(){
$title=$_POST['title'];
$description=$_POST['description'];
$youtube = new Zend_Gdata_YouTube();
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = $this->config->item('username'),
$password = $this->config->item('password'),
$service = 'youtube',
$client = null,
$source = 'Arts Connector', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$developerKey = $this->config->item('developer_key');
$applicationId = 'Arts Connector';
$clientId = 'My video upload client - v1';
try {
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setVideoTitle($title);
$myVideoEntry->setVideoDescription($description);
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('Education');
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('Seminar, Events');
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
// place to redirect user after upload
$nextUrl = 'http://www.avantajsoftwares.com/gruppo/Addvideo';
$res="Il file video aggiungere con successo, il risultato atteso verrà visualizzato dopo alcune volte";
$this->session->set_userdata('greenFlag',$res);
// build the form
echo $form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
'" method="post" enctype="multipart/form-data" onsubmit="return valid()">'.
'<div style="float:left;"><input name="file" type="file" id="file"/></div><div class="preloader"></div>'.
'<input name="token" type="hidden" value="'. $tokenValue .'"/>'.
'<div style="clear:both"></div>'.
'<div class="login-footer" id="prog_bar style="cursor:pointer"><input value="Carica video" type="submit" id="validate" class="button" onclick="progress_bar()"/></div>'.
'</form>';
} catch (Zend_Gdata_App_Exception $e) {
echo $return="<div class='login-footer' style='width:130px;'><a style='height:16px; padding-top:7px;' class='button' href=".site_url()."Addvideo>Riprova di nuovo</a></div>";
}
// Assuming that $videoEntry is the object that was returned during the upload
//$state = $myVideoEntry->getVideoState();
}
function getAuthSubRequestUrl()
{
$gdata_AuthSub = new Zend_Gdata_AuthSub();
$next = 'http://www.avantajsoftwares.com/gruppo/videos';
$scope = 'http://gdata.youtube.com';
$secure = false;
$session = true;
return $data=$gdata_AuthSub->getAuthSubTokenUri($next, $scope, $secure, $session);
}
function getAuthSubHttpClient()
{
echo $_SESSION['sessionToken'];
if (!isset($_SESSION['sessionToken']) && !isset($_GET['token']) ){
echo '<a href="' . $this->getAuthSubRequestUrl() . '">Login!</a>';
return;
} else if (!isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
$_SESSION['sessionToken'] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
}
$httpClient = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);
return $httpClient;
}
/*************************** Class end ***********************************/
}
ドキュメントには、Zend gdataについてカバーされている他の方法と同様に、これがあります。 ビデオのアップロード
所属していません StackOverflow