TRASH-NEWS Opera9.5でニコニコ動画のキャッシュファイルを管理するスクリプト

順路
  1. ホーム
  2. 2008年
  3. 06月
  4. 15日
  5. この記事 [現在地]
Search?
お知らせ
ここ数日更新が滞っていますが…… (2008/04/13 13:31)
4月より社会人となったため、時間の作り方がいまいちつかめないため、不定期の更新となります。まぁ……ニコニコメーカーでもお楽しみください!
1 2 3

Opera9.5でニコニコ動画のキャッシュファイルを管理するスクリプト

TRASH-NEWSは
I've Soundをこよなく愛するサイトです
初出時刻
2008年06月15日 01時41分 投稿
最終更新時刻
2008年06月15日 02時03分 改訂
  • この記事をはてブする
  • Yahoo!ブックマークに登録

3日連続Opera9.5記事。昨日のOpera9.5の感想+不具合記事でご紹介したby edvakf in hatenaさんで面白い記事を見つけました。こちら[ OperaでCacheを効果的に探す方法 ]。

Operaで動画を見ると、所定のフォルダ(例. ユーザーフォルダ\Local Settings\Application Data\Opera\Opera\profile\cache4\)にキャッシュファイルとしてどんどん保存されていきます。YouTubeニコニコ動画でもソレは同じこと。おかげで特別な保存用ソフトなどを使わなくてもキャッシュファイルをあされば動画を自分のPCに保存できるわけです(まぁ大抵のブラウザで同じことが出来ますが)。

ところがOpera9.5からはキャッシュファイルの扱いが変わってしまい、拡張子を削った名前にリネームされてキャッシュされるようになりました。一見しただけではどれが動画のキャッシュファイルかわからなくなってしまったのです。ファイルサイズの大きいものに当たりをつけて、拡張子をつけて再生を試みる……ああ、最近はmp4とflvの2種類あるからどっちの拡張しかわからない!

数万のキャッシュファイルがうごめくフォルダでそんな作業をするのは、はっきり言って超面倒。もっとこう、ニコニコのキャッシュっぽいものを手軽に見つけられないだろうか! そんな要望が起きることを予見してか、どこかのどなたかがOpera:cacheというOpera内蔵のキャッシュフォルダブラウザページ(?)にインクリメントサーチ機能をつけました。キャッシュと一緒に記録されている元URLに対して検索をかけられるようになったのです。どういうことかというと、"nicovideo.jp"というURLで取得したキャッシュファイルだけをピンポイントに表示できるようになったということ。これで当たりをつけやすくなった!

しかしまだ面倒なことには変わりません。どれがなんの動画かわからないし、管理も出来ない! そこで今回僕が作ったのが"ニコニコ動画の動画サーバーから落としたファイルだけを表示してサムネイルも表示させるOpera用スクリプト"。タイトルが長ェ!!

Opera9.5でニコニコ動画のキャッシュを管理しやすくするスクリプト

どういったものかといいますと、キャッシュファイルの元URLに"nicovideo.jp/smile?"(=動画が置いてあるサーバーのURL)を含むキャッシュファイルを抜き出し、そのURLに含まれるニコニコの動画IDを抽出、そのIDからサムネイルをニコニコ動画のサムネイルサーバーから呼び出して表示させる、てなところ。まぁ実際に使ってみたようすをスクリーンショットでアップしましたのでどうぞ。

以下がコード。なお大半の部分は先述のedvakfさんの手によるもの。こちらのリンク先で詳しい解説がなされていますので、まずはそちらをご覧あれ。

