コマンドラインからiTunesの曲を変更する
コマンドラインの文字列で、iTunesに登録されている曲の中から、それっぽい曲を再生するperlスクリプトのサンプルです。
で、大塚愛のさくらんぼが流れるようなプログラムです。
iTunesが起動してから実行するとスムーズです。
一応、iTunesが起動していなかったら、iTunesを起動してから曲を再生し始めようとしますが、起動に時間がかかる場合失敗することがあります。
使い道はありそうですが、よくわかりません。
ActivePerlとWin32-OLEのインストールが必要です。
use strict; use Win32::OLE; sub print_OLE_Error { my $error = Win32::OLE->LastError(); print STDERR "$error\n"; } if(@ARGV != 1) { ### 第1引数で検索文字列を指定 print STDERR "Usage:$0 (Search Text)\n"; exit; } my $search_text = shift @ARGV; my $itunes = Win32::OLE->new('iTunes.Application') or die "oops\n"; my $library = $itunes->LibraryPlaylist; my $tracks = $library->Tracks; my $count = $tracks->Count; ### 第2引数の数で検索するフィールドを変えることが出来る ### 0:全部 1:見えてるフィールドのみ 2:アーティスト名 ### 3:アルバム名 4:コンポーザ 5:曲名 my $track_collection = $library->Search($search_text,0); if ($track_collection != 0) { my $search_count = $track_collection->Count(); print "$search_text : $search_count Tracks\n"; my $track = $track_collection->item(1); if($track != 0) { print $track."\n"; print "Artist:". $track->Artist(). " Bitrate:". $track->Bitrate(). " Name:". $track->Name() ."\n"; $track->Play(); } } else { print "Search Not Found\n"; }
iTunes COM APIで検索までやってくれるのは楽ですね。
追記:
さっき気がついたんですが、曲を変更したあと、検索で見つかった曲だけの再生になっちゃいますので注意が必要です。