Youtube Data API :使用GetVideoEntry來顯示上傳的影片

範例說明:

  1. 這個範例與Youtube Data API : 用ClientLogin認證極為相似
  2. 此範例內部核心原始碼可以用在其他需要video_entry作為參數的method
  3. 需要取得哪些部份的video_id可以藉由改變uri參數作更動
import re
import gdata.youtube.service
 
#取得video_id
def get_yt_video_id(url):
  v_c = re.compile(r'^[^v]+v=(.{11}).*')
  res = v_c.search(url).group(1)
  return res
 
#顯示取得的資料
def PrintEntryDetails(entry):
  print '\n---------------------------------------\n'
  print 'Video title: \n\t%s' % entry.media.title.text#名稱
  print 'Video published on: \n\t%s ' % entry.published.text#上傳時間
  print 'Video description: \n\t%s' % entry.media.description.text#描述
  print 'Video category: \n\t%s' % entry.media.category[0].text#分類
  print 'Video tags: \n\t%s' % entry.media.keywords.text#標籤
  print 'Video watch page: \n\t%s' % entry.media.player.url
  print 'Video flash player URL: \n\t%s' % entry.GetSwfUrl()
  print 'Video duration: \n\t%s' % entry.media.duration.seconds#片長
  print '\n---------------------------------------\n'
 
#輸入使用者email
email = raw_input('Email:')
#輸入使用者密碼
pw = raw_input('Password:')
#檔案名稱
#取得使用者所有上傳的檔案
uri = 'http://gdata.youtube.com/feeds/api/users/%s/uploads' % 'default'
#宣告
youtube_service = gdata.youtube.service.YouTubeService()
#使用ClientLogin登入
youtube_service.ClientLogin(email,pw)
 
#向Google傳送資料
feed = youtube_service.GetYouTubeVideoFeed(uri)
 
#取得video_id
list = []
for entry in feed.entry:
  list.append(get_yt_video_id(entry.media.player.url))
#印出取得的結果
for every_video in list:
  video_entry = yt_service.GetYouTubeVideoEntry(video_id=every_video)
  PrintEntryDetails(video_entry)

輸出結果與Youtube Data API : 用ClientLogin認證相同