Opera9.5でニコニコ動画のキャッシュファイルを管理するスクリプト
<script type='text/javascript'> document.addEventListener('load', function() { for(var i=0; document.links[i]; i++){ document.links[i].target = '_blank'; }; var l = document.getElementsByTagName('tr'); var sf = document.createElement('input'); sf.type = 'text'; sf.defaultValue='検索'; sf.style='margin:0 4px;float:right;'; sf.addEventListener('focus', function(){ if(this.value==this.defaultValue){this.value=''} },false); sf.addEventListener('blur', function(){ if(!this.value){this.value=this.defaultValue} },false); sf.addEventListener('keyup', function(){ var v=this.value; for(var i=0, li; li=l[i]; i++){ var p=li.lastChild.firstChild.innerText; if(p && p.indexOf(v)==-1){ li.style='display: none' }else{ li.style='display: table-row' } } },false); var inp=document.createElement('input'); inp.type='button'; inp.value='サムネイル'; inp.style='float:right;'; inp.addEventListener('click', function(){ var b=/\.(jpe?g|bmp|gif|png|ico|swf|flv)$/i; var f=/\.(swf|flv)$/i; for(var i=0, li; li=l[i]; i++){ var p=li.lastChild.firstChild; var c=li.lastChild.firstChild.innerText; if(li.offsetHeight!=0 && p.childNodes.length<2){ if(b.test(c)){ var stl='float:right; border:1px dotted black; margin:1px; padding:1px;'; if(f.test(c)){ var dv=document.createElement('div'); p.appendChild(dv); dv.innerHTML='<EMBED src='+p.href+'>'; var fh=dv.firstChild; fh.setAttribute('height', 100); fh.setAttribute('width', 100); fh.setAttribute('style', stl+' content:normal; outline:none; color:inherit;') }else{ var image=document.createElement('img'); image.setAttribute('src',p.href); if(!image.height || image.height>100){ image.height='100' }; if(!image.width || image.width>100){ image.width='100' }; image.setAttribute('style', stl); p.appendChild(image) } } } } }, false); var th=document.getElementsByTagName('th')[2]; th.appendChild(inp); th.appendChild(sf); var Nico = document.createElement('input'); Nico.type='button'; Nico.value='ニコニコ抽出'; Nico.style='float:right;margin-right:6px;'; Nico.addEventListener('click', function(){ var v='nicovideo.jp/smile?'; for(var i=1, li, NicoA; li=l[i]; i++){ var p = li.lastChild.firstChild.innerText; if(p && p.indexOf(v)==-1){ li.style = 'display: none' }else{ li.style = 'display: table-row'; li.lastChild.firstChild.href.match(/(m|v)=([0-9]+)/img); if(RegExp.$1 == 'm'){ var VideoMIME = "video/mp4"; }else{ var VideoMIME = "video/x-flv"; } var Nico = RegExp.$2; var Video = 'file://localhost/C:/Documents%20and%20Settings/(ユーザー名)/Local%20Settings/Application%20Data/Opera/Opera/profile/cache4/' + li.firstChild.innerText; li.firstChild.innerHTML = '<a type="' + VideoMIME + '" href="' + Video + '"><img src="http://tn-skr.smilevideo.jp/smile?i=' + Nico + '" width="130" height="100"><br />sm' + Nico + ' (' + VideoMIME + ')</a>' } } }, false); th.appendChild(Nico); },false); </script>

太字部分が僕の追記した部分です。まぁほとんど流用させていただいたということですね!

このコードのなかに1箇所ある(ユーザー名)という部分をあなたのログインユーザー名(Windows的な意味で)に書き換え、改行を全部消したのちC:\Program Files\Opera\locale\ja\ja.lngの"-1713924769"のある部分に上書きしてください(文字コードはUTF-8で保存してください)。↓のような具合です。

