2009年07月26日

動画のファイルサイズをチェックする。

get_video_infoで動画情報が取得できたので
ダウンロード前にファイルサイズのチェックをしてみた。
CurlでやっているけれどLWPでもできんでしょ。
それでどうした!......
posted by Xo_ox at 20:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月25日

get_video_infoによるflvurl取得

youtubeの動画データは
「watch」が一般的なアクセスで「/v/」が埋め込み用swfで
「get_video」がflv取得のブラウザ用のインターフェースであるが
他に「get_video_info」というAPIがある事が分かった。
但しこのAPIは定期的に仕様が変わっているらしい。(今年の4月4日あたり)
Flashからのアクセスを考えるとrefererは読まないと思うが
useagentやIPで拒絶されることがあるらしいがローカル使用ならば問題なさそうだ。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月24日

fmt_mapに気づく

今までfmt=18なH264のmp4を使っていたが
これはipod向きということでほぼ全てのビデオにあるようだけれど
HDのfmt=22をどうやって取るかと調べたら
watchのhtml内にもfmt_mapパラメータがあり
先頭が一番高解像度のようだ。
案外とfmt=35のH264なflvが軽くて高画質に感じる。

それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | 基本データ | このブログの読者になる | 更新情報をチェックする

2009年07月23日

libcurlでのリダイレクト先URLの取得

lwpに対するlibcurlのメリットはCのプロトタイプとしてperlが使えることにある。
前回のリダイレクト先のurlの取得をcurlでやるわけだが
そもそもcurlの関数はsetoptとgetinfoぐらいしかないので引数が何かということになる。

今回の肝はずばり


$curl->getinfo( CURLINFO_EFFECTIVE_URL);

でURLが取得できる。
それでどうした!......
posted by Xo_ox at 23:20| Comment(1) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月22日

lwpでのredirectURLの取得

大抵の場合redirect処理はhttpアクセス用のクラスなりが自動的に処理してくれればいいのだが
redirect後のURLからパラメータがとれればと思いperlでの使い方を覚えることにした。
まずはlwp版
が、結果としてyoutube用ではあまり出番がないようだ。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月20日

gdataよりhtmlの方が良い?

LibXMLでのhtmlパースが結構使いやすく
aタグの切り取りができるようになるとページをたぐっていけるので
問題点はJavaScriptで構成された部分だけになる。
しかし調べるとクエリー結果に法則性があるのでフォーム部分の実装ができなくても
どうせ決め打ちならばhtml実装でも良いように思えた。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | 基本データ | このブログの読者になる | 更新情報をチェックする

2009年07月15日

LibXMLでのignore whitespace

よくわからないので正規表現で改行とタブを削除してみたのだが
調べたところLibXMLにも改行削除の機能はあるようだったが
ちゃんと動作するのはXML::LibXML::Readerだけだった。
Cではどうなのだろう。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月14日

これでいいのか改行抜いて正規表現でコメント取得

youtubeのレスポンスからコメントを取る方法だが
最初正規表現を使ったらタグではさんでいる文字列が取れなかったのだけれど
ホワイトスペース つまりタブと改行を取り去ることで
どうにかできたような、できてないような。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月13日

youtubeのコメント取得への細い道

動画プレーヤー作るのに
コメント投稿はまだしもコメント閲覧くらいはできないとまずいだろう。
他に手を出す前にまずはyoutubeを把握するのが先決なわけで
APIの与えられているgdataによるコメント取得をやるならばそんなに難しくはないと思うが
ブラウザで表示できるんだからできないこともなかろうと
developerID無しでできないものか調べてみた。
要するにブラウザーで表示するのと同じ事だ。
ajax用のurlを使えばできそうなんだけれどパースがまだちゃんとできていない。

それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月12日

curlでメモリへの取り込み(perl編)

curlが原則STDOUTあるいはファイル指定とみえたので
微妙にがっくりしていたのだが
CURLOPT_WRITEFUNCTIONでコールバックを指定することで変数への読み込みができることが分かった。
「/usr/local/share/example/curl/」の「getinmemory」がサンプルになりそうだ。
perlに関してはopen時エスケープをつけることで対象を変数にできることが分かった。
cpanのWWW:Curlの説明は
http://search.cpan.org/~szbalint/WWW-Curl-4.09/lib/WWW/Curl.pm
にあった。
これでlwpの代替として安心してCurlを使える。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月11日

結構しょっぱいcURL

まだcookyやrefferer、ログイン等の必要な項目に至っていないのだが
ぼちぼちcURLを使おうと思い、perlにもWWW::Curlを入れたのだが
cgiとダウンロードを前提に作られているのか、標準出力かファイル操作になっていて
変数に取り込んで加工するというような使い方はできないようにみえた。

