▼ 2008/02/02(土) 歌詞検索サイトの Flash から歌詞本文 URL をぶっこ抜く具体的な方法
なんか「ぶっこ抜く」って使うとネトラン厨とかナウなヤングにバカウケってそそのかされたので使ってみました。
それはさておき、先日の歌詞本文 URL の件、どうやって解析したの?というご質問が何人かから寄せられたので具体的な方法を書いておこうかと。解析ってレベルじゃないので期待されても困ります。
材料:
Yahoo!ミュージック 歌詞
今回は KARSRAC でも使っているYahoo!ミュージックを使ってみましょう。
HugFlash
Flash を解析して中身を取り出すソフト。最近では FLV から AVI にしたりということに多く使われているようですね。
Firebug
HTML 解析用です。なくてもいいです。ソース読めればいいです。
さて、材料の中からこの曲を選択。とりあえずトップにあったのでクリックしただけで他意は無いです。
しかし
HugFlash は窓の杜などでも「画像・音声・動画が自動的に抽出されるソフト」として扱われていますが(いや実際そうなんだけど)、おいらがこのソフトを使う主目的は「ActionScript の解析」機能です。
さきほどの swf ファイルを HugFlash に食わせると、「lyrics.txt」というログファイルが出力されます。そのログファイルの一部がこちら。
先ほどの URL
その結果
解析というレベルではありませんね。こうやって披露するのがちょっと恥ずかしいくらいのレベルです。
でも要望があったので恥を晒してみました。
よろしければご活用下さい。
それはさておき、先日の歌詞本文 URL の件、どうやって解析したの?というご質問が何人かから寄せられたので具体的な方法を書いておこうかと。解析ってレベルじゃないので期待されても困ります。
材料:
Yahoo!ミュージック 歌詞
今回は KARSRAC でも使っているYahoo!ミュージックを使ってみましょう。
HugFlash
Flash を解析して中身を取り出すソフト。最近では FLV から AVI にしたりということに多く使われているようですね。
Firebug
HTML 解析用です。なくてもいいです。ソース読めればいいです。
さて、材料の中からこの曲を選択。とりあえずトップにあったのでクリックしただけで他意は無いです。
http://music.yahoo.co.jp/shop/p/53/265862/Y060337さっそく HTML ソースを見てみます。当然のように Flash は以下のように記述されています。
<object id="lyrics" width="500" height="400" align="middle" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"> <param value="sameDomain" name="allowScriptAccess"/> <param value="http://music.yimg.jp/lyrics/lyrics.swf?id=Y060337&aid=265862" name="movie"/> <param value="high" name="quality"/> <param value="#ffffff" name="bgcolor"/> <embed width="500" height="400" align="middle" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="sameDomain" name="lyrics" bgcolor="#ffffff" quality="high" src="http://music.yimg.jp/lyrics/lyrics.swf?id=Y060337&aid=265862"/> </object>これを見ると、Flash ファイルはソース元として
http://music.yimg.jp/lyrics/lyrics.swf?id=Y060337&aid=265862を呼んでいることが分かります。ここまではブラウザ上でソース開けば誰にでもわかることなので説明するまでもないですね。
しかし
http://music.yimg.jp/lyrics/lyrics.swf?id=Y060337&aid=265862も Flash ファイルが表示されて実際の歌詞本文までは到達していません。そこで
http://music.yimg.jp/lyrics/lyrics.swfをダウンロードしてローカルに保存します。ここで Hugflash 登場。自動解析してもらいます。
HugFlash は窓の杜などでも「画像・音声・動画が自動的に抽出されるソフト」として扱われていますが(いや実際そうなんだけど)、おいらがこのソフトを使う主目的は「ActionScript の解析」機能です。
さきほどの swf ファイルを HugFlash に食わせると、「lyrics.txt」というログファイルが出力されます。そのログファイルの一部がこちら。
no.= 000, name: _root no.= 001, name: cTA no.= 002, name: html no.= 003, name: label no.= 004, name: selectable no.= 005, name: borderStyle no.= 006, name: none no.= 007, name: editable no.= 008, name: tabChildren no.= 009, name: u no.= 010, name: http://music.yimg.jp/bin/sendlyricstext?ArtistId= no.= 011, name: aid no.= 012, name: &Id= no.= 013, name: id no.= 014, name: LYRCS no.= 015, name: _root.cTAFlash が外部からデータを読み込んでいる以上、そのデータの元となるアドレスやファイル名がほぼ間違いなく隠されています。要はそれを根気よく探し出してやればいいというだけ簡単なお仕事です。
先ほどの URL
http://music.yimg.jp/lyrics/lyrics.swf?id=Y060337&aid=265862と
no.= 010, name: http://music.yimg.jp/bin/sendlyricstext?ArtistId= no.= 011, name: aid no.= 012, name: &Id= no.= 013, name: idを見比べてみましょう。「aid」は「ArtistId」に、「id」は「Id」に内部で変換されていることが予想できます。
その結果
http://music.yimg.jp/bin/sendlyricstext?ArtistId=265862&Id=Y060337という歌詞本文の URL を検出することが出来る、というわけです。
解析というレベルではありませんね。こうやって披露するのがちょっと恥ずかしいくらいのレベルです。
でも要望があったので恥を晒してみました。
よろしければご活用下さい。
▼ コメント(0件)
- TB-URL http://worstman.net/blog/0117/tb/


