iTunesの曲に自動でふりがな登録

iTunesは日本語の曲名等の並び替えを正しく行うためにふりがなを登録できるようになっています。が、何千曲とあるライブラリに手作業での登録は大変です。アーティスト名ならまだしも曲名となれば大変です。

massiva/logic&mac tipsさんのソートiTunes!という記事でAppleScriptとテキストエディタのGUIを用いてiTunesの曲のアーティスト名のふりがな(アーティストの並べ替え)フィールドを自動で埋めるというスクリプトが紹介されています。ところが、安定して動作させるには待機時間を長くしないといけないのでちょっと遅いのです、これは漢字からひらがな変換にGUIを使っているからなのですが。具体的にはMac全体の処理速度が一瞬低下した場合ふりがなへの変換が終わる前に次の曲に進んでしまったりします。

そこで、オープンソースの形態素解析エンジンMeCabを利用してふりがなを生成する方法に改造することによって高速かつ安定した動作を実現しました。が、人名はことえりのほうが正確かも…

MeCabは前回の記事でインストール済みということで。

スクリプトエディタに以下のスクリプトを入力し、iTunesでふりがなを補完したい曲を選択した状態でスクリプトを実行するとふりがながまだ設定されていない曲のアーティスト名、曲名、アルバム名のふりがなが登録されていきます。

スクリプト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
--確認ダイアログ
display dialog "ふりがなをふっていいですか" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" then
 
 
    --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 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
 
end if
 
on hurigana(original_text)
    set mecab to "echo " & quoted form of original_text & " | /usr/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

4 Comments

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

  2. 黒生鉄心 より:

    初めまして。
    こちらのスクリプトの改良版を利用させて頂きました、MeCabを利用するという素晴らしい発想のおかげでかなり正確な読みがなが自動登録できるようになりました。
    ありがとうございました。

  3. 早川りんご より:

    iTunes12でこちらのスクリプトを使用させていただきました。
    質問になるのですが、このスクリプトはふりがなは全てカタカナになるのでしょうか?
    当方の環境では漢字とひらがなは全てカタカナになってしますます。
    El CapitanのiTunes12を使用しています。

    当方としては漢字はひらがなにカタカナをひらがなにそれ以外はそのままという感じにしたいのですが可能でしょうか?

    お忙しい中申し訳ありませんがよろしくお願いします。

  4. 早川りんご より:

    このスクリプトをEl CapitanのiTunes12で使用するとひらがなではなくカタカナでふりがながふられてしまうのですがこのスクリプトの仕様でしょうか?
    お忙しとは思いますがご返答いただけると幸いです。

黒生鉄心 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*