ブログ アーカイブ

2009年4月20日月曜日

iTunesからClarionカーナビにファイル取り込み

iTunesのライブラリにある音楽ファイルをClarionのカーナビにインポートしようと思います。
Clarionのカーナビは
アーティスト名のフォルダ - アルバム名のフォルダ - 曲名のファイル
のようなフォルダ構造でインポートしなければなりません。

まずはiTunesでプレイリストを作成します。
それを右クリックして「プレイリストをエクスポート...」するとテキスト形式のリストが出力できます。
これを使ってClarion形式のフォルダ構造を作ることにします。

私の環境はWindows上のVirtualBox+Ubuntuなので、こんな感じのスクリプトになりました。
#!/bin/sh

# iTunesのプレイリスト(プレイリストを右クリックして「プレイリストをエクスポート...」)から
# Clarionのカーナビのファイルキャッチャー用のフォルダ構造を生成し、
# 音楽ファイルをコピーする。
#
# ファイルキャッチャー用のフォルダ構造は次の通り。
# アーティスト名のフォルダ - アルバム名のフォルダ - 曲名のファイル

if [ $# -ne 4 ];
then
echo "使用法: $0 list win_dir unix_dir out_dir"
echo " list"
echo " iTunesからエクスポートしたプレイリスト(txt形式)"
echo " win_dir"
echo " iTunesのmusicフォルダのwindowsパス"
echo " (このフォルダ直下にアーティスト名のフォルダが存在)"
echo " unix_dir"
echo " iTunesのmusicフォルダのunixパス(windowsから共有)"
echo " (このフォルダ直下にアーティスト名のフォルダが存在)"
echo " out_dir"
echo " ファイルのコピー先"
echo ""
echo "例: $0 お気に入り.txt d:/iTunes $HOME/.gvfs/iTunes@10.0.2.2 out"
exit
fi
if [ ! -e "$1" ];
then
echo "ファイルが存在しません: $1"
exit
fi
if [ ! -d "$3" ];
then
echo "ディレクトリが存在しません: $3"
exit
fi


list=$1
win_dir=$2
unix_dir=$3
out_dir=$4
tmp1=$(mktemp temp.XXXXXX)
tmp2=$(mktemp temp.XXXXXX)
tmp3=$(mktemp temp.XXXXXX)

# utf-8変換
nkf -w $list > $tmp1
# ヘッダ行を削除、レコードごとに改行、区切り文字を@@に変更、パス区切りを/に変更
sed -e"s/.*場所 //" -e "s/\(\.\(mp3\|wma\|m4a\)\) /\1\n/g" -e "s/\t/@@/g" -e "s_\\\_/_g" $tmp1 > $tmp2
# レコードからアーティスト名、アルバム名、曲名、音楽ファイルパスを抽出
gawk -F @@ '{print $2 "\n" $4 "\n" $1 "\n" $27}' $tmp2 > $tmp3

# ファイルを読む
exec 3< $tmp3
while read artist 0<&3
do
read album 0<&3
mkdir -p "$out_dir/$artist/$album"
read name 0<&3
read file 0<&3
file=$(echo $file | sed -e "s!$win_dir!$unix_dir!i")
filename=$(basename "$file")
filename=$(echo $filename | sed -e "s/^[0-9][0-9] //")
ext=$(echo $file | sed -e "s/.*[^.].*\.\([^.]*\)$/\1/")
if [ $ext = "mp3" -o $ext = "m4a" ];
then
echo "copying file..."
echo " from: $file"
echo " to: out/$artist/$album/$filename"
cp -T "$file" "out/$artist/$album/$filename"
fi
done
rm temp.*

iTunesバージョンが変わるとエクスポートされるテキストファイルのフォーマットが微妙に変わったりするので注意が必要です。
私は8.1.1.10で動作確認しました。

2 件のコメント:

Shrok Ahmed さんのコメント...

برنامج حسابات

برنامج erp


برنامج محاسبة

برنامج مخازن

mohamed adel さんのコメント...



At Risala Furniture and Interiors LLC, we specialize in providing top-quality furniture, carpets, rugs, curtains, blinds, and flooring solutions across Dubai, Abu Dhabi, and the UAE. Whether you’re looking to buy a modern furniture set or elegant carpets, we cater to both residential and commercial spaces. Our extensive range ensures that you’ll find the perfect decor for your home or office at the best price. Carpets dubai - Carpets abu Dhabi - Carpenter Dubai

_______________________________