Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード Twitter

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2010-11-16

[][]iTunesでAACをMP3に変換して新規プレイリストに入れるの巻。後片付けもちゃんとしないとね。

みなさまは作業用BGMなどどうしておられるのでせうか? 仕事ちうにiTunesを立ち上げっぱなしにしてBGMを流すのは、なんだかHDDに優しくないような気がする小心者です。なので、気が向いたらMP3 CDにしてCDプレーヤーで流すようにしています。しかし、最近のiTunesはAAC(.m4a)推奨なので、このままだとMP3 CDにはできません。

そこでAACからMP3への変換が必要になりますが、変換そのものはiTunesだけでできます。

iTunesでmp3、aac、wav変換|初心者にも分かるiTunesの使い方マニュアル

しかしこれ、意外とめんどい。手順としては下記の通りだけど、iTunesのライブラリ(libraly Playlist)ではAACとMP3が入れ子になっていてどれがどの子やらわからん子ちゃんなの。

  1. iTunesのインポート設定を「MP3」に変える
  2. 変換したいトラックを選択してコマンドを実行
  3. MP3に変換済みであろうトラックを慎重に確認しながら選択し、プレイリストにまとめる
  4. iTunesのインポート設定を「AAC」に直しておく
  5. プレイリストからディスクを作成
  6. ライブラリリストに戻ってMP3であるかどうか慎重に確認しながらトラックを選択し、削除(後片付け)

でまあ、AppleScriptを書いてちょっと楽しようかと。

(*
Convert_Encoder
iTunesで選択しているトラックのフォーマットを変換して新規プレイリストに追加します。
(c)2010 seuzo.jp

2010-11-15	とりあえず

*)
tell application "iTunes"
	activate
	set my_encoder to current encoder --現在のエンコーダー
	
	--ターゲットエンコーダーを選択
	--set aac_encoder to every encoder whose name is "AAC Encoder"
	--set mp3_encoder to every encoder whose name is "MP3 Encoder" --MP3エンコーダー
	set target_encoder to (name of every encoder)
	set target_encoder to choose from list target_encoder with prompt "変換するエンコーダーを選んでください" default items {"MP3 Encoder"} OK button name "変換"
	if target_encoder is false then
		error number -128
	else
		set target_encoder to encoder (target_encoder as Unicode text)
	end if
	
	--変換処理
	try
		set my_playlist to make new playlist --新しいプレイリストを作成
		set current encoder to target_encoder --現在のエンコードを変換
		repeat with i in selection
			if class of i is file track then
				set tmp_track to convert i
				set tmp_track to item 1 of tmp_track --convertはリストを返すから
				duplicate tmp_track to my_playlist --プレイリストに追加(この場合はduplicateを使う。addコマンドは新規追加用)
			end if
		end repeat
	on error errMsg number errNum --エラーがあれば、current encoderを元に戻して終了
		set current encoder to my_encoder
		display dialog "ERROR! : " & errNum & return & errMsg
		error number -128
	end try
	set current encoder to my_encoder
end tell
(*
Delete_Tracks
iTunesの選択中のトラックを削除する

下記スクリプトを参照しました。
http://stackoverflow.com/questions/1455011/how-do-i-fix-my-applescript-to-delete-a-selection-of-tracks-in-itunes
user playlistのトラックを選択しているときにもlibrary playlistのトラックを削除するようにしました。
http://dougscripts.com/itunes/

2010-11-15	とりあえず

*)

tell application "iTunes"
	activate
	
	set to_delete to {} --削除ファイルリスト
	repeat with the_track in selection
		if class of the_track is file track then
			set my_path to (get location of the_track) as Unicode text
			set pair to {contents of the_track, my_path} --トラックとパスのペアのリスト
			copy pair to end of to_delete
		end if
	end repeat
	
	repeat with pair in to_delete
		set the_track to item 1 of contents of pair
		set my_path to item 2 of contents of pair
		if class of container of the_track is user playlist then --選択しているトラックがuser playlistだったら
			set my_id to (get database ID of the_track)
			delete (some track of library playlist 1 whose database ID is my_id)
		else
			delete the_track
		end if
		my delete_file(my_path)
	end repeat
end tell

--ファイルをゴミ箱に移動
to delete_file(my_path)
	try
		tell application "Finder" to delete my_path
		--do shell script "mv " & quoted form of POSIX path of (my_path as string) & " " & quoted form of POSIX path of (path to trash as Unicode text)
	on error
		display dialog "トラックをゴミ箱に移動できませんでした。" with icon 1
	end try
end delete_file

実行スクリプトのダウンロードはこちら:iTunes_2010-11-15.zip 直

スクリプトメニューの使い方はこちら:AppleScript を便利に使うための準備


おおまかな流れは...

  1. MP3に変換したいトラックを選択する
  2. スクリプト(Convert_Encoder.scpt)を実行。エンコーダーを選択する
  3. 変換されたMP3トラックは自動的に新規プレイリストに追加されている
  4. プレイリストからディスクを作成
  5. 作られたユーザープレイリストから削除したいトラックを選択して、スクリプト(Delete_Tracks.scpt)を実行(これで後片付けもしてくれる)

1)iTunes上でMP3に変換したいトラックを選択します

f:id:seuzo:20101115232331p:image


2)スクリプトメニューから「Convert_Encoder.scpt」を実行します

f:id:seuzo:20101115232801p:image


3)変換したいエンコーダーを選びます

f:id:seuzo:20101115232939p:image


4)トラックが変換されました

変換といっても、オリジナルが書き換わるわけではないのでご安心を。選択しているオリジナルファイルとは別にファイルができます。

f:id:seuzo:20101115233201p:image


新規プレイリストが自動的に追加され、そこに変換したトラックが入っています

f:id:seuzo:20101115233612p:image


5)MP3 CDを作ります

プレイリストを選択して、ファイルメニューから「プレイリストからディスクを選択...」を選びます

f:id:seuzo:20101115233843p:image


MP3 CDができました。

f:id:seuzo:20101115233912p:image


6)後片付けをします

後片付け(ライブラリからの削除&MP3ファイルをゴミ箱へ移動)しなくてはいけません。追加したプレイリストから削除したいトラックを選択して、「Delete_Tracks.scpt」を実行します。

f:id:seuzo:20101115234817p:image


プレイリストが空になりました。

f:id:seuzo:20101115234951p:image


ライブラリ中のMP3分も削除されています。

f:id:seuzo:20101115235123p:image


MP3ファイルはゴミ箱に移動しています。

f:id:seuzo:20101115235252p:image


ちなみに、このスクリプトを書いている間のBGMはJellyfishでした。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/seuzo/20101116/1289833397