Jango RadioでをPCで再生した場合、Webブラウザのキャッシュにmp3等の音楽形式ファイルで保存されている事に気づいた事は以前記しましたが、ブラウザのキャッシュにあるのならmp3ファイルそのものをコピー(復元)出来るんじゃないかと、探究心が沸いてきました。
もちろん、Firefoxにアドオン(CacheViewer)を追加してキャッシュを表示して、選択して、保存するってことでは可能でしたが、これらを自動化できないものかなと考えました。キャッシュは一定の時間が経過した場合や、キャッシュ容量が大きくなると消されるので時々保存する仕組みが欲しくなります。
こういう処理をパソコンに行わせた場合、いちいち人間が手作業で行うのはどうなんだ?と疑問に思います。規則性のあるファイルをキャッシュから自動で取り出す位のことが出来ないで何がパソコンなんだ?という気がするのです。
結果的には実現出来たので記しておきます。
自動処理についての個人的な考え
コンピュータ最大の用途は自動処理につきると私は思っています。もちろんコンピュータグラフィックや音楽の作成など緻密な作品を作るツールとしても使えますが、クリエーターのツールとしてではなく、コンピュータに反復自動処理をさせることに成功した時に私はなんとも言えない満足感を感じます。手放しで放置しておいて勝手に仕事してくれる様を見て、ああコンピュータを使ってるって気になります(笑)
今回の処理を実現するにあたり、必要になるのは、Mozilla Firefoxのキャッシュにアクセスできる単体アプリ「MozillaCacheView」です。NirSoftからダウンロード出来ます。日本語ランゲージファイルも一緒に配布してくれているので一緒にダウンロードしておきます。こいつを見つけた時はちょっとテンションが上がりました。
キャッシュから音楽ファイルを取り出す
使い方は全然難しくないので、まずは「MozillaCacheView」をツールとして使ってみることをおすすめします。そうでなければこのアプリの便利さが分からないだろうし、使い方も理解できないからです。まずは適当に使ってみていただきたいです。簡単にキャッシュからファイルを取り出せます。
使い方の基本的なコツとしては、フィルターで「jango」などとして絞り込み、ファイルの種類でソートをかければJango Radioの音楽ファイルを探しだすのは容易です。範囲選択しておいてから右クリックで保存すれば、キャッシュから実ファイルに復元できます。
同じ様な方法で、特定のサイトのURLを持つキャッシュから画像ファイルを取り出したりする事もできると思います。実にいい感じです。
しかし、一連の事が手作業でできる事はFirefoxのアドインでも確認済なので、手作業でできても今となっては何も嬉しくありません。やっぱりファイルの抽出から保存まで自動処理させたいと思います。このアプリの本領発揮はこれからです。
自動処理させるコマンドライン指定
さて、この「MozillaCacheView」が優れている点は、コマンドライン実行ができるところです。Cacheから取り出したいファイルの指定は、コマンドにパラメータを付加することにより行えます。つまりコマンド一発で単発の処理ができます。コマンド処理ができるという事はその都度コマンドを発行すれば良いので繰り返し処理もできるわけです(タスクスケジューラを使えば1時間毎にとか実行させられます)。
このアプリをコマンドから指定して使えば、Firefoxで再生したJango Radioの音楽をキャッシュからmp3形式で何度でも自動的に取り出すことができます。
保存先に同じファイルが存在した場合はどうなるか?
同名ファイルが存在する場合は、filename~1.mp3という感じで、チルダのあとに数字が付加されることがわかりました。この規則性があれば不要ファイル(重複ファイル)は容易に削除できるので、単純にバッチ処理をスケジューラで定期的に実行してCacheからmp3ファイルを取り出しておけば良いでしょう。キャッシュが削除される前にファイル化してしまいます。
GetMP3FromCache.BAT
cd %homepath%\Desktop\mozillacacheview
MozillaCacheView.exe /copycache "http://cd09.128.music.static.jango.com" "audio/mpeg" /CopyFilesFolder "mp3" /UseWebSiteDirStructure 0
Code language: JavaScript (javascript)
ここの環境に応じてPATHを合わせたりする修正は必要ですが、趣旨としてはこれで伝わると思います。このコマンド指定の構文は、「MozillaCacheView」のREADMEファイルに英文で記されているので色々試してみるともっと応用ができるかも知れません。
反復処理
Windowsにはタスクスケジューラという便利な機能があります。というかコンピュータは繰り返し処理が基本なので、UNIX系では常識とも言えるcronと同種だと思って良いでしょう。Windowsにも自動起動のスケジュール機能が備わっているという訳です。
タスクスケジューラには、実行コマンドと、トリガーを指定できます。トリガーには開始日時と間隔を指定しておけば、あとは一定時間置きに指定コマンドを実行してくれます。キャッシュが消えてしまう時間が把握できていませんが、消される前に実行させたいという狙いです。一時間置きだと頻度が高すぎて重複ファイルが増え過ぎるかも知れません。試行錯誤が必要な部分です。
重複ファイルのクリーニング
バッチ処理でコマンド一発ってのも良いですが、これくらいはアプリを使って手作業でやっても良いかなという感じです。何しろパソコンを走らせっぱなしにしておいてファイルを集めて、重複ファイルをクリーニングするのは一回だけの作業ですから。
私は「DupFileEliminator」を使わせて頂いています。個人的にフィーリングが合うのでお気に入りです。こういうのは相性とか感覚的なものもあるので、好みのものを選ぶと良いでしょう。もちろんコマンド処理で終わらせるのもありです。
最後に
インターネットラジオの音楽を保存するという単純な発想から、色々な興味(探究心)が湧いてきて、最後にはほぼ自動でファイルを収集できました。
キャッシュからはURL情報も抜き出せるので、URL情報があれば聴きたい曲を直接URLで指定して聴くことも可能な様です。Jango Radioはシンプルな配信方法をとっているらしく、その仕組を使って面白いこともできそうな気配です。
もしかしたら著作権とか関係するかもしれないので、あくまでも探究心でここまで調べてみたという感じで記しておきます。時間が経過すると仕組みも変化するかも知れませんし、あくまでも私の日記という位置づけです。
追記
だいたい決まったジャンルを聴くので飽きたりしてしばらく聴いてなかったのですが、久しぶりに聴いて、キャッシュを確認してみたら音楽ファイルがキャッシュされなくなってました。流石にしっかり対策して来ましたね!
という訳でこの記事はもはや過去の情報に成り下がりましたとさ・・
コメント
[…] […]