Zend Framework, YouTube API, заголовок по умолчанию (загрузка через браузер) - PullRequest
3 голосов
/ 19 февраля 2012

Я получил этот код для загрузки видео на мою учетную запись YouTube с моего сайта:

<?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, и я впервые пытаюсь использовать API YouTube. Читал все, что мог, но, похоже, не очень помог. Я знаю, что я получаю метаданные перед загрузкой видео?

Мне нужно, чтобы пользователь написал свой собственный заголовок, чтобы все видео не назывались одинаково.

Есть ли способ сделать это? Я пытался искать везде, но не могу найти правильный ответ. Просто раздражает, если все видео, которые загружают пользователи, называются одинаковыми.

Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2012

Эта строка устанавливает заголовок видео:

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

Поскольку у вас уже есть ввод для заголовка в форме, вы можете просто использовать его:

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

Или просто:

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