C:\Program Files\Opera\locale\ja\ja.lng 890行目あたり
; Used as column titles in the generated cache list page, when the user has ; selected Windows/Special/Cache, or entered the URL opera:cache. -524571995="ファイル名" -299260835="アドレス" -1713924769="サイズ<script type='text/javascript'>document.addEventListener('load',function() {for(var i=0; document.links[i]; i++){document.links[i].target = '_blank';};var l = document.getElementsByTagName('tr');var sf = document.createElement('input');sf.type = 'text';sf.defaultValue='検索';sf.style='margin:0 4px;float:right;';sf.addEventListener('focus',function(){if(this.value==this.defaultValue){this.value=''}},false);sf.addEventListener('blur',function(){if(!this.value){this.value=this.defaultValue}},false);sf.addEventListener('keyup',function(){var v=this.value;for(var i=0, li; li=l[i]; i++){var p=li.lastChild.firstChild.innerText;if(p && p.indexOf(v)==-1){li.style='display: none'}else{li.style='display: table-row'}}},false);var inp=document.createElement('input');inp.type='button';inp.value='サムネイル';inp.style='float:right;';inp.addEventListener('click',function(){var b=/\.(jpe?g|bmp|gif|png|ico|swf|flv)$/i;var f=/\.(swf|flv)$/i;for(var i=0, li; li=l[i]; i++){var p=li.lastChild.firstChild;var c=li.lastChild.firstChild.innerText;if(li.offsetHeight!=0 && p.childNodes.length<2){if(b.test(c)){var stl='float:right; border:1px dotted black; margin:1px; padding:1px;';if(f.test(c)){var dv=document.createElement('div');p.appendChild(dv);dv.innerHTML='<EMBED src='+p.href+'>';var fh=dv.firstChild;fh.setAttribute('height', 100);fh.setAttribute('width', 100);fh.setAttribute('style', stl+' content:normal; outline:none; color:inherit;')}else{var image=document.createElement('img');image.setAttribute('src',p.href);if(!image.height || image.height>100){image.height='100'};if(!image.width || image.width>100){image.width='100'};image.setAttribute('style', stl);p.appendChild(image)}}}}}, false);var th=document.getElementsByTagName('th')[2];th.appendChild(inp);th.appendChild(sf);var Nico = document.createElement('input');Nico.type='button';Nico.value='ニコニコ抽出';Nico.style='float:right;margin-right:6px;';Nico.addEventListener('click',function(){var v='nicovideo.jp/smile?';for(var i=1, li, NicoA; li=l[i]; i++){var p = li.lastChild.firstChild.innerText;if(p && p.indexOf(v)==-1){li.style = 'display: none'}else{li.style = 'display: table-row';li.lastChild.firstChild.href.match(/(m|v)=([0-9]+)/img);if(RegExp.$1 == 'm'){var VideoMIME = "video/mp4";}else{var VideoMIME = "video/x-flv";}var Nico = RegExp.$2;var Video = 'file://localhost/C:/Documents%20and%20Settings/(ユーザー名)/Local%20Settings/Application%20Data/Opera/Opera/profile/cache4/' + li.firstChild.innerText;li.firstChild.innerHTML = '<a type="' + VideoMIME + '" href="' + Video + '"><img src="http://tn-skr.smilevideo.jp/smile?i=' + Nico + '" width="130" height="100"><br />sm' + Nico + ' (' + VideoMIME + ')</a>'}}}, false);th.appendChild(Nico);},false);</script>" ; 以上ここまで

ちなみにキャッシュフォルダに関してはopera:config#Cache Directory4でも確認可能です。保存後、Operaを再起動させ、opera:cacheにアクセスすると検索窓と共にニコニコ動画抽出ボタンがついているはずです。

ちなみにこのスクリプトの存在意義を根底から覆す問題をひとつ。

当然キャッシュフォルダに保存されている動画しか表示できないということ。

キャッシュフォルダの上限サイズを数100MB以上に設定しない限り、せいぜい5~10本しか動画を保存できませんからね。見る端からキャッシュファイルは上書きされていくわけで。動画を見たらopera:cacheにアクセスしてファイルを確認、みたいな使い方になってしまうこと必然です。結局面倒じゃん!

