「便利なスクリプト」の編集履歴(バックアップ)一覧に戻る

便利なスクリプト - (2009/09/21 (月) 23:12:34) のソース

*便利なスクリプト
利用は自己責任で!
使い方が解らなければ絶対に手を出さない!

#contents

**デッドリンク消去スクリプト
iTunesには登録されているが、元の音楽ファイルが削除などで
無くなっているリンクを消すスクリプト。

:1. スクリプトをダウンロードし、解凍する。|[[デッドリンク消去スクリプト>http://www1.atwiki.jp/itunes/?cmd=upload&act=open&pageid=17&file=%E3%83%87%E3%83%83%E3%83%89%E3%83%AA%E3%83%B3%E3%82%AF%E6%B6%88%E5%8E%BB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88.zip]]

:2. スタートメニューにでも放り込んでexe同様に使う。|iTunes立ち上げる必要なし


**再生回数変更スクリプト
//おまいらのスマートプレイリストの134レス
iTunesで再生回数を変更したい曲を選択して、下記のスクリプトを実行させると、再生回数の変更ができる。

-下記のスクリプトをテキストエディタやメモ帳などにコピペ
-15行目「(current.Name, "新しい再生回数の設定", k)」の「k」を変更したい再生回数に書き換える(半角数字で記入)
-拡張子をtxtからvbsに変更して、countedit.vbsとでも名前をつけて保存
-あとはダブルクリックして実行
  (一曲ごとに変更確認のダイアログボックスが出るので、OKボタンを押していく)

 Dim iTunesApp
 Dim Tracks, numTracks
 Dim i, k
 Dim current
 
 set iTunesApp = WScript.CreateObject("iTunes.Application")
 set iShell = CreateObject("Wscript.Shell")
 iShell.AppActivate("iTunes")
 set Tracks = iTunesApp.SelectedTracks
 numTracks = Tracks.Count
 Cnt
 
 Sub Cnt
 for i = 1 to numTracks
 set current = Tracks.Item(i)
 k = current.PlayedCount
 k = InputBox(current.Name, "新しい再生回数の設定", k)
 if k="" then Exit Sub
 current.PlayedCount = k
 next
 End Sub



**スキップした曲を抽出するスクリプト
//おまいらのスマートプレイリストの154レス
iTunesで再生をスキップした曲を抽出するスクリプト

-2行目の「シャッフル時にスキップなリスト」に抽出した記入する
-テキストエディタなどにコピペ
-拡張子をtxtからvbsに変更して、skipshuffle.vbsとでも名前をつけて保存
-あとはダブルクリックして実行

 On Error Resume Next
 
 set iTunesApp = WScript.CreateObject("iTunes.Application")
 pListName = "シャッフル時にスキップなリスト"
 set pList = iTunesApp.LibrarySource.Playlists.ItemByName(pListName)
 if pList.Count <> 0 then
 pList.Delete()
 end if
 
 set pList = iTunesApp.CreatePlayList(pListName)
 set Tracks = iTunesApp.LibraryPlaylist.Tracks
 numTracks = Tracks.Count
 
 for i = 1 to numTracks
 if Tracks.Item(i).ExcludeFromShuffle  = true then
 pList.AddTrack(Tracks.Item(i))
 end if
 next
 WScript.Echo "Job complete."

プレイリスト作って、条件満たす曲を抽出なら、for文の中のifを書き換えるだけで、いろいろできるはず。アートワークがある曲だけとか、歌詞が入ってる曲とか。

**テレビ番組・ミュージックビデオ変換スクリプト
//おまいらのスマートプレイリスト3の565レス(改良版)
iTunesのビデオをテレビ番組・ミュージックビデオに変換するスクリプト

-Windowsのvbs版での、選択した曲をテレビ番組やミュージックビデオに一括変換するプログラム。
-動かし方は、下のリストをメモ帳にコピーして、デスクトップにconvert.vbsとでもセーブしておき、iTunesで曲を選択してから、vbsファイルを起動する。

 set iTunesApp = WScript.CreateObject("iTunes.Application")
 set Tracks = iTunesApp.SelectedTracks
 numTracks = Tracks.Count
 if numTracks = 0 then
 WScript.Echo"選択ファイルがありません。終了します"
 else
 set current = Tracks.Item(1)
 if current.VideoKind = 1 then
 inString = InputBox("テレビ番組変換します。番組名未変更の時 は'-'を、スキップする場合にはEnterを押してください","テレビ番組名")
 if inString = "" then
 inString = InputBox("ミュージックビデオ変換します。アーティスト名未変更の時は'-'を、終了する場合にはEnterを押してください","アーティスト名")
 if inString <> "" then
 for i = 1 to numTracks
 set current = Tracks.Item(numTracks - i + 1)
 current.SeasonNumber = SeasonNum
 if inString <> "-" then
 current.Artist = inString
 end if
 current.Compilation = 0
 current.RememberBookmark = 0
 current.VideoKind = 2
 next
 WScript.Echo "ミュージックビデオに変換しました"
 end if
 else
 inSeason = InputBox("シーズン番号")
 if inSeason = "" then
 SeasonNum = 0
 else
 SeasonNum = CInt(inSeason)
 end if
 for i = 1 to numTracks
 set current = Tracks.Item(numTracks - i + 1)
 current.SeasonNumber = SeasonNum
 if inString <> "-" then
 current.Show = inString
 end if
 current.RememberBookmark = 0
 current.VideoKind = 3
 next
 WScript.Echo "テレビ番組に変換しました"
 end if
 else
 for i = 1 to numTracks
 set current = Tracks.Item(numTracks - i + 1)
 current.Show = ""
 current.VideoKind = 1
 next
 WScript.Echo "ムービーに復帰しました"
 end if
 end if

Web版からミュージックビデオを追加対応。ミュージックビデオにしたい人は、最初の文字列入力でEnterだけを押し、次の文字列入力でアルバム名を入れればOK。


**複数のプレイリストを順番にまとめるスクリプト
//おまいらのスマートプレイリスト4の360,368より

-Windowsのvbs版での、複数のプレイリストを順番にまとめるプログラム。
-動かし方は、下のリストをメモ帳にコピーしてから、ソース上のpPlayList()に読み取り側、pOutPlayListに書き込み側のプレイリスト名を入れて、デスクトップにAppendPlaylist.vbsとでもセーブしておき、vbsファイルを起動すると、自動的にプレイリストを作り直して、そこに指定した曲全部詰め込む。

 on error resume next
 
 set iTunesApp = WScript.CreateObject("iTunes.Application")
 dim pPlayList(4)
 pPlayList(1)="トップ 25 曲"
 pPlayList(2)="今日買った曲"
 pPlayList(3)="一週間以内に追加した曲"
 pPlayList(4)="未評価曲"
 pOutPlayList = "ShufflePlayList"
 set pOutList = iTunesApp.LibrarySource.Playlists.ItemByName(pOutPlayList)
 if pOutList.Tracks.Count <> 0 then
 pOutList.Delete()
 end if
 
 set pOutList = iTunesApp.CreatePlayList(pOutPlayList)
 
 for i = 1 to 4
 set pInputList = iTunesApp.LibrarySource.Playlists.ItemByName(pPlayList(i))
 for each Track in pInputList.Tracks
 pOutList.AddTrack(Track)
 next
 next
 
 WScript.Echo "Job complete."

** iTunesに勝手に日本語に書き換えられてしまったジャンルを英語に戻すスクリプト

iTunes7.6 以降で、再生やプロパティ参照で勝手に日本語に書き換わってしまった曲のジャンルを全て英語に戻すスクリプト。

-テキストエディタなどにコピペ
-拡張子をtxtからjsに変更して、regenre.js とでも名前をつけて保存
-あとはダブルクリックして実行

 // iTunes7、8で
 // 日本語に書き換えられてしまったジャンルたちを英語に戻す
 // by ka-ku
 
 var WshShell = WScript.CreateObject("WScript.Shell");
 
 WshShell.Popup("日本語に変えられたジャンルたちを英語に戻します\n少々お待ちください",3);
 
 // 日本語ジャンル⇒英語ジャンル対応テーブル初期化
 var genreHash = new Object();
 
 genreHash["ブルース"] = "Blues";
 genreHash["クラシックロック"] = "Classic Rock";
 genreHash["カントリー"] = "Country";
 genreHash["ダンス"] = "Dance";
 genreHash["ディスコ"] = "Disco";
 genreHash["ファンク"] = "Funk";
 genreHash["グランジ"] = "Grunge";
 genreHash["ヒップホップ"] = "Hip-Hop";
 genreHash["ジャズ"] = "Jazz";
 genreHash["メタル"] = "Metal";
 genreHash["ニューエイジ"] = "New Age";
 genreHash["オールディーズ"] = "Oldies";
 genreHash["その他"] = "Other";
 genreHash["ポップ"] = "Pop";
 genreHash["R&B"] = "R&B";
 genreHash["ラップ"] = "Rap";
 genreHash["レゲエ"] = "Reggae";
 genreHash["ロック"] = "Rock";
 genreHash["テクノ"] = "Techno";
 genreHash["インダストリアル"] = "Industrial";
 genreHash["オルタナティプ"] = "Alternative";
 genreHash["スカ"] = "Ska";
 genreHash["デスメタル"] = "Death Metal";
 genreHash["プランク"] = "Pranks";
 genreHash["サウンドトラック"] = "Soundtrack";
 genreHash["ユーロテクノ"] = "Euro-Techno";
 genreHash["アンビエント"] = "Ambient";
 genreHash["トリップホップ"] = "Trip-Hop";
 genreHash["ボーカル"] = "Vocal";
 genreHash["ジャズ+ファンク"] = "Jazz+Funk";
 genreHash["フュージョン"] = "Fusion";
 genreHash["トランス"] = "Trance";
 genreHash["クラシック"] = "Classical";
 genreHash["インストゥルメンタル"] = "Instrumental";
 genreHash["アシッド"] = "Acid";
 genreHash["ハウス"] = "House";
 genreHash["ゲーム"] = "Game";
 genreHash["サウンドクリップ"] = "Sound Clip";
 genreHash["ゴスペル"] = "Gospel";
 genreHash["ノイズ"] = "Noise";
 genreHash["オルターナティブロック"] = "AlternRock";
 genreHash["ベース"] = "Bass";
 genreHash["ソウル"] = "Soul";
 genreHash["パンク"] = "Punk";
 genreHash["スペース"] = "Space";
 genreHash["メディテーティブ"] = "Meditative";
 genreHash["インストゥルメンタルポップ"] = "Instrumental Pop";
 genreHash["インストゥルメンタルロック"] = "Instrumental Rock";
 genreHash["エスニック"] = "Ethnic";
 genreHash["ゴシック"] = "Gothic";
 genreHash["ダークウェーブ"] = "Darkwave";
 genreHash["テクノ - インダストリアル"] = "Techno-Industrial";
 genreHash["エレクトロニック"] = "Electronic";
 genreHash["ポップ - フォーク"] = "Pop-Folk";
 genreHash["ユーロダンス"] = "Eurodance";
 genreHash["ドリーム"] = "Dream";
 genreHash["サザンロック"] = "Southern Rock";
 genreHash["コメディ"] = "Comedy";
 genreHash["カルト"] = "Cult";
 genreHash["ギャングスター"] = "Gangsta";
 genreHash["トップ 40"] = "Top 40";
 genreHash["クリスチャンラップ"] = "Christian Rap";
 genreHash["ポップ/ファンク"] = "Pop/Funk";
 genreHash["ジャングル"] = "Jungle";
 genreHash["ネイティブアメリカン"] = "Native American";
 genreHash["キャバレー"] = "Cabaret";
 genreHash["ニューウェーブ"] = "New Wave";
 genreHash["サイケデリック"] = "Psychedelic";
 genreHash["レイブ"] = "Rave";
 genreHash["ショートーン"] = "Showtunes";
 genreHash["トレーラー"] = "Trailer";
 genreHash["ローファイ"] = "Lo-Fi";
 genreHash["トライバル"] = "Tribal";
 genreHash["アシッドパンク"] = "Acid Punk";
 genreHash["アシッドジャズ"] = "Acid Jazz";
 genreHash["ポルカ"] = "Polka";
 genreHash["レトロ"] = "Retro";
 genreHash["ミュージカル"] = "Musical";
 genreHash["ロックンロール"] = "Rock & Roll";
 genreHash["ハードロック"] = "Hard Rock";
 genreHash["フォーク"] = "Folk";
 genreHash["フォークロック"] = "Folk-Rock";
 genreHash["ナショナルフォーク"] = "National Folk";
 genreHash["スウィング"] = "Swing";
 genreHash["ファストフュージョン"] = "Fast Fusion";
 genreHash["ビーボップ"] = "Bebop";
 genreHash["ラテン"] = "Latin";
 genreHash["リバイバル"] = "Revival";
 genreHash["ケルティック"] = "Celtic";
 genreHash["ブルーグラス"] = "Bluegrass";
 genreHash["アバンギャルド"] = "Avantgarde";
 genreHash["ゴシックロック"] = "Gothic Rock";
 genreHash["プログレッシブロック"] = "Progressive Rock";
 genreHash["サイケデリックロック"] = "Psychedelic Rock";
 genreHash["シンフォニックロック"] = "Symphonic Rock";
 genreHash["スローロック"] = "Slow Rock";
 genreHash["ビッグバンド"] = "Big Band";
 genreHash["コーラス"] = "Chorus";
 genreHash["イージーリスニング"] = "Easy Listening";
 genreHash["アコースティック"] = "Acoustic";
 genreHash["ユーモア"] = "Humor";
 genreHash["スピーチ"] = "Speech";
 genreHash["シャンソン"] = "Chanson";
 genreHash["オペラ"] = "Opera";
 genreHash["室内音楽"] = "Chamber Music";
 genreHash["ソナタ"] = "Sonata";
 genreHash["交響曲"] = "Symphony";
 genreHash["ブーティーベース"] = "Booty Bass";
 genreHash["プライマス"] = "Primus";
 genreHash["ポーングルーブ"] = "Porn Groove";
 genreHash["サタイア"] = "Satire";
 genreHash["スロージャム"] = "Slow Jam";
 genreHash["クラブ"] = "Club";
 genreHash["タンゴ"] = "Tango";
 genreHash["サンバ"] = "Samba";
 genreHash["フォークロア"] = "Folklore";
 genreHash["バラード"] = "Ballad";
 genreHash["パワーバラード"] = "Power Ballad";
 genreHash["リズミックソウル"] = "Rhythmic Soul";
 genreHash["フリースタイル"] = "Freestyle";
 genreHash["デュエット"] = "Duet";
 genreHash["パンクロック"] = "Punk Rock";
 genreHash["ドラムソロ"] = "Drum Solo";
 genreHash["アカペラ"] = "A Capella";
 genreHash["ユーロハウス"] = "Euro-House";
 genreHash["ダンスホール"] = "Dance Hall";
 genreHash["オルタナティプ"] = "Alternative";
 genreHash["ブック&スポークン"] = "Books & Spoken";
 genreHash["ブルース/R&B"] = "Blues/R&B";
 genreHash["チルドレン・ミュージック"] = "Children’s Music";
 genreHash["クラシック"] = "Classical";
 genreHash["カントリー"] = "Country";
 genreHash["ダンス"] = "Dance";
 genreHash["イージーリスニング"] = "Easy Listening";
 genreHash["エレクトロニック"] = "Electronic";
 genreHash["フォーク"] = "Folk";
 genreHash["ハウス"] = "House";
 genreHash["インダストリアル"] = "Industrial";
 genreHash["テクノ"] = "Techno";
 genreHash["トランス"] = "Trance";
 genreHash["ヒップホップ/ラップ"] = "Hip Hop/Rap";
 genreHash["ホリデーミュージック"] = "Holiday";
 genreHash["ジャズ"] = "Jazz";
 genreHash["ニューエイジ"] = "New Age";
 genreHash["ポップ"] = "Pop";
 genreHash["宗教音楽"] = "Religious";
 genreHash["ロック"] = "Rock";
 genreHash["サウンドトラック"] = "Soundtrack";
 genreHash["無分類"] = "Unclassifiable";
 genreHash["ワールド"] = "World";
 genreHash["未定義"] = "Undefined";
 genreHash["アダルトコンテンポラリー"] = "Adult Contemporary";
 genreHash["オルタナティプロック"] = "Alternative Rock";
 genreHash["チルドレン・ミュージック"] = "Children’s Music";
 genreHash["クラシック"] = "Classical";
 genreHash["コンテポラリー・クリスチャン"] = "Contemporary Christian";
 genreHash["カントリー"] = "Country";
 genreHash["ダンス"] = "Dance";
 genreHash["イージーリスニング"] = "Easy Listening";
 genreHash["エロティック"] = "Erotic";
 genreHash["フォーク"] = "Folk";
 genreHash["ゴスペル"] = "Gospel";
 genreHash["ヒップホップ"] = "Hip Hop";
 genreHash["ジャズ"] = "Jazz";
 genreHash["ラテン"] = "Latin";
 genreHash["ミュージカル"] = "Musical";
 genreHash["ニューエイジ"] = "New Age";
 genreHash["オペラ"] = "Opera";
 genreHash["オペレッタ"] = "Operetta";
 genreHash["ポップミュージック"] = "Pop Music";
 genreHash["ラップ"] = "RAP";
 genreHash["レゲエ"] = "Reggae";
 genreHash["ロックミュージック"] = "Rock Music";
 genreHash["リズム&ブルース"] = "Rhythm & Blues";
 genreHash["サウンドエフェクト"] = "Sound Effects";
 genreHash["サウンドトラック"] = "Sound Track";
 genreHash["スポークンワード"] = "Spoken Word";
 genreHash["ワールドミュージック"] = "World Music";
 
 try {
 	var iTunes = WScript.CreateObject("iTunes.Application");
 
 }catch(e){
 	WshShell.Popup(e.message+"\niTunesのオープンに失敗しました");
 	WScript.Quit(1);
 }
 
 var changeCount = 0;
 
 // ライブラリの全曲をなめて日本語ジャンルの魔法を解く
 var tracks = iTunes.LibraryPlayList.Tracks;
 var numTracks = tracks.Count;
 for(var i = 1; i <= numTracks; i++){
 	var curTrack = tracks.Item(i);
 	var curGenre = curTrack.Genre;
 	var goodGenre = genreHash[curGenre];
 	if(goodGenre != undefined){			// 該当ジャンル発見!
 		changeCount++;
 		curTrack.Genre = "aaa";		// ダミー書き換え
 		curTrack.Genre = goodGenre;		// 本ちゃん書き換え
 	// 	WScript.Echo(curTrack.Name+" "+curGenre+"->"+goodGenre);
 	}
 }
 
 if(changeCount > 0){
 	WshShell.Popup(changeCount + "曲修正しました");
 }else{
 	WshShell.Popup("修正が必要な曲はありませんでした");
 }
 

** iTunesでジャンルを勝手に日本語に書き換えられないようにするスクリプト

iTunes7.6(およびそれ以上?)でジャンルを勝手に日本語に書き換えられないようにするスクリプト。日本語リソースファイルのジャンル部分だけを英語に置き換える。

-テキストエディタなどにコピペ
-拡張子をtxtからjsに変更して、engenre.js とでも名前をつけて保存
-あとはダブルクリックして実行

注)もし「c:\.. \Localizable.strings がみつかりません」とエラーが出た場合は iTunes がインストールされている場所が C:\Program Files\iTunes じゃないので、どこにインストールされているか探して、ソースコードの resourceDir のディレクトリ名を書き換えて再度実行のこと。

 // iTunes7.6で
 // 言語リソースファイルの日本語のジャンルを英語に置換する
 // by ka-ku
 
 var WshShell = WScript.CreateObject("WScript.Shell");
 
 // resourceDir: 日本語のリソースファイルがあるフォルダ(自分の環境に合わせて書き換える)
 var resourceDir = "C:\\Program Files\\iTunes\\iTunes.Resources\\ja.lproj";
 
 // resourceFile: リソースファイル名
 var resourceFile = "Localizable.strings";
 
 var resourcePath = resourceDir + "\\" + resourceFile;
 var backupPath = resourcePath+".org";		// バックアップファイル名には ".org" をつける
 
 var convHash = new Object();
 initConvHash();
 
 
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 if (! fso.FileExists(resourcePath)){
 	WshShell.Popup(resourcePath+" がみつかりません");
 }else{
 	try{
 		WshShell.Popup(resourcePath+"\nの日本語ジャンルを英語に書き換えます");
 		fso.CopyFile( resourcePath, backupPath, true);
 		var iStream = fso.OpenTextFile(backupPath,1,false,-1); // read,noOverwrite, unicode
 		var oStream = fso.CreateTextFile(resourcePath, true,true); // overwrite, unicode
 
 		while(! iStream.AtEndOfStream){
 			var line =  iStream.ReadLine();
 			if(line.match(/^"92/)){	// "92 で始まる行が置換対象
 				line = convLine(line);
 			}
 			oStream.Write(line+"\n");
 		}
 
 		oStream.Close();
 		iStream.Close();
 		WshShell.Popup("終了しました");
 	}catch(err){
 		WshShell.Popup("エラー:" + err.message);
 	}
 }
 
 // 置換対象行を置換
 function convLine(line){
 	var id = line.substring(1,9);	// 92XX.XXX を ID として切り出す
 	var engGenre = convHash[id];
 	if(! engGenre){
 		return line;	// english genre is not found !
 	}
 	
 	return "\"" + id + "\" = \"" + engGenre + "\";";
 }
 
 // 変換用ハッシュの初期化
 function initConvHash(){
 	convHash["9200.001"] = "Blues";
 	convHash["9200.002"] = "Classic Rock";
 	convHash["9200.003"] = "Country";
 	convHash["9200.004"] = "Dance";
 	convHash["9200.005"] = "Disco";
 	convHash["9200.006"] = "Funk";
 	convHash["9200.007"] = "Grunge";
 	convHash["9200.008"] = "Hip-Hop";
 	convHash["9200.009"] = "Jazz";
 	convHash["9200.010"] = "Metal";
 	convHash["9200.011"] = "New Age";
 	convHash["9200.012"] = "Oldies";
 	convHash["9200.013"] = "Other";
 	convHash["9200.014"] = "Pop";
 	convHash["9200.015"] = "R&B";
 	convHash["9200.016"] = "Rap";
 	convHash["9200.017"] = "Reggae";
 	convHash["9200.018"] = "Rock";
 	convHash["9200.019"] = "Techno";
 	convHash["9200.020"] = "Industrial";
 	convHash["9200.021"] = "Alternative";
 	convHash["9200.022"] = "Ska";
 	convHash["9200.023"] = "Death Metal";
 	convHash["9200.024"] = "Pranks";
 	convHash["9200.025"] = "Soundtrack";
 	convHash["9200.026"] = "Euro-Techno";
 	convHash["9200.027"] = "Ambient";
 	convHash["9200.028"] = "Trip-Hop";
 	convHash["9200.029"] = "Vocal";
 	convHash["9200.030"] = "Jazz+Funk";
 	convHash["9200.031"] = "Fusion";
 	convHash["9200.032"] = "Trance";
 	convHash["9200.033"] = "Classical";
 	convHash["9200.034"] = "Instrumental";
 	convHash["9200.035"] = "Acid";
 	convHash["9200.036"] = "House";
 	convHash["9200.037"] = "Game";
 	convHash["9200.038"] = "Sound Clip";
 	convHash["9200.039"] = "Gospel";
 	convHash["9200.040"] = "Noise";
 	convHash["9200.041"] = "AlternRock";
 	convHash["9200.042"] = "Bass";
 	convHash["9200.043"] = "Soul";
 	convHash["9200.044"] = "Punk";
 	convHash["9200.045"] = "Space";
 	convHash["9200.046"] = "Meditative";
 	convHash["9200.047"] = "Instrumental Pop";
 	convHash["9200.048"] = "Instrumental Rock";
 	convHash["9200.049"] = "Ethnic";
 	convHash["9200.050"] = "Gothic";
 	convHash["9200.051"] = "Darkwave";
 	convHash["9200.052"] = "Techno-Industrial";
 	convHash["9200.053"] = "Electronic";
 	convHash["9200.054"] = "Pop-Folk";
 	convHash["9200.055"] = "Eurodance";
 	convHash["9200.056"] = "Dream";
 	convHash["9200.057"] = "Southern Rock";
 	convHash["9200.058"] = "Comedy";
 	convHash["9200.059"] = "Cult";
 	convHash["9200.060"] = "Gangsta";
 	convHash["9200.061"] = "Top 40";
 	convHash["9200.062"] = "Christian Rap";
 	convHash["9200.063"] = "Pop/Funk";
 	convHash["9200.064"] = "Jungle";
 	convHash["9200.065"] = "Native American";
 	convHash["9200.066"] = "Cabaret";
 	convHash["9200.067"] = "New Wave";
 	convHash["9200.068"] = "Psychedelic";
 	convHash["9200.069"] = "Rave";
 	convHash["9200.070"] = "Showtunes";
 	convHash["9200.071"] = "Trailer";
 	convHash["9200.072"] = "Lo-Fi";
 	convHash["9200.073"] = "Tribal";
 	convHash["9200.074"] = "Acid Punk";
 	convHash["9200.075"] = "Acid Jazz";
 	convHash["9200.076"] = "Polka";
 	convHash["9200.077"] = "Retro";
 	convHash["9200.078"] = "Musical";
 	convHash["9200.079"] = "Rock & Roll";
 	convHash["9200.080"] = "Hard Rock";
 	convHash["9200.081"] = "Folk";
 	convHash["9200.082"] = "Folk-Rock";
 	convHash["9200.083"] = "National Folk";
 	convHash["9200.084"] = "Swing";
 	convHash["9200.085"] = "Fast Fusion";
 	convHash["9200.086"] = "Bebop";
 	convHash["9200.087"] = "Latin";
 	convHash["9200.088"] = "Revival";
 	convHash["9200.089"] = "Celtic";
 	convHash["9200.090"] = "Bluegrass";
 	convHash["9200.091"] = "Avantgarde";
 	convHash["9200.092"] = "Gothic Rock";
 	convHash["9200.093"] = "Progressive Rock";
 	convHash["9200.094"] = "Psychedelic Rock";
 	convHash["9200.095"] = "Symphonic Rock";
 	convHash["9200.096"] = "Slow Rock";
 	convHash["9200.097"] = "Big Band";
 	convHash["9200.098"] = "Chorus";
 	convHash["9200.099"] = "Easy Listening";
 	convHash["9200.100"] = "Acoustic";
 	convHash["9200.101"] = "Humor";
 	convHash["9200.102"] = "Speech";
 	convHash["9200.103"] = "Chanson";
 	convHash["9200.104"] = "Opera";
 	convHash["9200.105"] = "Chamber Music";
 	convHash["9200.106"] = "Sonata";
 	convHash["9200.107"] = "Symphony";
 	convHash["9200.108"] = "Booty Bass";
 	convHash["9200.109"] = "Primus";
 	convHash["9200.110"] = "Porn Groove";
 	convHash["9200.111"] = "Satire";
 	convHash["9200.112"] = "Slow Jam";
 	convHash["9200.113"] = "Club";
 	convHash["9200.114"] = "Tango";
 	convHash["9200.115"] = "Samba";
 	convHash["9200.116"] = "Folklore";
 	convHash["9200.117"] = "Ballad";
 	convHash["9200.118"] = "Power Ballad";
 	convHash["9200.119"] = "Rhythmic Soul";
 	convHash["9200.120"] = "Freestyle";
 	convHash["9200.121"] = "Duet";
 	convHash["9200.122"] = "Punk Rock";
 	convHash["9200.123"] = "Drum Solo";
 	convHash["9200.124"] = "A Capella";
 	convHash["9200.125"] = "Euro-House";
 	convHash["9200.126"] = "Dance Hall";
 	convHash["9201.001"] = "Alternative";
 	convHash["9201.002"] = "Books & Spoken";
 	convHash["9201.003"] = "Blues/R&B";
 	convHash["9201.004"] = "Children’s Music";
 	convHash["9201.005"] = "Classical";
 	convHash["9201.006"] = "Country";
 	convHash["9201.007"] = "Dance";
 	convHash["9201.008"] = "Easy Listening";
 	convHash["9201.009"] = "Electronic";
 	convHash["9201.010"] = "Folk";
 	convHash["9201.011"] = "House";
 	convHash["9201.012"] = "Industrial";
 	convHash["9201.013"] = "Techno";
 	convHash["9201.014"] = "Trance";
 	convHash["9201.015"] = "Hip Hop/Rap";
 	convHash["9201.016"] = "Holiday";
 	convHash["9201.017"] = "Jazz";
 	convHash["9201.018"] = "New Age";
 	convHash["9201.019"] = "Pop";
 	convHash["9201.020"] = "Religious";
 	convHash["9201.021"] = "Rock";
 	convHash["9201.022"] = "Soundtrack";
 	convHash["9201.023"] = "Unclassifiable";
 	convHash["9201.024"] = "World";
 	convHash["9202.001"] = "Undefined";
 	convHash["9202.002"] = "Adult Contemporary";
 	convHash["9202.003"] = "Alternative Rock";
 	convHash["9202.004"] = "Children’s Music";
 	convHash["9202.005"] = "Classical";
 	convHash["9202.006"] = "Contemporary Christian";
 	convHash["9202.007"] = "Country";
 	convHash["9202.008"] = "Dance";
 	convHash["9202.009"] = "Easy Listening";
 	convHash["9202.010"] = "Erotic";
 	convHash["9202.011"] = "Folk";
 	convHash["9202.012"] = "Gospel";
 	convHash["9202.013"] = "Hip Hop";
 	convHash["9202.014"] = "Jazz";
 	convHash["9202.015"] = "Latin";
 	convHash["9202.016"] = "Musical";
 	convHash["9202.017"] = "New Age";
 	convHash["9202.018"] = "Opera";
 	convHash["9202.019"] = "Operetta";
 	convHash["9202.020"] = "Pop Music";
 	convHash["9202.021"] = "RAP";
 	convHash["9202.022"] = "Reggae";
 	convHash["9202.023"] = "Rock Music";
 	convHash["9202.024"] = "Rhythm & Blues";
 	convHash["9202.025"] = "Sound Effects";
 	convHash["9202.026"] = "Sound Track";
 	convHash["9202.027"] = "Spoken Word";
 	convHash["9202.028"] = "World Music";
 }

**アートワーク、歌詞識別スクリプト
iTunesでアートワーク、歌詞を付加した曲を識別するために、Group欄にARTWORK, LYRICSの文字をコンマ区切りで付加します。

-下記のスクリプトをテキストエディタやメモ帳などにコピペ
-拡張子をtxtからvbsに変更して、searchartwork.vbsとでも名前をつけて保存
-iTunes上で曲を選択してから、スクリプトをダブルクリックして実行

注意:アートワーク,歌詞の削除には追従しませんので、そのときには一端Group欄の中身を手動で消去してください。

 On Error Resume Next
 
 set iTunesApp = WScript.CreateObject("iTunes.Application")
 set Tracks = iTunesApp.SelectedTracks
 numTracks = Tracks.Count
 dim curbpm, art, ly
 dim curTrack, change
 dim IndexKey
 dim curDic
 set curDic = WScript.CreateObject("Scripting.Dictionary")
 
 if numTracks = 0 then
     WScript.Echo"選択ファイルがありません。終了します"
 else
     for i = 0 to numTracks - 1
         set curTrack = Tracks(numTracks - i  )
         call getGroups(curDic, curTrack.Grouping)
         change = 0
         if not (curDic.Exists("ARTWORK")) then
             if curTrack.Artwork.count <> 0 then
                 change = 1
                 curDic.Add "ARTWORK", 1
             end if
         end if
         if not (curDic.Exists("LYRICS")) then
             if len(curTrack.Lyrics) <> 0 then
                 change = 1
                 curDic.Add "LYRICS", 1
             end if
         end if
         if change = 1 then
             curTrack.Grouping = setGroups(curDic)
         end if
     next
 end if
 WScript.Echo "Job complete."
 
 sub getGroups(objDic, Group)
     IndexKey = split(Group, ",", -1, vbTextCompare)
     objDic.RemoveAll
     for j = LBound(IndexKey) to UBound(IndexKey)
         objDic.Add IndexKey(j), 1
     next
 end sub
 
 function setGroups(objDic)
     dim rValue
     dim strArray
 
     strArray = objDic.Keys
     rValue = ""
     for i = 0 to objDic.Count - 1
         if i <> 0 then rValue = rValue & ","
         rValue = rValue & strArray(i)
     next
     setGroups = rValue
 end function

**再生回数、レーティング移行スクリプト

iTunesで新しくCD取り込み直したときなどに、再生回数とレーティングを新規曲にコピーします。

-下記のスクリプトをテキストエディタやメモ帳などにコピペ
-拡張子をtxtからvbsに変更して、copycount.vbsとでも名前をつけて保存
-iTunes上で新旧両方の曲を選択してから、スクリプトをダブルクリックして実行

動作内容:アーティストやアルバム名を無視し、同一トラック番号の曲で再生回数の最大を求め、その値を同一トラック番号の曲に適応します。
このため、トラック番号がきちんとついていれば、アルバム全曲を一度に処理もできます。
逆に、トラック番号がついていなければ全部同じ数値に上書きされます。

 set iTunesApp = WScript.CreateObject("iTunes.Application")
 set Tracks = iTunesApp.SelectedTracks
 numTracks = Tracks.Count
 dim PlayCount(100)
 dim Rate(100)
 
 if numTracks = 0 then
	WScript.Echo"選択ファイルがありません。終了します"	
 else
	for i = 1 to numTracks
		set current = Tracks.Item(numTracks - i + 1)
		TNumber = current.TrackNumber
		if TNumber <> 0 then
			if PlayCount(TNumber) < current.PlayedCount then
				PlayCount(TNumber) = current.PlayedCount
			end if
			if Rate(TNumber) < current.Rating then
				Rate(TNumber) = current.Rating
			end if
		end if
	next
 
	for i = 1 to numTracks
		set current = Tracks.Item(numTracks - i + 1)
		TNumber = current.TrackNumber
		if TNumber <> 0 then
			current.PlayedCount = PlayCount(TNumber)
			current.Rating = Rate(TNumber)
		end if
	next
 end if
 
 WScript.Echo"End of Job"	

**最大ディスク番号未記述抽出スクリプト

iTunesでディスク番号は記述したが、最大ディスク番号は記述していないという曲をプレイリストに抽出します。

-下記のスクリプトをテキストエディタやメモ帳などにコピペ
-拡張子をtxtからvbsに変更して、nodiscnum.vbsとでも名前をつけて保存
-iTunes起動状態で、スクリプトをダブルクリックして実行

動作内容:ディスク番号は記述しているが、最大ディスク番号を書き込んでいない曲だけを、未ナンバー曲リストという名前のプレイリストに抽出します。このとき、同じ名前のプレイリストがあれば、中身を消してから使いますので気をつけてください。

なお、このコードの条件文を変更すると、いろいろな条件の曲の抽出に使えると思います。

 On Error Resume Next
 
 set iTunesApp = WScript.CreateObject("iTunes.Application")
 pListName = "未ナンバー曲リスト"
 set pList = iTunesApp.LibrarySource.Playlists.ItemByName(pListName)
 if pList.Count <> 0 then
   pList.Delete()	
 end if
 
 set pList = iTunesApp.CreatePlayList(pListName)
 for each Track in iTunesApp.LibraryPlayList.Tracks
   if Track.DiscCount = 0 and Track.DiscNumber <> 0 then
     pList.AddTrack(Track)
   end if
 next
 WScript.Echo "Job complete."

**レーティングの☆消去スクリプト

iTunesが勝手につける☆☆☆を見かけ上消すスクリプトです。

-下記のスクリプトをテキストエディタやメモ帳などにコピペ
-拡張子をtxtからvbsに変更して、EraseRate.vbsとでも名前をつけて保存
-iTunes起動状態で、曲を選択してから、スクリプトをダブルクリックして実行

動作内容:Rating値に1を設定しています。iTunes内部的にはレートは0-100の範囲で設定されており、★1つがRatingで20に相当します。Rating=0だとコンピュータが自動計算しますので、1を設定して、★がつかないが、自動計算はさせないという状態を作り出しています。

なお、このプログラムは起動後にウィンドウのフォーカスをiTunesに切り替えます。iTunes9のバグ回避のためですので、処理終了までそのままお待ちください。

 set iTunesApp = WScript.CreateObject("iTunes.Application")
 Set iShell = CreateObject("Wscript.Shell")
 iShell.AppActivate("iTunes")
 set Tracks = iTunesApp.SelectedTracks
 
 BtnCode = iShell.popup("曲、アルバムどちらの☆を消しますか?曲(はい), アルバム(いいえ)", 0,"選択",3)
 Select Case BtnCode
   Case 6
     for i = 1 to Tracks.Count
       Tracks.Item(i).Rating = 1
     next
   Case 7
     for i = 1 to Tracks.Count
       Tracks.Item(i).AlbumRating = 1
     next
 End Select
 
 WScript.Echo "Job complete."
人気記事ランキング
目安箱バナー