ニコニコ動画 Python APIプロジェクト

というわけで、SourceForge.JPに申請を行ってきた。
ニコニコ動画向けの処理をAPIとして共有しようって試み。
認証辺りは大体書き終わったので、XMLのパースとか実装してくれる人がいると嬉しい。

リファレンス

クラス nicoapi()

 はじまり。

login_s(myac,pw[, ua])

 "https://secure.nicovideo.jp/secure/login"へのログイン試行。myac=MyAccountID,pw=MyAccountPassword,ua=User-Agent(デフォ値="Mozilla/4.0")。戻り値はログイン後のcookieを噛んでるurllib2.build_opener。

upmov(opener,filename,scr)

 動画のアップロード。openerにはlogin_s()の戻り値。filenameにアップロードするファイルのローカルパス。scrはアスペクト比 (0=4:3,1=16:9)。アップロードするだけで動画の公開は行わない。今後改良予定。

getThumbnail(id)

 動画のサムネイル取得。idにはsmで始まる動画IDまたはsmを除去した動画ID。戻り値はサムネイル画像のURL。複数の動画サムネイルを取得したい場合はListで(戻り値もList)。ex)nicoapi.getThumbnail([sm111111,sm212121,sm342422])

login_n(myac,pw[, ua])

 "https://secure.nicovideo.jp/secure/login?site=niconico"へのログイン試行。getFlvとか呼ぶ場合にはこっちでログイン。myac=MyAccountID,pw=MyAccountPassword,ua=User-Agent(デフォ値="Mozilla/4.0")。戻り値はログイン後のcookieを噛んでるurllib2.build_opener。

getFlv(opener,id,filepath)

 動画(.flv)をダウンロード、保存。openerにはlogin_n()の戻り値。idはsmで始まる動画ID。filepathは.flvファイルの保存先(環境によっては存在しないファイルを作成できないかも)。

使い方

import nicoapi

nc = nicoapi()

# 動画ダウンロード
opener = nc.login_n("[email protected]","******")
nc.getFlv(opener, "sm903884", "/home/user/school.flv")

# こう書いてもいいし
nc.getFlv(nc.login_n("[email protected]","******"), "sm903884", "/home/user/school.flv")

# サムネイルURL取得
list_url = nc.getThumbnail("sm903884")
print list_url # http://tn-skr.smilevideo.jp/smile?i=903884

こんな感じで。
一応ここまでのソース公開。
http://codepad.org/gf9M5Lw1
http://codepad.org/68p9nNIR

プロジェクトが許可されなくても気が済むまで書くつもり。

追記

許可出ました。
https://sourceforge.jp/projects/nicoapi/

活動状況について

カテゴリを追加しました。こちらをご覧ください。
http://d.hatena.ne.jp/techlabo/searchdiary?word=%2a%5bnicoapi%5d