みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

iTunesのプレイリスト群をMP3に一括変換

車のナビにSDカードでMP3で音楽を入れたいのですが、家ではMacでiTunesで音楽ファイルを管理しています。iTunesのプレイリストを、階層構造(プレイリスト>楽曲一覧)を維持しながら一括でMP3に変換してSDカードに格納するにはどうしたらよいでしょうか?
ご教示よろしくお願いします。

投稿日時 - 2012-04-07 00:29:45

QNo.7406973

困ってます

質問者が選んだベストアンサー

>階層構造(プレイリスト>楽曲一覧)を維持しながら一括でMP3に変換
を目指すとなると かえって面倒なのだと思います。

iTunesだとCDを MP3なりAIFFなりAppleロスレスなりで 変換(エンコード)して取り込みますが
一旦エンコードした曲に対して もう一度エンコードをすると
別エンコードのバージョン の同じ曲がつくれます。
(音質は そのエンコードなりのものになりますし 、可逆圧縮をかけた物を非可逆圧縮にしても 音質が復活はしません。)
iTunes Storeで購入した「保護されたAAC…」の曲は 直接再エンコードができませんが
CD-RなどにオーディオCDとして作成/書き出したものを再読み込みで 対処できます。

MP3として曲を揃えて集めてから プレイリスト作成→複製→SDカードに移動(保存)とした方が
楽に作成できると思います。

投稿日時 - 2012-04-10 02:56:54

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

恐らく自分でスクリプトを書くしかないと思います。
最初はiTunesで楽曲変換機能を使ってmp3バージョンを作成します。
その後は楽曲・プレイリスト情報をiTunes Music Library.xmlというファイルを読み込んで、プレイリストにある楽曲のTrack IDを取得し、Track IDから楽曲の詳細情報エントリへ辿り着き、そこに書かれているフルパスから拡張子をmp3に変えたものをコピーするという流れです。

もう少し具体的に書くと、iTunes Music Library.xmlはXMLフォーマットと呼ばれる構造で情報が記述されています。
その中には楽曲の個別情報と、プレイリストの情報などが含まれています。
例えばプレイリストは
<dict>
<key>Name</key><string>プレイリスト1</string>
<key>Playlist ID</key><integer>36061</integer>
<key>Playlist Persistent ID</key><string>CE47B44ADBEFDFE0</string>
<key>All Items</key><true/>
<key>Playlist Items</key>
<array>
<dict>
<key>Track ID</key><integer>20138</integer>
</dict>
<dict>
<key>Track ID</key><integer>20180</integer>
</dict>
<dict>
<key>Track ID</key><integer>20218</integer>
</dict>

このような内容になっています。
そして
<key>Track ID</key><integer>20218</integer>
これがプレイリストに含まれる一つ一つの曲を表すIDになっています。

そして次にこのID(この例では20218)をキーにこのXMLファイルの中を探すと
<key>20218</key>
<dict>
<key>Track ID</key><integer>20218</integer>
<key>Name</key><string>music-name</string>
<key>Artist</key><string>artist-name</string>
<key>Album</key><string>album-name</string>
<key>Kind</key><string>AAC オーディオファイル</string>
<key>Size</key><integer>7715691</integer>
<key>Total Time</key><integer>237538</integer>
<key>Disc Number</key><integer>2</integer>
<key>Disc Count</key><integer>5</integer>
<key>Track Number</key><integer>22</integer>
<key>Track Count</key><integer>22</integer>
<key>Date Modified</key><date>2012-04-04T20:07:35Z</date>
<key>Date Added</key><date>2012-04-04T19:53:10Z</date>
<key>Bit Rate</key><integer>256</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>3</integer>
<key>Play Date</key><integer></integer>
<key>Play Date UTC</key><date>2012-04-05T19:09:06Z</date>
<key>Artwork Count</key><integer>1</integer>
<key>Persistent ID</key><string></string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/C:/iTunes/artist-name/album-name/music-file.m4a</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>

このような記述になっていて、
<key>Location</key><string>file://localhost/user/name/iTunes/artist-name/album-name/music-file.m4a</string>
の部分がファイルのフルパスを表しています。

この情報に従ってSDにフォルダを作成しつつコピーする方法しか思い浮かびません。
それをスクリプトを組んで自動化するわけです。

他にはSDを利用するのを諦め、iPodとFMトランスミッタを購入してFMで聞く方法が考えられます。

投稿日時 - 2012-04-09 03:41:36

お礼

詳細な回答を有難うございます!参考になりました。

投稿日時 - 2012-04-23 10:05:53

あなたにオススメの質問