私が収集したすべてのものから、これは今日の既存のライブラリで達成するのが比較的難しいようです. サーバーから YouTube にビデオを直接アップロードする最初の試みは、Zend Framework 1 を使用したものでした。ZF1 はうまく機能しましたが、ZF2 に更新して ZendGData パッケージをインストールすると、すべてがうまくいきませんでした。
どうやら、ZendGData はもはや維持されておらず、Zend の HTTP パッケージに存在しないメソッドへの呼び出しがあるため、根本的に壊れています。(未解決の GitHub の問題)。
だから今、私は代替案を探しています。YouTube Data API v3 の標準と思われるgoogle-api-php-clientを見つけましたが、ドキュメントは非常に限られており、サーバーからではなくブラウザ経由でアップロードする方法の例しか見つかりませんでした。
これが私のZF2コードスニペットです:
$entry = new ZendGData\YouTube\VideoEntry();
$src = $this->youtube->newMediaFileSource($loc);
$src->setContentType('video/quicktime');
$src->setSlug($loc);
$entry->setMediaSource($src);
$entry->setVideoTitle($title);
$entry->setVideoDescription($desc);
$entry->setVideoCategory('Games');
$entry->setVideoPrivate();
try {
$entry = $this->youtube->insertEntry($entry, self::$UPLOAD_URL, 'ZendGData\YouTube\VideoEntry');
} catch (Exception $e) {
$m = $e->getMessage();
return array("err" => "Error: $m");
}
Zend の Http Client 実装で呼び出されると、insertEntry
前述の問題が発生するまで、すべてが計画どおりに進みます。setRawData
したがって、本質的に:
- 動画を YouTube に直接アップロードする次世代の方法は何ですか?
- 簡単な方法がない場合、ZF2 コードの回避策はありますか?