前々回の投稿の後半部分、CDをインポートしたあとスマートプレイリストを使って実現していた操作の自動化です。
iPodの通常の使用ではこのようにプレイリストを作らなくてもライブラリをそのまま転送してしまえば、iPod上のアーティストメニューやアルバムメニューから探していけて困らないわけです。でも手探りで使うとなるとプレイリストの作成は必須のように思えます。まだiPodを手に入れて一週間の人間なので、他にもっといい方があるのかもしれませんが、とにかく作ってみました。
注意書き
・これはCDの内容をインポートした直後に実行するためのスクリプトです。
・CDはドライブに挿入されたままの状態で実行します。
・iTunesが起動していなくても動くはずですが、わざわざ終了させておく必要はありません。
・CDのアルバム名でプレイリストを作成します。
・CDが見つからないときは、何もせずに終了します。
・複数ドライブがあり複数の音楽CDが見つかった場合も何もしません。
・iTunesのライブラリ上にすでに同じアルバム名で登録されている曲がある場合はCDの内容とは違うリストになるかもしれません。
・このスクリプトは自己責任で使ってくださいね。
var iTunesApp = WScript.CreateObject("iTunes.Application");
var sources = iTunesApp.Sources;
var numSources = sources.Count;
var countCD = 0;
var albumName;
for ( var i = 1; i <= numSources; i++ )
{
var source = sources.Item(i);
if ( source.kind == 3 )
{
countCD ++;
if( countCD > 1)
break;
albumName = source.Name;
}
}
if( countCD == 0 )
{
WScript.Echo("AudioCDが見つかりません。");
}
else if( countCD == 1 )
{
WScript.Echo("AudioCD「" + albumName + "」が見つかりました。" );
var mainLibrary = iTunesApp.LibraryPlaylist;
var tracks = mainLibrary.Tracks;
var numTracks = tracks.Count;
var albumArray = new Array();
for (var i = 1; i <= numTracks; i++)
{
var currTrack = tracks.Item(i);
if ( currTrack.Album == albumName )
albumArray.push(currTrack);
}
// WScript.Echo("このアルバムのインポートされている曲数は " + albumArray.length + " です。" );
if ( albumArray.length > 0 )
{
var albumPlaylist = iTunesApp.CreatePlaylist(albumName);
for (var trackIndex in albumArray)
{
var currTrack = albumArray[trackIndex];
albumPlaylist.AddTrack(currTrack);
}
WScript.Echo("プレイリスト「" + albumName + "」を作成しました。" );
}
else
{
WScript.Echo("このAudioCDの内容はまだライブラリにインポートされていません。");
}
}
else
{
WScript.Echo("コンピュータ上にAudioCDが2つ以上見つかりました。処理を中止します。");
}