FTPで最近のWinAmp Playlistを表示する

WinAmpでOddSock's Do Somethingプラグインを使用して、トラックバックを使って現在プレイしているファイルの情報をMovableTypeに表示させるというアイデアは、曲が変わるたびに送信されるトラックバックの洪水に飲まれて断念しました。

その際、Do Somethingプラグインがファイルを生成したり、それをFTPでアップロードしたりすることができるのが分かったので、これで何とかならないかな、と思ったところ、

Do Something Plugin (1)

で実行されている人がいました。


上記サイトの手順をもとに自分の手順を記録。

ちなみに環境は、

MovableType 2.661 + WinAmp 5.0.2 + Do Something Plugin 2.12 + ロリポップ
(MovableTypeはUTF-8で動作、WinAmpは非日本語化)

です。もっとも、MovableTypeの機能は利用していませんので、MovableTypeでないサイトでも同様の手法でできるはずです。表示したいhtmlがシフトJISなら後半のCGIを使う部分の手順が不要です。

また、サーバーがSSIに対応している必要があります。

Do Somethingプラグインは、ダウンロードしてきて、インストーラーでデフォルト設定のままインストールすればOKです。

次にプレイリストを作成するためのテンプレートファイルを作成します。

WinAmpのPluginsフォルダに保存するのが妥当かな。
(C:\Program Files\Winamp\Plugins\pltmpl.htmlとか)
サイトのエンコードに関係なくシフトJISで設定してみました。

そしたら、Winampを起動して、
右クリック→Options→Preferencesとクリックして、
Plug-insのGeneral PurposeとクリックするとDo Something Pluginがありますのでそれをダブルクリック。

dosomething0.gif

Do Something!の設定画面で
Disable Pluginのチェックを外し、
Enable ID3 Info Gatheringをチェックします。

※トラックバックから更新にチャレンジしたことのある方は、トラックバック送信用のSubmit A URLの設定は削除しておくこと。

ActionsでGenerate HTML Playlistを選択して、
Template Inの欄にさっき作ったファイルのパスを入力します。
(C:\Program Files\Winamp\Plugins\pltmpl.htmlとか)
Template Outの欄に出力するファイルのパスを入力します。
(D:\kirishima.it\mt\playlist.htmlとか。私はサーバーにアップロードするサイトのイメージのあるフォルダに保存しています)
そしたらAddボタンを押します。するとAction Listに今作ったGenerate HTML Playlistが追加されます。

dosomething1.gif

こんどはActionsでFTP A Fileを選択します。
Local FileにはさっきのTemplate Outに入力したものとまったく同じものを入力。
Remote FileはFTPサーバー上に配置する位置とファイル名(/mt/playlist.htmlなど)
FTP HostとUsername、Passwordはプロバイダーから提供されているFTPクライアントに設定する内容そのものです。
そしたらAddボタンを押すと、Action ListのGenerate HTML Playlistの下にFTP A Fileが追加されます。

dosomething2.gif

Show Status WindowとEnable Error Messageはうまくいかないときにチェック入れて動作を確認すればいいと思います。
(Show Status Windowにチェック入れておくとFTPに失敗するとエラーメッセージが出ます。
Enable Error Messageはどこにエラーが保存/表示されるのか不明…)

できたら、OKをクリックして、Closeをクリックして、WinAmpに戻ります。

念のため、WinAmpを終了して、再度起動しましょう。

適当な曲を選んで再生したら、

指定したローカルファイルが作成されているか、
先ほど指定したサーバー上の位置にファイルがアップロードされているか確認します。

※ファイヤーウォールソフト等でWinAmpのインターネットへの接続を遮断していないか要確認

無事作成・アップロードされていたら、

こんどは、MovableTypeの適当なところに、SSIの記述をします。
※SSIに対応したサーバーでなければできません。
※.htaccessの設定の必要があるサーバーもあるかもしれません。

