iTunes で楽にふりがなをふる
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
となりました。