またサムネイルサーバー(http://tn-skr.smilevideo.jp/)に勝手にアクセスするのもお行儀悪いかも。うーん、そもそもこのスクリプトはOpera9.5ユーザー専用ですし、需要と使い道はかなり限られていますね。一生懸命作ったのに……。

明日以降、時間があればopera:historyからニコニコ動画のURLを抽出して履歴管理するプログラムについてご紹介します。こちらは半年くらい前に作って以来、我ながら超便利に使いまくっているので使い心地は抜群保障。ただしOperaユーザーxPHP実行環境必須ということでやはり需要はビミョウです。2つの条件を満たした全国100人くらいの方はどうぞお待ちください。

サイト内検索
検索する
このサイトについて
  • サイト名 : TRASH-NEWS
  • 分類 : ニュースとネタのサイト
  • ジャンル : 井戸端からアレゲまで
  • もっと詳しく見る
最近の記事
08月28日の記事
  1. 初音ミクの星間飛行や振り付けランカちゃんなど最近見たニコニコ動画
08月25日の記事
  1. 初音ミクと小林オニキスさんの新曲『ORCA』がまたも素晴らしい
08月19日の記事
  1. こもんちゃん(ニコニ・コモンズ)で解説する『PhotoshopCS3でアニメgifを編集する方法』
08月18日の記事
  1. ブルースクリーン・ブルース
08月17日の記事
  1. 夏コミのために有給を取ったにもかかわらず
07月16日の記事
  1. マルタと釘宮のために買ったWii、Priceless.
07月12日の記事
  1. 2008年7月に発売されるマンガのスケジュール表
07月06日の記事
  1. I'veコンピアルバム 『master groove circle』など気になったニュース
07月05日の記事
  1. テイルズオブ釘宮やSound Blaster Play!など購入検討物リスト
07月02日の記事
  1. うみねこのなく頃に体験版はマンガ版を読んでからのプレイがオススメ
日刊人気記事ランキング
2008年08月30日のぶん
1
Windows XP SP3インストールで不具合が起きることが発覚
123
2
XP SP3における不具合報告と32bitOSでのメモリのRAMDisk化の話
35
3
テイルズオブ新作『テイルズ オブ ヴェスペリア』のまとめと推察
33
4
Windows XPのSP3は思いのほかスゴいらしい
31
5
PSP版スターオーシャン2の既報のまとめと新旧声優対応表
22
6
テイルズオブヴェスペリアはXbox360で発売決定?
18
7
初音ミクオリジナル曲『サイハテ』のmp3が公開開始
17
8
画像解析系ジェネレータ・BannerCodeBattler2(仮)着手開始
17
9
3Dの初音ミクを躍らせるフリーソフトMikuMikuDanceがスゴい
17
10
DS版DQ5に“新たなる人生の選択”が追加されるよう
16

2008年08月31日 0時更新

人気記事ランキング

カテゴリ(折畳表示)
ニュース・ネタ
サブカテゴリを開く
俺研究舎
サブカテゴリを開く
お知らせ
サブカテゴリを開く
特集・企画
サブカテゴリを開く
管理人近況
サブカテゴリを開く
カスタムアーキテクチャ
1回めのようこそ!
ゲストさん
  • 文字の大きさ : 12px
  • フォント : MS Pゴシック
  • レイアウト : 3段組
  • カスタムする
カレンダー
2008年6月
«  05月 - 07月  »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
管理人について
管理人 : 八満かシアン
理系になり損ねた文系人間(シアンのほう)
今頃たぶん聴いている曲
HAPPYジェネレーション by fripSide NAO Project
月別アーカイブ
2008年
2007年
最近記事に掲載した画像
ラタトスクとWiiはマルタと釘宮のために存在している
ラタトスクとWiiはマルタと釘宮のために存在している
夏海ケイ作画『うみねこのなく頃にEP1』が面白い
夏海ケイ作画『うみねこのなく頃にEP1』が面白い
Opera9.5でニコニコ動画のキャッシュを管理しやすくするスクリプト
Opera9.5でニコニコ動画のキャッシュを管理しやすくするスクリプト
Opera9.5正式版のちょっと困ったポイント
Opera9.5正式版のちょっと困ったポイント
マジカノ最終巻、カプレカ1巻など
マジカノ最終巻、カプレカ1巻など
画像に関するリンク
ユーティリティ
RSSフィード
ソーシャルブックマーク
  • iGoogle
  • はてなアンテナにTRASH-NEWSを追加する TRASH-NEWSのはてなブックマーク数 この記事を含むはてなブックマーク
サイトプロフィール
Powered by
  • Movable Type 4.1 + [XHTML + CSS + JavaScript] + PHP
  • TRASH-NEWS / Hachiman_Cian 2007-
このページについて
題名
Opera9.5でニコニコ動画のキャッシュファイルを管理するスクリプト
内容
  • 3日連続Opera9.5記事。昨日のOpera9.5の感想+不具合記事でご紹介し
TRASH-NEWS ロゴ
TRASH-NEWS ロゴ
TRASH-NEWS : http://www.trash-news.net/