MySpaceのMP3ファイルにID3tagを埋め込みつつダウンロードするJSActionsスクリプト version.0.0.6

戦争 – MySpace、MP3ファイルへのリンクを表示するGreasemonkeyスクリプト でmp3ファイルはダウンロードできるけど、ストリーミング用のmp3だからか曲情報が何も入っていないのでダウンロードするときに埋め込んでくれるJSActionsスクリプトをつくりました。

version 0.0.5でFirefox3に対応しました。 以前のバージョンのものはFirefox3のnsIDownloadManagerの仕様変更で動かなくなっています。
ごめんなさい0.0.5はダウンロードがちゃんと完了しない状態になっていました。0.0.6をお使いください。

id3v23.js (version 0.0.6)

上の myspaceaddmp3links.user.js 必須です。このスクリプトが表示してくれるリンクをもとに動作しているのでないと動きません。id3v23.jsはJSActionsのglobalに入れて適当なページで呼び出してください。ダウンロードウインドウが開いてダウンロードが始まります。ID3タグを入れるついでにファイル名を曲名にして保存しています。

+ HideAway Firefox + には

○2.1.0.2005072901
(Next Ver : 2.2.0予定)
JSA 2.1.0/2.0.0/1.9.1.2にてChrome特権にて
任意のコードを実行できる脆弱性がありました。

と書かれていてコードを見るとたしかにその対策っぽいコードがあるけど今もふつうにchrome権限で実行できるので何でもできてJSActionsはすごい便利です。あやしいスクリプトを使わなければchrome特権で実行されたところで別に危ないことはないので今後もchrome特権で動いてほしいです。戦争 – JSactions、雑感、エラー箇所の表示でもそういう使い方されてるし。extension(ではないけど)のコードをまじめに書くのははじめてだったのですが JSActions + Firebug.Console でさくさく書けてすんごい楽しく作れました。

やっぱりバイナリファイルの中身をちまちま並べ替えたりしているときが一番楽しい。

download-manager まわりがあんまり正しくない。どうするのが正しいか後で書く。
結論から書くとdownload-managerはnsIWebBrowserPersistで保存することを前提に作られている。そうじゃない方法で保存しようとするとちょっと細工が必要。nsIWebBrowserPersistじゃなくてnsIChannelをnsIDownloadManager管理でダウンロードするに書いた。


About this entry