私のMovableTypeはUTF-8で運用していますが、Do SomethingプラグインはUTF-8のHTMLファイルを書き出せない(シフトJISで書き出している様子、というかMP3ファイル内の日本語のタグがシフトJISなんでしょうね)ので、Jcode.pmを利用する簡単なCGIスクリプトを作成し、アップロードされたファイルをUTF-8に変換してはき出すようにしてみました。

MovableTypeがEUCでもJcode.pmが利用できる環境の人はutfconvert.cgiの

print jcode($_)->utf8;

print jcode($_)->euc;

にすればいいのかな(たぶん)。それかできる人はjcode.plでシフトJIS→EUCを変換するようにすればいいかと思います。
※ogohさんはご友人のSEの方に作って頂いて実現したようです。

ogohさん提供のCGIを掲載しておきます。(別途要jcode.pl)
eucconvert.cgi v1.00

また、MovableTypeとは関係なくてシフトJISの人は、CGIを利用せずに直接ファイルをインクルードすればいいでしょう。

UTF-8環境の人は、Jcode.pmが利用できるなら、
utfconvert.cgi v1.00
を利用してください。

解凍してutfconvert.cgiのPerlへのパスと$filenameを適切に変更して、
/mtフォルダに配置して
パーミッションを755とか実行できるものに変更します。

そしてMain Indexテンプレートなどに、

<!--#include virtual="./utfconvert.cgi" -->

などと記述します。
(ロリポップはMain Indexの拡張子を.shtmlに変更して、いままで作成していたindex.htmlをFTP等で削除する必要アリ)

以上設定が終わったら、Main Indexをリビルドして、トップページを表示させてみてください。SSIが正しく実行されれば、テンプレートの所定の位置に、先ほどWinAmpがアップロードしたplaylist.htmlの内容が表示されているはずです。

[an error occurred while processing this directive]

とか表示されている時は、SSIのエラーなので、サーバー環境や、SSIの記述、Main Indexファイルの拡張子など、SSIをチェックし直してみてください。

あとは、WinAmpのDo Somethingプラグインが曲が変わるたびに新しいplaylist.htmlをアップロードしてくれますので、訪問者は、現在サイトの管理者が聴いている曲が分かるようになっているはずです。
(※曲が「変わる」時に反映されるようで、同じ曲を再生し直したりするだけだと、設定の変更等が反映されないケースがありました)


余談ですが、

以前簡単に試してみたときに、タグを記述しても、何も情報が入らなくて困ってそのまま放置していたのですが、原因が判明しました。

Do Somethingプラグインが取得するタグはID3v1 TagID3v2 Tagは無視される

ということのようです。
実は私のMP3ファイルはほとんど全て、ID3v2タグしか持っていないのです。

そりゃあファイルがアップロードされても曲名やアーティスト名は埋まらないよね、と納得したモノです。

2005.5.16追記
このDo Somethingプラグインを改造された方がいらっしゃるようです。
私自身はまだ試していませんが、すごそうなので。

MP3のID3v2以外にも
WAV (.wav)
TwinVQ (.vqf)
WindowsMedia (.wma)
OggVorbis (.ogg)
Monkey's Audio APE Tag v1/v2 (.ape)
からもタグ情報を読み込めるようにしました。
(mp3infpのライブラリ使用)


イソプロピルアンチピリン: DoSomething Plugin 改造版

ちなみに、WinAmpでプレイリストでファイルを右クリックして「View File Info」を選ぶと、

Copy to ID3v1

っていうボタンで一発でID3v1タグにも入力できるのですが、全ファイルやるとなると面倒です。SuperTagEditorとかである程度一括処理はできますが、数台のPCに分散しているMP3ファイルの整合性にも問題が…。

ということで、

%%CURRENTSONG%%
%%CURRENTSONGLENGTH%%

などは比較的安全な(きちんと動作する)タグですが、

%%CURRENTSONGTITLE%%
%%CURRENTARTIST%%

