Feeds:
文章
迴響

Archive for 2012 年 09 月

最近工作上要瞭解 Youtube SDK 如何上傳影片

找到一個 Python 範例 youtbue-upload

我的環境

使用 python setup.py install 可分別安裝 python-gdata 和 youtube-upload

youtube_upload 安裝路徑 C:\Python27\Lib\site-packages\youtube_upload

測試

python youtube_upload.py –email=你的gmail帳號 –password=你的密碼 –title="test" –description="test desc" –category=Music  d:\ring.avi

登入

youtube = Youtube(DEVELOPER_KEY)
youtube.login(email, password)

上述程式實際上是 YouTubeService class 的封裝, 實際上就是

service = gdata.youtube.service.YouTubeService()
service.developer_key = DEVELOPER_KEY
service.client_id = ‘tokland-youtube_upload’
service.source = ‘tokland-youtube_upload’
service.ssl = False
service.email = email
service.password = password
service.ProgrammaticLogin(None, None)

取得 token ~ 一切的關鍵

media_group = gdata.media.Group(
title=gdata.media.Title(text=’test‘),
description=gdata.media.Description(description_type=’plain’, text=‘test desc‘),
keywords=gdata.media.Keywords(text=None),
category=gdata.media.Category(
text=’Music‘,
label=’Music‘,
scheme=’http://gdata.youtube.com/schemas/2007/categories.cat’),
private=None,
player=None)

video_entry = gdata.youtube.YouTubeVideoEntry(media=media_group, geo=None, extension_elements=None)

post_url, token = service.GetFormUploadToken(video_entry)

上傳檔案(gdata)

實際  YouTubeService  運作就是

entry = service.InsertVideoEntry(video_entry, ‘d:\\ring.avi’)
url = entry.GetHtmlLink().href.replace(“&feature=youtube_gdata", “")
print url

上傳檔案(curl)

c = pycurl.Curl()
c.setopt(c.URL, post_url + “?nexturl=http://code.google.com/p/youtube-upload")
c.setopt(c.HTTPPOST, [(‘token’, token),(‘file’,(pycurl.FORM_FILE, ‘d:\\ring.mp3’))])
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
body_container = StringIO.StringIO()
headers_container = StringIO.StringIO()
c.setopt(c.WRITEFUNCTION, body_container.write)
c.setopt(c.HEADERFUNCTION, headers_container.write)
c.perform()
http_code = c.getinfo(pycurl.HTTP_CODE)
c.close()
headers = dict([s.strip() for s in line.split(“:", 1)] for line in
headers_container.getvalue().splitlines() if “:" in line)
body = body_container.getvalue()
params = dict(s.split(“=", 1) for s in headers[“Location"].split(“?", 1)[1].split(“&"))
video_id = params[“id"]
url = “http://www.youtube.com/watch?v=%s" % video_id

廣告

Read Full Post »

這個問題我好像不是第一次遇到,可是我似乎都沒有記錄下來,也許是太簡單就沒記,所以後來又忘了

今天又遇到無法安裝最新版的 ADT 20.0.3, 網路上似乎有人遇到類似問題

還好有人已經抓了 ADT 20.0.3.zip,所以只要先下載一份到電腦

然後在 Eclipse 的 Help | Install New Software | Add | Archive | 選擇 ADT 20.0.3.zip 就可以安裝了

是不是很簡單~

 

Read Full Post »

[Go] 布卡漫畫(.buka) 萃取器

Android 上的布卡漫畫是我目前最喜歡用來看漫畫的工具, 尤其是有許多的漫畫可以下載

唯一的缺憾是無法備份, 因為它採用 buka 專屬檔案格式

於是最初用 python 寫了第一版萃取器 buka.py 運行良好只是效能差了些~

最近玩了 Go 缺乏練習主題, 就將其改寫 buka.exe (32位元/64位元) (毫無負擔, 單一執行檔, 不過檔案大了些)

話不多說, 執行效果

至於程式怎麼寫的, 初學 Go 程式還是寫的醜~
簡單說就是挖出 jpeg 格式的內容存成檔案… 有興趣者就到 Google Code 去找吧

Read Full Post »