Windows版のiTunesで現在聴いてる曲の情報を取得する(Javascript編)
ブックマークレット
「Windows版のiTunesで現在聴いてる曲の情報を取得する(C#編) - IIJIMASの日記」を踏まえて、Internet Explorerで使用できるはずのJavascriptブックマークレットを作成してみました。
//iTunesで現在聴いてる曲の曲名、アルバム名、アーティスト名を文字列を作成にするブックマークレット javascript:a=new%20ActiveXObject("iTunes.Application");t=a.CurrentTrack;document.writeln("[聴いてる♪]「"+t.Name+"‐"+t.Album+"」by%20"+t.Artist);
実行してみると…通常の設定では動きません。通常セキュリティの関係で、ActiveXObjectを生成できないようになっているようです。
適当な、TXTかHTMをローカルファイルを新規作成して、それをIEで開いてる時に実行すると、実行しても大丈夫か?というようなのダイアログが出ますが、[はい]をクリックすると
iTunesで現在聴いてる曲の曲名、アルバム名、アーティスト名を文字列を表示できます。
ローカルHTMLファイル
同じことですが、一行JavascriptだとカスタマイズしづらいのでローカルHTMLを作成してもできます。これをお気に入りに入れてしまえば、ブックマークレットと同じように使用できます。これも実行確認のダイアログが出てしまいます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <script type="text/javascript"> function getCurrentMusic(){ var iTunesApp = new ActiveXObject("iTunes.Application"); var track = iTunesApp.CurrentTrack; var name = track.Name; var album = track.Album; var artist = track.Artist; var text = "[聴いてる♪]"; text += "「"+name+" - "+album+"」 by "+artist; return text; }; function writeCurrentMusic(){ document.writeln("<textarea cols=100 rows=3>" + getCurrentMusic() + "</textarea>"); }; </script> </head> <body onload="writeCurrentMusic();"> </body> </html>
Windowsガジェット(Windows Vista/Windows 7)
ローカルHTML作成したのなら、Windows Vista以降で使えるサイドバーガジェットにしてしまえばよいのでは?と思い、作成してみました。
GetCurrentITunesTrack.gadget
GetCurrentITunesTrack.gadgetは実はGetCurrentITunesTrack.zipであり、中に最低限gadget.xmlというXMLとその中で指定されている、HTMLファイルが1つあれば、ガジェットになります。
GetCurrentITunesTrack.gadgetの中身は以下の2ファイルだけです。
gadget.xml
<?xml version="1.0" encoding="utf-8" ?> <gadget> <name>GetCurrentITunesTrack</name> <version>1.0.0.0</version> <hosts> <host name="sidebar"> <base type="HTML" apiVersion="1.0.0" src="GetCurrentITunesTrack.html" /> <permissions>Full</permissions> <platform minPlatformVersion="1.0" /> </host> </hosts> </gadget>
GetCurrentITunesTrack.html
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>GetiTunesCurrentMusic</title> <style type="text/css"> .blackback{ background:black; color:#D0FFFF; border-color:white; } .bodydimension{ width:550px; height:100px; } </style> <script type="text/javascript"> function getCurrentMusic(){ var text = ""; var iTunesApp = new ActiveXObject("iTunes.Application"); var track = iTunesApp.CurrentTrack; if (track!=null){ var name = track.Name; var album = track.Album; var artist = track.Artist; var text = "[聴いてる♪]"; text += "「"+name+" - "+album+"」 by "+artist; }else{ text += "iTunesで聴いている曲はありません。"; } return text; }; var timer; function writeCurrentMusic(){ clearTimeout(timer); var content=document.getElementById('content'); content.innerHTML="<textarea cols=50 rows=3 id='ta1' class='blackback'>" + getCurrentMusic() + "</textarea>"; ta1.select(); timer=setTimeout("writeCurrentMusic()",30000); }; </script> </head> <body onload="writeCurrentMusic();" class="blackback bodydimension" onclick="writeCurrentMusic();"> <div id="content"> </div> </body> </html>