2012-02-19 65 views
3

我得到這個代碼從我的網站上傳視頻到我的youtubeaccount:Zend框架,YouTube的API,默認的標題(基於瀏覽器的上傳)

<?php 

session_start(); 
    set_time_limit(0); 
    ini_set('memory_limit', '150M'); 
    ini_set('upload_max_filesize', '30M'); 
    ini_set('default_socket_timeout', '6000'); 
    ini_set('max_input_time', '6000'); 
    ini_set('post_max_size', '100M'); 
    ini_set('max_execution_time', '6000'); 
    $clientLibraryPath = 'library'; 
    $oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath); 

//include Zend Gdata Libs 
require_once("Zend/Gdata/ClientLogin.php"); 
require_once("Zend/Gdata/HttpClient.php"); 
require_once("Zend/Gdata/YouTube.php"); 
require_once("Zend/Gdata/App/MediaFileSource.php"); 
require_once("Zend/Gdata/App/HttpException.php"); 
require_once('Zend/Uri/Http.php'); 

//yt account info 
$yt_user = 'xx'; //youtube username or gmail account 
$yt_pw = 'xx'; //account password 
$yt_source = 'xx'; //name of application (can be anything) 

//yt dev key 
$yt_api_key = 'xx'; //your youtube developer key 

//login in to YT 
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin'; 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient( 
              $username = $yt_user, 
              $password = $yt_pw, 
              $service = 'youtube', 
              $client = null, 
              $source = $yt_source, // a short string identifying your application 
              $loginToken = null, 
              $loginCaptcha = null, 
              $authenticationURL); 



$yt = new Zend_Gdata_YouTube($httpClient, $yt_source, NULL, $yt_api_key); 

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry(); 

$myVideoEntry->setVideoTitle('The Movie'); 
$myVideoEntry->setVideoDescription('My Test Movie'); 
$myVideoEntry->setVideoCategory('Autos'); 
$myVideoEntry->SetVideoTags('cars, funny'); 


$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://sabinequardon.dk'; 

// build the form 
$form = '<form id="youtube_upload" action="'. $postUrl .'?nexturl='. $nextUrl . 
     '" method="post" enctype="multipart/form-data" target="uploader">'. 
     '<input id="title" name="video_title" type="text"/>'. 
     '<input id="file_upload" name="file_upload" type="file"/>'. 
     '<input name="token" type="hidden" value="'. $tokenValue .'"/>'. 
     '<input value="Upload Video File" type="submit" id="submit" />'. 
     '</form> 
'; 

echo $form; 
?> 

我不是在PHP真的很好,這是第一次我正在嘗試使用YouTube API。一直在看我能做的一切,似乎沒有多大幫助。 我知道這是我上傳視頻之前首先獲取元數據的東西?

我需要用戶寫他們自己的標題,所以所有的視頻沒有被命名爲相同的東西。

有沒有辦法做到這一點? 我試過尋找無處不在,似乎無法找到正確的答案。 只要用戶上傳的所有視頻被稱爲相同,就煩人了。

謝謝。

+0

你從哪裏得到的代碼?它是否按原樣工作? – 2012-02-19 17:41:04

+0

我通過環顧網絡將自己混合在一起。有用。視頻被上傳,但所有名稱都相同。 – Arthur 2012-02-19 19:52:56

回答

0

該行設置視頻標題:

$myVideoEntry->setVideoTitle('The Movie'); 

正如你已經在形式的標題輸入,你可以簡單地使用它:

$video_title = $_POST['video_title']; 
$myVideoEntry->setVideoTitle($video_title); 

或者乾脆:

$myVideoEntry->setVideoTitle($_POST['video_title']); 
+0

,如果我們將文件直接發送到YouTube(通過zend客戶端登錄),它會有什麼幫助?如果我們不通過我們的主人發送它,那麼呢? – user1954544 2013-06-17 10:17:05

相關問題