Created
October 14, 2014 04:54
-
-
Save fddcddhdd/0026fcc44eeed71cca9c to your computer and use it in GitHub Desktop.
フォルダとファイル名で管理しているmp3ファイルから、iTunes & iPhone用のプレイリストを自動生成するシェルスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# 定数(全曲が入ったm3uファイル名・フォルダ毎のm3uを入れるフォルダのパス) | |
all_m3u_text_filepath=$(dirname $0)/all_m3u.txt | |
m3u_folder_fullpath=$(dirname $0)/m3u_list/ | |
# このシェルスクリプトのサブディレクトリ以下にある音楽ファイル(mp3, wma)のリストファイルを生成。 | |
find $(dirname $0) -name "*.mp3" -o -name "*.wma" | sort > "${all_m3u_text_filepath}" | |
# m3uファイルを入れるフォルダを生成(既にあったら削除) | |
rm -rf "${m3u_folder_fullpath}" 2>/dev/null | |
mkdir "${m3u_folder_fullpath}" 2>/dev/null | |
# 最初に生成した音楽ファイルリストを一行ずつ読み込む | |
cat "${all_m3u_text_filepath}" | while read line | |
do | |
# 音楽ファイルのフルパス | |
filepath=$(dirname "${line}") | |
# 音楽ファイル名 | |
filename=$(basename "${line}") | |
# 音楽ファイル名の親フォルダ名 | |
parent_name=$(basename $(dirname "${line}")) | |
# 書き込む音楽フルパスをコマンドラインに表示する(途中経過の表示) | |
echo $filepath"/"$filename | |
# 親フォルダ名のm3uファイル(プレイリスト)に書き込む。 | |
# 親フォルダ名が変われば、自動的に書き込み先ファイル名が変わるのがミソ! | |
output_file=${m3u_folder_fullpath}${parent_name}.m3u | |
echo $filepath/$filename >> ${output_file} | |
done | |
# ツリー構造(フォルダの中にフォルダの中に・・・。)は再現されず、音楽ファイルの親フォルダ名でプレイリストが生成される。 | |
# フォルダ名に半角スペースが入っていると、なぜかm3uファイル名が半角スペース→改行に変換されるけどitunes上では問題ないから、まあいいか・・・。 | |
# itunes上で、手動でプレイリストフォルダを使えば、ツリー構造も再現できるはず。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment