tizen.moe

tizen.moe

サクッとプログラムした気になる (2)

itunesからアートワークを取得する

真面目にCOMのドキュメントを読んで頑張るともうちょっと込み入ったことが出来るそうです。

iTunes COM Interface: IiTunes Interface Reference

書いたスクリプト

こんな感じ。ユーザ固有のtempフォルダにjpg/png/bmpのいずれかで取得したアートワークを保存します。アートワークが無い楽曲で実行すると"artworks.Item"がNGになるのでソレ以降もNGになります。(ファイル無いので考えれば当然ですが割とハマりました、、、)

Function getArtworkAndPath()

	Dim objShell
	Dim tmp
	Dim iTunesApp
	Dim current
	Dim artworks
	Dim artwork
	Dim format
	Dim c_str

	Set objShell = CreateObject("WScript.Shell")
	tmp = objShell.ExpandEnvironmentStrings("%TMP%")

	Set iTunesApp = CreateObject("iTunes.Application")
	Set current = iTunesApp.CurrentTrack
	Set artworks = current.Artwork
	Set artwork = artworks.Item(1)
	format = artwork.Format

	Select Case format
	Case 1
		c_str = "jpg"
	Case 2
		c_str = "png"
	Case 3
		c_str = "bmp"
	End Select

	artwork.SaveArtworkToFile(tmp + "\\z." + c_str)
	getArtworkAndPath = tmp + "\\z."+ c_str

End Function

割りとウザいことにアートワークの画像形式がjpgだったりpngだったりbmpだったりするので確認して拡張子を変えてます。

デモ

次のトラックに移動する↓のスクリプトを一緒にして

Sub nextTrack()

	Dim iTunesApp

	set iTunesApp = CreateObject("iTunes.Application")
	iTunesApp.NextTrack

End Sub

ソレを実行する部分を末尾に書き足して

nextTrack
getArtworkAndPath


ちょっとプログラムした気になりました(ぉ