などは(私的には)空欄になってしまう率の(非常に)高いタグということでした。
(テンプレート通りに情報が入らないという方はMP3ファイルのタグをご確認下さい)
で、無事にFTPでサイトにアップロードされているのが確認できました。


また、自分のMovableTypeの文字コードがUTF-8な罠にはまってしまいました。

……そのままインクルードしても漢字読めないじゃん……。

Do Somethingプラグインにそこまで求められないので、SSIで呼び出されて、指定されたファイルをUTF-8ではき出すようなCGIと組み合わせるしかないかな、と思って簡単なCGIを作成して組み込んでみました。

さいわい、サーバーがJcode.pmに対応しているので、それを利用します。

ファイル名とか引数で渡したり、エラー処理をキチンとしたりすれば汎用性が上がるのでしょうが、そんなことやる気は毛頭ないので、機能オンリーです。

utfconvert.cgi v1.00

2004.3.5 まぎらわしいのでテンプレートファイルをpltmpl.htmlに変更しました。

2004.3.12 それでもうまくいかない人のためのチェックリスト。

・トラックバックで行なうPlaylistに挑戦したことがあり、そのときと同名のファイルをFTPで更新しようとしている場合、以前作成したPlaylist用のカテゴリを削除すること。またトラックバック送信用のSubmit A URLは削除しておくこと。または同じファイル名でやらない。
・ファイヤーウォールの設定でWinAmpをブロックしていないか確認する。
・Jcode.pmを力業でMovableTypeに導入している場合、モジュール組み込みの方法を検討するか、utfconvert.cgiを改造すること。
・再生しているMP3がID3v1タグを持っていないのに、ID3v1タグに依存したテンプレートになっていないか確認する。

一歩進めて、曲データを元にAmazonで検索するのにも挑戦してみています。

トラックバック

この一覧は、次のエントリーを参照しています: FTPで最近のWinAmp Playlistを表示する:

» winamp 送信元 penfacotry.net
Winampで聴いてる曲を右に表記してみたい、と思った。 やってる人が多いから。 私の音楽雑食性を把握してもらおう、という目論見もある。 なかなかできない。 やっぱ、機械の神に愛されていないようである。 努力、努力。...... [詳しくはこちら]

» winamp(3) 送信元 penfacotry.net
とりあえずリストの表示には成功した。きりしまさんのところのFTPで最近のWINAMPを猛烈に読んでやってみたんだが、日本語化がうまくゆかない。 このままだと、私は洋楽ばかり聴いているカドで壬生浪士組に懲罰されそうなんで、 なんとかせなあかんなぁ、と思っている。し... [詳しくはこちら]

» winamp(4) 送信元 penfacotry.net
Jcord.pmが元々借りたサーバに入っていなくて、本などを読んで力業でJcord.pmを入れた方で、且つ、EUC-JPでMovableTypeを使っていて……(以下略)と言う方eucconvert100.lzhコイツをきりしまさんのところのFTPで最近のWinAmp Playlistを表示するを参考にする際に使っ... [詳しくはこちら]

