2008年1月2日

PlaylistInfo.ahk

頼まれて作った

;PlaylistInfo.ahk
;2008/01/02作成
;現在再生中?のプレイリストの曲情報一覧をファイルに書き出し
;スクリプトのあるフォルダにプレイリスト名.txtで作成
;.txtを.csvに変えればExcelでも見やすいようにした

#NoTrayIcon
#Include CoHelper.ahk

CoInitialize()

iTunesApp := ActiveXObject("iTunes.Application")
;現在のプレイリスト取得
CurrentPlaylist := Invoke(iTunesApp, "CurrentPlaylist")
;プレイリストの名前取得
PlaylistName := Invoke(CurrentPlaylist, "Name")
;プレイリストの時間取得
PlaylistTime := Invoke(CurrentPlaylist, "Time")
;プレイリストの曲取得
Tracks := Invoke(CurrentPlaylist, "Tracks")
;プレイリストの曲数取得
Count := Invoke(Tracks, "Count")
;属性取得
FileGetAttrib, Attrib, %PlaylistName%.txt
;ファイルが既に存在していたら
If Attrib <>
{
;削除確認
Msgbox, %PlaylistName%.txtを削除します
;ファイル削除
FileDelete, %PlaylistName%.txt
}
;プレイリスト名と総再生時間を1行目に
FileAppend, プレイリスト名=%PlaylistName%`,総再生時間=%PlaylistTime%`n, %PlaylistName%.txt
;.csv用に見やすく
FileAppend, 名前`,アーティスト`,アルバム`,時間`,再生回数`n, %PlaylistName%.txt
;開始の確認
Msgbox, プレイリスト:%PlaylistName%の情報を書き出します
;曲数分ループ
Loop, %Count%
{
;曲情報取得
Current := Invoke(Tracks, "Item", A_Index)
;名前取得
Name := Invoke(Current, "Name")
;アーティスト名取得
Artist := Invoke(Current, "Artist")
;アルバム名取得
Album := Invoke(Current, "Album")
;再生時間取得
Time := Invoke(Current, "Time")
;再生回数取得
PlayedCount := Invoke(Current, "PlayedCount")
;ファイルに追加
FileAppend, %Name%`,%Artist%`,%Album%`,%Time%`,%PlayedCount%`n, %PlaylistName%.txt
;Msgbox, %Current%, %Album%
}
Msgbox, 書き出し完了
Release(Current)
Release(Tracks)
Release(CurrentPlaylist)
Release(iTunesApp)
CoUninitialize()
return

初プレイリスト関係だけどまあまあ簡単にできた、30分で一応完成、総完成に1時間ほど
ListViewにでも表示させてみようか