2011年5月20日金曜日

PHPでYouTubeに動画をアップロード

スズキです。

大昔にJava版を紹介しましたが、今回はPHP版です。

といっても、デベロッパーガイドそのままですが、不要な記述をできるだけ省き、
認証も含めたコード全体のものとしたものが下記となります。

# ライブラリのロード
require_once("Zend/Loader.php");
Zend_Loader::loadClass("Zend_Gdata_YouTube");
Zend_Loader::loadClass("Zend_Gdata_ClientLogin");

# ログイン
$authenticationURL= "https://www.google.com/youtube/accounts/ClientLogin";
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
    $username     = "suzuki@suz-lab.com",
    $password     = "xxxxxxxx",
    $service      = "youtube",
    $client       = null,
    $source       = "suz-lab",
    $loginToken   = null,
    $loginCaptcha = null,
    $authenticationURL
);

# YouTubeの準備
$myDeveloperKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$httpClient->setHeaders("X-GData-Key", "key=${myDeveloperKey}");
$yt = new Zend_Gdata_YouTube($httpClient);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

# アップロードファイルの指定
$filesource = $yt->newMediaFileSource("mymovie.mov");
$filesource->setContentType("video/quicktime");
$filesource->setSlug("mymovie.mov");

# アップロード情報の設定
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoCategory('Autos');

# アップロードの実行
$uploadUrl = "http://uploads.gdata.youtube.com/feeds/users/default/uploads";
try {
    $newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, "Zend_Gdata_YouTube_VideoEntry");
} catch (Zend_Gdata_App_Exception $e) {
    echo $e->getMessage();
}

※ 注意点は下記となります。

- YouTube(Google)のPHPライブラリは下記のように"yum"でインストールしています。
# yum -y install php-ZendFramework-Gdata
コチラからダウンロードすることも可能です。

- デベロッパーキーはコチラから取得できます。

- タイトルとカテゴリーは必須です。

久しぶりにAWSに関係ないコード書いた気がする...
--------
http://www.suz-lab.com

1 コメント:

ctoa さんのコメント...

ありがたいエントリです。