研究 youtube 提供的 api, 在上傳影片後的變化.
1.首先, 上傳影片:
2. 透過下面的程式碼, 來取得影片的狀態:
$yt = new Zend_Gdata_YouTube();
$videoEntry = $yt->getVideoEntry($id);
$state = $videoEntry->getVideoState();
if ($state) {
echo 'Upload status for video ID ' . $videoEntry->getVideoId() . ' is ' .
$state->getName() . ' - ' . $state->getText() . "\n";
} else {
echo "Not able to retrieve the video status information yet. " .
"Please try again later.\n";
}
3. 在上傳影片之後, youtube 處理完成之前取得的狀態:
說明: $state = true,
During 取得的值是0, 而且縮圖的時間也都停在0.
4. 在上傳影片之後,
說明: $state = false,
During 取得的值是85, 而且縮圖的時間也不是都停在0.
youtube php API 文件:
http://code.google.com/intl/zh-TW/apis/youtube/2.0/developers_guide_php.html#Checking_Upload_Status
安裝好Zend Framework, 也會有更詳細的 API 文件在資料夾:
/www/ZendGdata/documentation/api/core/db_Gdata_YouTube.html
附註: 經測試之後, app 授權方式必須使用 "ClientLogin for installed applications" 不然會抓不到影片被拒絕的原因, 上傳的檔案被拒絕(rejected), 可能是有危反版權宣告,或是影片重覆上傳.
2012年1月9日 星期一
[Asp].自動上傳影片到 youtube的範例.
step 1: 利用 google帳號及取得developerKey
URL: http://code.google.com/apis/youtube/dashboard/
step 2: 把取得的 developerKey 寫入我們的設定檔.
說明: 由於這個年代沒有人在寫 Asp 了, 反正程式的邏輯是一樣的, 你可以下載你看的懂的 sample code 下來看:
https://developers.google.com/youtube/code_samples
step 3: 透過 max牌 youtube object, 測試看看把本機的檔案傳上 youtube.
* 參數說明: videoPath(本機路徑) + videoTitle(標題) + descript(說明)
step 4: 測試可以用之後, 把 youtube object 放到開發中的專案裡, 上傳前 youtube 影片數=0.
step 5: 上傳影片, 上傳後 youtube 影片數=1.
URL: http://code.google.com/apis/youtube/dashboard/
step 2: 把取得的 developerKey 寫入我們的設定檔.
說明: 由於這個年代沒有人在寫 Asp 了, 反正程式的邏輯是一樣的, 你可以下載你看的懂的 sample code 下來看:
https://developers.google.com/youtube/code_samples
step 3: 透過 max牌 youtube object, 測試看看把本機的檔案傳上 youtube.
* 參數說明: videoPath(本機路徑) + videoTitle(標題) + descript(說明)
step 4: 測試可以用之後, 把 youtube object 放到開發中的專案裡, 上傳前 youtube 影片數=0.
step 5: 上傳影片, 上傳後 youtube 影片數=1.
- * 附註1: 由於 youtube 處理縮圖需要時間, 30秒~90秒不一定, 而且還要視上傳的影片內容的編碼方式和大小而定.
- * 附註2: 關於處理縮圖的時間點, 比較好的解法是, 透過程式去檢查 Video API, 取得 video status, 等youtube 處理完成後, 再去取縮圖, 這個我還沒去實作, (偷懶的解法) 取縮圖的部份修改為: 等 user 完成整個文檔的編輯, 並按下 submit 後, 再從 youtube 來取縮圖.
訂閱:
文章 (Atom)