iTunes で楽にふりがなをふる

closeこの記事は 9 months 10 days 前に書かれたものです。
最新の情報とは異なる場合がありますので、ご注意ください。

iTunes でふりがなをふるのにずーっとそのアーティスト選んでふりがなを振って、コンテキストメニューから読みがなフィールドを適用としてきました。
でもこれだとものすごく時間がかかる!!
読みがな全てが一致しなくても最初の数文字があってればそれでいいと考えていたのでこれはどうも不自由でした。

そんなところインターネットで色々探していたら AppleScript で解決している方が!
chibiegg日誌さんのiTunesの曲に自動でふりがな登録にずばりやりたいことが書いてありました。

MeCab を利用してふりがなを振ると言うことだったので、MeCab を MacPorts からインストールします。

sudo port install mecab
sudo port install mecab-ipadic-utf8

それから mecabrc の設定を変えてやらないとちょっとマズいらしいので

sudo vim /opt/local/etc/mecabrc

dicdir =  /opt/local/lib/mecab/dic/ipadic-utf8

と変更します。
これだけやれば下準備はOK

あとはchibiegg日誌さんのスクリプトをほとんどそのまま使わせて頂きました。
ただそのままだとアルバムアーティストがちょっと空いたままになるので、アルバムアーティストを追加して

--確認ダイアログ

	--iTunesのスクリプト
	tell application "iTunes"
		try
			set name_list to {}
			set select_track to a reference to selection
			if select_track as list is {} then return
			repeat with i in select_track
				set end of name_list to i
			end repeat
			repeat with i in name_list
				--アーティスト
				set hurigana_text to sort artist of i
				if hurigana_text is "" then
					set original_text to artist of i
					set hurigana_text to my hurigana(original_text)
					set sort artist of i to hurigana_text
				end if

				--アルバム名
				set hurigana_text to sort album of i
				if hurigana_text is "" then
					set original_text to album of i
					set hurigana_text to my hurigana(original_text)
					set sort album of i to hurigana_text
				end if

				--アルバムアーティスト
				set hurigana_text to sort album artist of i
				if hurigana_text is "" then
					set original_text to album artist of i
					set hurigana_text to my hurigana(original_text)
					set sort album artist of i to hurigana_text
				end if

				--曲名
				set hurigana_text to sort name of i
				if hurigana_text is "" then
					set original_text to name of i
					set hurigana_text to my hurigana(original_text)
					set sort name of i to hurigana_text
				end if

			end repeat
			display dialog "完了"
		on error
			display dialog "エラー発生" buttons {"OK"} default button 1
		end try
	end tell

on hurigana(original_text)
	set mecab to "echo " & quoted form of original_text & " | /opt/local/bin/mecab -Oyomi "
	mecab as text
	do shell script mecab
	return katahira(result)
end hurigana

on katahira(original_text)
	set hiracase to "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをんぁぃぅぇぉがぎぐげござじずぜぞだぢづでどっぱぴぷぺぽばびぶべぼゃゅょ"
	set katacase to "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲンァィゥェォガギグゲゴザジズゼゾダヂヅデドッパピプペポバビブベボャュョ"

	set hiragana_text to characters of original_text
	repeat with char in hiragana_text
		set num to offset of char in katacase
		if num is not 0 then
			set contents of char to character num of hiracase
		end if
	end repeat

	return hiragana_text as text
end katahira

となりました。

  1. コメントはまだありません。

  1. トラックバックはまだありません。