» Winampで現在再生中の曲名を表示させよう 送信元 くまのブログ日誌
きょうから右側の一番上のスペースに、私が今聞いている曲(My Playing ... [詳しくはこちら]

» WinAmpのDoSomething plug-in 送信元 KANWAKYUDAI::Blog
WinAmp 5 とPeerCast (2)エントリで、WinAmp の DoS... [詳しくはこちら]

コメント (19)

こんにちは。かのです。

FTPアップロードのほうがTrackback一覧を汚すことなく表示できていいですね。

実は、私もちょっと試してみまして、RemovePluginを導入したところ
Trackback一覧がかなりすっきりしました。
今まで溜まってばかりのトラックバックを最新から10個まで貯めておけるような
設定を仕込んだところ、うまく機能しているようです。
しかし、結局はTrackback送信してるので最近のTrackbackは埋まったままなのですが(ぉ

後でFTP仕様も試してみるかなあ。

ogoh:

かのさんのページから飛んできました。
この方法を「GOING MAMA WAY」を見て
試したんですが、こちらを見てもやっぱり
うまくゆきません。どうやら、WINAMPがplaylist.htmlを作っていないようなんです。
これは、WinAmpおよびDoSomethingの使い方で、
なんというか、暗礁に乗り上げてしまってます。
パスはコピペしたんで正確だと思うんですが、
どこをどうチェックしたらいいのかわかんなくて、
オロオロしております。

余談ですが、
http://www31.ocn.ne.jp/~yoshio2/cfu-1.html
のソフトは役に立ちそうですか?

ogoh:

余談で挙げたソフトを使ってファイルをアップロードしたら、playlist.htmlをオンタイムで更新してサーバに上げることは成功しました。
しかし、やっぱ、index.shtmlにしても、読み込みのほうはできず、今の段階ではご覧になっていただければわかるのですが、リンクを張っただけになってしまっています。
どこをチェックすればよいか、思いついて、かつ、ご面倒でなければ教えてください。
追記+DoSomethingのほうは、
ファイルは作るようになったのですが、依然、アップロードはしてくれてないようです。一応、してる素振りは見せるのですが(苦笑)。

うーん。
FTP A Fileがうまくいかない、という点に関しては、
挙げられているCFUとほぼ同じ意味ですし、設定も同様なので、
対象のファイルの指定だけが違いになると思います。

あとは、設定変更(テンプレート含む)したらWinAmpを起動し直してみる、
別の曲を再生してみる、
Do Something!設定画面で、
Clear Playlist Song Cache
をクリックしてみる、
Temp Dir **を
別のフォルダにしてみる、ですかねえ。

ogoh:

ご助言ありがとうございます。
こちらではもちろん、私のサイトでも
懇切丁寧に茫洋とした意見をまとめて
お返事いただいてるのに、かたじけないです。
きりしまさんの提言をマジメに実行してみて、
もう、これはサーバ側がおかしいゾ、という
人のせいモードに入りかけた途端、
私のサイトでhtaccessのアドバイスまでいただき、
そっちも試してみたんですが相変わらず……。
私のサイトのほうでも書いたことと重複しますが、
PC側にあるプレイリストのHTMLファイルは、
順調に書き込まれているようなんです。
ところが、WinAmpとの接続を絶った途端に、
FTPソフトでファイルを確認してみると、
ファイルが真っ白になっているという、
キツネにつままれたような状況でございます。
Do Somethingのせいでもないなぁ、という
結論は出た(のかな?)という感じです。
ありがとうございます。本当に、ありがとう。

WinAmpを終了したとたんに、というのは、
Disable "Winamp Stopped" Message
をチェックするといいかもしれません。
Winampが停止した時のDo Somethingプラグインの動作を封じられるはずです。
私はチェックしていませんが、とくに問題は起きていないようですけど。

ogoh:

で、できたっ!!
相変わらずWinAmpおよびDo Somethingの攻略はおぼつかないのですが、
現時点で、過去にTrackback用に作った「PLAYLIST」のカテゴリを削除して(あ、書き込みは移動して残させていただいています)、
え~と、たったそれだけ。
あとはこのページを穴が空くほど読んで、
キチンと攻略した上で、私なりの注意点を書き上げるようにします。
辛抱強く教えていただいてありがとうございます。
本丸のほうにも、今後、顔を出させていただきます。
ありがとうございます。失礼します。

なるほど。
playlistカテゴリが上書きしてたんでしょうね。
それは盲点ですね。

ogoh:

盲点もおかげさまで(マジで!)、無事、解消。
現在、さらなる高み(笑うところです)へと進もうとしております。
その前に、質問させてください。
ココで書いてあるCGIは、日本語の表記をキチンとさせるためのスクリプトなのでしょうか?
今、私はこのCGIなしで表示が成功してるので
もしや? と思いました。
あ、ちなみに、私のサイトはEUC-JPです。

その通りです。
私が確認したところ、作成されるファイルの日本語部分はシフトJISに見えます。
ogohさんのプレイリストは全てアルファベットなので、どの環境でも問題ないと思います。
ですが、日本語が含まれる場合は、
私の環境ではシフトJIS→UTF-8、
ogohさんの環境ではシフトJIS→EUC-JP
への変換が必要と思われます。

ogoh:

なるほど……とやってみたら、
また、ダメの罠に(苦涙)。
説明どおりにやってるけども、
「ファイルが見つかんない」っていう、
前と同じ英語が出てきます。
$filenameのパスが問題なのかなぁ?
utfconvert.cgiもplaylist.htmlと同じ階層に入れて、実行すればいいんですよねぇ。
きりしまさんとおんなじにやってるつもりなんですが……。

予想されるのは、
utfconvert.cgiの1行目(PerlへのPath)をサーバーに合わせて設定し直す、
Jcode.pmにサーバーが対応していない、
ですか。
大抵のサーバーは、
#!/usr/bin/perl

#!/usr/local/bin/perl
のいずれかの設定ですので、CGI、Perl関連のサーバーの設定をご確認下さい。
Jcode.pmについてはサーバーにインストールされていないと私としてはアドバイスのしようが…。
無理矢理ユーザーのスペースにアップロードしたJcode.pmでMovableTypeを動かせるみたいなので、なんか方法はありそうですが…。

ogoh:

直接utfconvert.cgiにアクセスしてみたところ、
500のInternal server errorになります。
perlへのパスなどは間違いないので、Jcode.pmかなぁ?
無理矢理ユーザーのスペースにJcode.pmをアップロードしたクチなので。

ogoh:

きりしまさん、きりしまさん。
あの、utfconvert.cgiを(某サンバ好きのSEちゃんに)改造してもらいました。
要はJcode.pmを私のほうでは力業で入れていたということによるもので、
いっそのこと、jcode.plで動かしてしまおう、という改造のようであります。
S-JIS→EUC-JPということで、UTFコンバータでもなんでもなくなってしまってますが、
いいですか? 一応、順調に動いてます。
あ、で、こういう改造は先に断ったほうがいいんですよね。とりあえず、まずはこちらに書き込ませていただいて、今後どうしようかご指示ください。

原則として自分のために改造をして、自分が利用するだけなら自由ではないかと思いますが。
再配布とかは元の作者に許可を取った方がいいでしょうね。

ちなみに、utfconvert.cgiはプログラム的に何も権利を主張するような構造を持っていないので(改造してくれた方に訊けば分かると思います)、改造版、EUC版はご自由に再配布して頂いても構わないと思います。
(というか改造版とももはや言えなく、EUC版を新規に作ったような形に近いかと思いますが)

私もEUCのサイトでやるとしたらその方法がいいだろうな、とは思っていました。

もしソースを頂けるようなら、EUC版もあわせてこのエントリで紹介しますのでそのSEの方に訊いてみて頂けたら、と思います。

ogoh:

すいません、また、ここのコメント欄に記事を書くことになろうとは。
ロリポップだしUTF=8だし書かれたとおりでいいだろう、
と思ってやったら、懐かしいアラートが……。
ロリポップだから、心配するところがなお、わからない……。

ogoh:

すいません、指定するディレクトリが間違ってました。

としなきゃいけなかった。
僕の場合はインデックスのディレクトリが違うという
単純なことに気づきませんでした。
申し訳ない。

HTMLタグは無効なので何がどうなっているのか分かりませんが、
無事できたようで何よりです。

コメントを投稿

(コメントは、オーナーが承認するまで表示されません)

About

2004年03月01日 15:38に投稿されたエントリーのページです。

ひとつ前の投稿は「「超」整理手帳特製カバー第三次生産分販売開始」です。

次の投稿は「閲覧中のページのタイトルとURLをクリップボードにコピー」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35