コマンドラインから歌詞を取得する

GW中は開発が捗る。今日はこちらを参考にiTunesに登録されている歌詞をコマンドラインから取得してテキストファイルに書き出す作業をするスクリプトを書いてみた。以下は、「スピッツ年代順」というプレイリストに入っている曲の歌詞を、改行を半角スペースに変換した形で「Spitz.txt」に出力するJScriptである。これを実行すると、一行に一曲の歌詞が書かれたテキストファイルが生成される。

var fs = WScript.CreateObject("Scripting.FileSystemObject");
var file = fs.OpenTextFile("Spitz.txt", 2, true);

var iTunesApp = WScript.CreateObject("iTunes.Application");
var playlist = iTunesApp.LibrarySource.Playlists.ItemByName("スピッツ年代順");
var str = ""

if (playlist) {
  var numTracks = playlist.Tracks.Count;
  for ( var i = 1; i <= numTracks; i++) {
    var track = playlist.Tracks(i);
    var lyrics = track.Lyrics;
    var lyricsDeleteBreak = lyrics.replace(/[\n\r]/g, " ");
    str = str + lyricsDeleteBreak + "\n";
  }
  file.WriteLine(str);
}

file.Close();
fs = null;
WScript.Echo("終了");

これをiTunes.jsなどとして保存し実行すると以下のようなテキストファイルが生成する。たまに空行が入るのは歌詞が存在しない曲である(39行目はリコシェ号)。

f:id:I-was-a-Ki:20170505100926j:plain