おもろい、めずらしいアップルスクリプト発表会

このエントリーをはてなブックマークに追加
666名称未設定
property musicLibPath : "Macintosh HD:書類:iTunes:iTunes Music:" --★

tell application "iTunes"
tell library playlist 1
set n to number of tracks
repeat with i from 1 to n
set artistStr to (artist of track i) as text
set albumStr to (album of track i) as text
set orgFile to location of track i
my moveMusicFile(orgFile, artistStr, albumStr)
end repeat
end tell
end tell

(* orgFile を musicLibPath:artistStr:albumStrに移動 *)
to moveMusicFile(orgFile, artistStr, albumStr)
tell application "Finder"
if my bytelength(artistStr) > 31 then my extract(artistStr, 31)
if my bytelength(albumStr) > 31 then my extract(albumStr, 31)
set artistPath to musicLibPath & artistStr & ":"
if not (folder artistPath exists) then
make new folder at folder musicLibPath with properties {name:artistStr}
end if
set albumPath to artistPath & albumStr & ":"
if not (folder albumPath exists) then
make new folder at folder artistPath with properties {name:albumStr}
end if
move orgFile to folder albumPath
end tell
end moveMusicFile


to extract(str, bytelen)
set b to ""
repeat with i from 1 to bytelen
set c to b & (character i of str)
if my bytelength(c) > bytelen then exit repeat
set b to c
end repeat
return b
end extract

(* 文字列のbyte長を得る。なぜ標準でできない! *)
to bytelength(theStr)
set the clipboard to theStr
item 2 of item 1 of (clipboard info for strings)
end bytelength
667666:02/03/02 15:22 ID:VKvacEAg
http://pc.2ch.net/test/read.cgi/mac/1013564772/217
あたりから話題になってた、iTunes2でうっかりファイルを全部ゴミ箱に入れちゃった
状態からの救済。ゴミ箱からどこかに移動させてあってもいい。
(この状態ではFinderの「片づける」はつかえない)

要するにiTunesのライブラリの曲をはじから調べて、artistとalbumで再整理するという
もの。iTunesでの「音楽フォルダ」(MP3格納フォルダ)の得方がわからなかったので、
1行目で決め打ちになってる。使用環境に合わせて変更が必要。

artist名、album名が32文字以上の場合は、後をばっさり切る(しかし、なんでbytelength
が標準で得られないんだろう。変な苦労をしている)。