Youtube Data API :使用GetVideoEntry來顯示上傳的影片
範例說明:
- 這個範例與Youtube Data API : 用ClientLogin認證極為相似
- 此範例內部核心原始碼可以用在其他需要video_entry作為參數的method
- 需要取得哪些部份的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)