既存MP3ファイルをAACファイルに置き換えたい

※誤ってWindowsカテゴリに書いてしまいましたが、Mac版iTunesです。自分では変更できません。


かなり昔にCDからMP3で取り込んでいた曲があります。

最近注意深く聞いていると、やはり曲によってはノイズが気になるようになってきました。

なのでもう一度AACで取り込み直したいと思います。

※今回の質問はMP3とAACの音質の善し悪し問題ではありません。


プレイリストの情報や再生回数、レートなどはそのまま継続させたい。


この場合のやり方って、

  1. Finderで曲を削除。
  2. iTunesで削除した曲を再生する。
  3. 見つからない/再接続ダイアログを表示させ、新たなAACファイルを選択。

こんなやりかたが想像できるのですが、曲数が多く地道にやる羽目になりそうです。


他に一括・自動的に変更できる方法はありますか?



* スレッドを移動しました。 Apple Inc. 

Mac Pro, macOS Mojave (10.14), null

投稿日 2018/10/15 19:07

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2018/10/19 08:50

初期のiTunes(Mac)ではできていた手でしたが、私が例に挙げたやり方が今でも使えました。

  1. 新たにCDからリッピング・エンコード
  2. iTunesを起動しておく
  3. Finderを開いて該当曲を削除→ゴミ箱を空にする。
  4. 削除した曲をiTunesで再生
  5. 曲のリンクが壊れているので、新たにAAC化したファイルを選択
  6. ファイルを検索しますか?とでてくるが、キャンセル。→ 検索をかけると変になりそうなのでやっていない
  7. 古いiTunes上の曲目は昔の曲情報を保ったまま、曲データのソースはAACに変わっている。
  8. 新旧の曲目があるので、曲情報をチェックして再生回数が0の方を削除する。たいてい2番目に並ぶが時々順番が変わる。
  9. ライブラリから削除するが、ファイルは保持する。


とりあえず一括は難しそうですが、そうやって地道にやっていくしかないですね。

返信: 21

2018/10/21 00:48 Hiro__S への返信

AppleScript を拵えて見ました。不要かもしれませんが、貼っときます。


処理済みの MP3 ファイルをゴミ箱に捨てたい場合は、コードを次のように変更してください。


変更前

my main(0)


変更後

my main(1)


ーーーーー


簡単な説明:

MP3 のトラック情報を、AAC トラックにコピーし、不要となったトラックはプレイリストから削除する AppleScript


コピー項目:

  • 最終再生日 (AAC トラックの変更日をコピー)
  • 再生回数
  • レート
  • 歌詞
  • アートワーク (最初の一枚のみ)


スクリプトの作り方:

  1. 下記「コード」をスクリプトエディタにコピーし
  2. スクリプト形式で保存


使い方:

  1. iTunes で「ライブラリ > 曲」を表示
  2. 処理対象のアルバムを選択
  3. 「トラック番号」でソート
  4. アルバム内の全曲を選択 (図1)
  5. スクリプトエディタから、スクリプトを実行


図1 処理前

ユーザがアップロードしたファイル


図2 処理後

ユーザがアップロードしたファイル


注意点:

  • MP3 トラックと、AAC トラックの曲数が同じである必要がある
  • MP3 トラックと、AAC トラックの曲名、アルバム名が同じである必要がある


動作確認:

macOS High Sierra 10.13.6 / iTunes 12.8.0


ーーーーー


コード

on run
    try
        if application "iTunes" is not running then
            return
        end if

        #
        # パラメータ
        #   0 : MP3 ファイルをそのままにする
        #   1 : MP3 ファイルをゴミ箱に捨てる
        #
        my main(0)
    on error errs number errn
        return errs
    end try
end run

on main(flag)
    do shell script "osascript <<'OSA' - " & quoted form of (flag as text) & "
on run(argv)
    tell application \"iTunes\"
        set flag to item 1 of argv as integer

        set old_tracks to {} # MP3
        set new_tracks to {} # AAC
        set old_tracks_location to {}

        repeat with i in selection as list
            if kind of i starts with \"MPEG\" then
                set end of old_tracks to contents of i
                set end of old_tracks_location to location of i
            else
                set end of new_tracks to contents of i
            end if
        end repeat

        # copy tags
        my copy_tags(old_tracks, new_tracks)

        # delete tracks
        my delete_tracks(new_tracks, old_tracks_location, flag)

        --return
    end tell
end run

on copy_tags(old_tracks, new_tracks)
    tell application \"iTunes\"
        count artworks of item 1 of old_tracks
        if result > 0 then
            set img to data of artwork 1 of item 1 of old_tracks
        else
            set img to false
        end if

        repeat with i from 1 to length of old_tracks
            set t1 to name of item i of old_tracks
            set t2 to name of item i of new_tracks

            set a1 to album of item i of old_tracks
            set a2 to album of item i of new_tracks

            if t1 is t2 and a1 is a2 then
                # 最終再生日
                set played date of item i of new_tracks ¬
                    to modification date of item i of new_tracks as date

                # 再生回数
                set played count of item i of new_tracks ¬
                    to played count of item i of old_tracks as integer

                # レート
                set rating of item i of new_tracks ¬
                    to rating of item i of old_tracks as integer

                # 歌詞
                set lyrics of item i of new_tracks ¬
                    to lyrics of item i of old_tracks as text

                # アートワーク
                if img is not false then
                    set data of artwork 1 of item i of new_tracks to img
                end if

                #
                # ファイルパス
                #   旧トラック (MP3) のファイルパスを、新ファイル (AAC) のパスに変更
                #
                set location of item i of old_tracks ¬
                    to location of item i of new_tracks as alias
            end if
        end repeat
    end tell
end copy_tags

on delete_tracks(new_tracks, old_tracks_location, flag)
    tell application \"iTunes\"
        repeat with f in new_tracks
            delete f
        end repeat

        if flag is 1 then
            tell application \"Finder\"
                delete old_tracks_location
            end tell
        end if
    end tell
end delete_tracks
OSA"
end main

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

既存MP3ファイルをAACファイルに置き換えたい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。