Creazy!

WEBエンジニア・ヤガーのテック・ガジェットブログ

Bookmarklet 開発実績

動画を楽しもう!(Flickr VideoのFLV動画をダウンロードするブックマークレット)

投稿日:


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コピー編)

-Bookmarklet, 開発実績

執筆者:


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

関連記事

no image

第9回:閲覧しているサイトへのリンクタグを生成するブックマークレット

どうしてもっと早く気がつかなかったんだろう、と思うくらい便利なブックマークレットを思い付きました。既出かもしれないけど、公開しておきます。 ブログを書いていると、他のブログのエントリーへのリンクを貼っ …

no image

「Topsy in Hatebu Entry」はてなブックマークのコメント一覧にTwitterでの言及を追加するGreaseMonkey

Twitterが着々と広まるにつれ、ソーシャルメディアでの人気度を図るための定番がソーシャルブックマークからTwitterに移行しているような気がします。とはいえ、いまだにはてブはチェックしたりするの …

Tumblr複数アカウント対応:ログインするアカウントを指定できるtumblrブックマークレット

この頃、tumblrの有効な活用方法を見つけるべくゴニョゴニョしているわけだけど、複数のアカウントを持っていると、今どのアカウントでログインしているか分からないし、別のアカウントでreblogしてしま …

Ust DL v2.2.0 (新デザイン対応)

9月にUstreamの新デザインが適用されたようで、新デザインの録画URLではUst DLが正常に動いていないようでした(古いIDなど旧デザインで表示されるページは問題なし)。これに対応する形で、バー …

no image

やまざきメソッドに学ぶ「制限によって生まれる使いやすさ」

実は、やまざきメソッド ジェネレーターのα版を社内公開した当初は登録できる項目数は任意でした。始めに項目数を自分で設定してフォームを出力、それから項目を入力みたいな。つまり、100項目とかもやろうと思 …

スポンサードリンク

スポンサードリンク