4月9日に開始されたばかりのFlickr Videoですが、すごい高画質で魅力を感じています。
No Video運動が起こっていたり話題に事欠きませんが…、今回は、FLVのダウンロード方法が分かったので早速ブックマークレット作りました。
※なぜか、XMLHttpRequestとかDOMとかやるはめになったので(w)Ajaxの基礎編としても参考になるかもしれません。
ブックマークレットの登録と使い方
・Get Flickr Video
1)上記リンクをブックマークしてください。
2)flickrのVideo再生ページを表示します。(embedされているブログなどは非対応です)
3)ブックマークレットを実行します。
4)Downloadが始まるので保存するフォルダとファイル名を決めてOKするだけ。
以下環境で確認しました。
・Windows – Internet Explorer 7
・Windows – Firefox 2
・Mac OS X – Safari 3
・Mac OS X – Firefox 2
Operaとかどうなるんでしょう。試した方報告いただけると嬉しいです。
ソース
ブックマークレットは外部JSを呼び出すだけ
javascript:(function(){var d=document,s=d.createElement('script');s.charset='UTF-8';s.src='http://labs.creazy.net/bookmarklet/dl_flickr_video.js';d.body.appendChild(s);})();
外部JSの中身
http://labs.creazy.net/bookmarklet/dl_flickr_video.js
/** * Downloading Flickr Video * * @author yager <yager@creazy.net> * @url http://creazy.net/ */ /** * create XMLHttpRequest Object (for cross browser) */ function __create_http_request(){ if(window.ActiveXObject){ try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { return null; } } } else if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else { return null; } } // get node_id from html contents __node_ids = document.getElementById('thetags').innerHTML.match(/tagdiv([0-9]+\-[0-9]+)/g); __node_id = __node_ids[0].substring(6); // prepare XMLHttpRequest to get Video Information var __httpobj = __create_http_request(); __httpobj.open( 'get' , 'http://www.flickr.com/video_playlist.gne?node_id='+__node_id+'&secret='+page_p.secret , true ); __httpobj.onreadystatechange = function() { if ( __httpobj.readyState == 4 ) { xml = __httpobj.responseXML; var __node = xml.getElementsByTagName('DATA')[0] .getElementsByTagName('SEQUENCE-ITEM')[0] .getElementsByTagName('STREAM')[0]; location.href = __node.getAttribute('APP') + __node.getAttribute('FULLPATH'); } } // send request __httpobj.send();
スミマセンが、力つきたので細かい解説はしません。
ソース嫁ということでw(もしかしたら後で書くかも)
まとめ
FLVの在処をXMLで裏から取得するという手の込んだ仕組みになっていたので、ちょっと面倒な事になりました。ま、良いお勉強になったという事で。
しかし、Flickr Videoから落としたFLVはすごく画質が良くて驚きます。
もちろん、元のファイルが大容量・高画質なので当然といえば当然なんですけどね。
関連エントリー
・動画を楽しもう!(YoutubeをMP4でダウンロードするもっと簡単なブックマークレット)
・動画を楽しもう!(Adobe Media Playerは超便利なYoutubeダウンローダーだった!)
・動画を楽しもう!(YoutubeのFLVの在処とダウンロード用ブックマークレット)
・動画を楽しもう!(ustreamの録画した動画(Past Clips)のFLVを片っ端からダウンロードするブックマークレット)
・動画を楽しもう!(Youtubeの動画を片っ端からダウンロードするブックマークレット)
・動画を楽しもう!(HandBrakeの最新版0.9.0を試してみる)
・動画を楽しもう!(インターネット編)
・動画を楽しもう!(MacでDVDコピー編)
・動画を楽しもう!(WindowsでDVDコピー編)