※openで変数指定ができた。
取り敢えずテストのためのテストだが
WWW::Curl::Easyで取り込んでWWW::LibXMLでパースしてみた。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月10日

やっとattributeの取り方を理解する。

ほとんどの関数が名前か番号で指定なので
未知のフォーマットのXMLの場合はattributeの名前と位置が知りたい。
XML::LibXML::Readerではattributeの名前を取得できないみたいなのだが
LibXMLのDomの命令での取得方法のこつをようやくつかんだ。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月09日

LibXMLでveohのflvのurlをパース

ブラウザのような一般的なクライアントでアクセスする場合
veohはyoutubeと違ってFLVのURLの書かれているファイルがちゃんとあるので
そこからflvを正規表現を使って取得する方法を今まで使っていたのだけれど
せっかくlibXMLを使ってhtmlまでパースするようになったのだから
ちゃんとXMLとしてデータ取得してみようと思った。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月08日

XML::LibXMLでhtmlを取り込む

XML::LibXMLはXMLでないhtmlもパースできるようだ。
パースエラーがでるのが常だが「recover_silently(1)」を入れれば強引に取りこめるようだ。
utf-8の問題とか配列アクセスとかつくづくperlを分かっていないのだが
htmlパーサーへの入り口にたどり着いた感じがした。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月07日

youtubeAPIの穴、ハルヒ最新公式動画にはたどり着けない。

ブラウザでもyoutubeAPIでリンク付きのページを表示できるのだが
角川アニメチャンネルで毎週更新される涼宮ハルヒの憂鬱の新作にはたどり着けないことが分かった。
トップページのmost_discussedとかmost_viewed とかでもでてこなかった。
何か策があるかもしれないけれどわからないがブラウザでは表示できるので
htmlからurlを出すしかないみたいのようだ。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月06日

XML::LibXML::Readerがちょっと気に入った。

LibXMLで最初に検索したときに目についたのがTextReaderなるものだったのだが
取り敢えずDOM操作から入りたかったので後回しにしてみた。
タグ単位で処理していく他名前空間も明示的に扱うので
あまり階層が深くないものはこれで刈り込みながら
必要なところだけ取り込むのが良さそうだ。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月05日

XML::LibXML::XPathContextも使ってみたが...

ルートのノードにxmlnsがかかれている場合全部ローカルネームとして処理することで
どうにか扱えるようになったのだが
ちゃんとした扱いもしてみたかったので「XML::LibXML::XPathContext」を使ってみたのだが
取得するのはdomでコンテキストはそのまま継承されないので
案外と使いにくいことを悟った。
但し単に方法が検索などでみつからなかっただけかもしれない。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月04日

XML::libXMLでAtomのxmlnsでつまづく

libXMLを使う場合、単純なXMLはfindnodesやfindvalueでおっかけていくのだが
youtubeの検索結果を保存してちょっと表示させようかと思ったらなんもでない。

<feed>タグ内のxmlnsを空にしたら表示するので名前空間の問題らしい。
特に名前空間にこだわらない場合は
「findnodes("//*[local-name()='entry']")」のようにしてやると良いことが分かった。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月03日

XML::LibXMLでperlのutf8モードとやらに翻弄される。

XML::Atomは使わないことにして、XML::LibXMLを入れて
ちょっとXMLを作ってテストしようと思ったら
なんか

Wide character in print at libxml01.pl line **

という警告メッセージがでる。
どうもperlの内部にはutf8モードなるものがあるらしい。
それでどうした!......
posted by Xo_ox at 19:00| Comment(0) | perl | このブログの読者になる | 更新情報をチェックする

2009年07月02日

youtubeアクセスへの手がかりを探す

youtubeの個別のファイルからmp4なりflvなりを取得する方法は
安定して使用できるようだが
動画プレーヤーを作る場合、その肝心の動画IDに至る部分がブラウザだよりになってしまう。
現時点でjavascriptフル実装のhtmlブラウザを作るとゴタゴタになってしまうので
シンプルなhtml解析かGoogle提供のAPIがあればそれを使いたいと思った。
最初に「youtube perl api」で検索したところdata apiを使えばいいらしいが
developer IDなるもの必須というオープンソースもプレーヤーには
あまり芳しくない使い辛い情報しかみつからなかったのだが

いろいろキーワードを変えた結果
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html
の「動画の取得と検索」に答えが全てあった。
それでどうした!......
posted by Xo_ox at 23:30| Comment(0) | 基本データ | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。