Welcome, guest | Sign In | My Account | Store | Cart
# Control iTunes from TCL using TCOM package on Windows

# [http://www.vex.net/~cthuang/tcom/](http://www.vex.net/~cthuang/tcom/)
package require tcom

# start iTunes or take over existing iTunes application if already running
set i [::tcom::ref createobject "iTunes.Application"]

# get iTunes version
$i
Version
       
9.0.3.15

# set volume (0 to 100)
$i
SoundVolume 75

# play the currently selected track
$i
Play
$i
Stop

$i
Pause
$i
Resume

$i
PreviousTrack
$i
NextTrack

# get current song play position (seconds)
$i
PlayerPosition

# set song position (seconds)
$i
PlayerPosition 96

# Track info
set track [$i CurrentTrack]
$track
Name
$track
Album
$track
Artist
$track
Time
$track BPM
$track
Year
$track
Comment
$track
Kind
$track
KindAsString

# Example track:
foreach t {Artist Name Time Album Year BPM Comment KindAsString} {puts [format "%-12s: %s" $t [$track $t]]}
       
Artist      : The Fixx
       
Name        : Saved By Zero
       
Time        : 3:26
       
Album       : React
       
Year        : 1987
        BPM        
: 90
       
Comment     : TCL rocks
       
KindAsString: MPEG audio file


# GET ALL AVAILABLE ITUNES METHODS
set iid [::tcom::info interface $i]
$iid methods

# dump a sorted list of all itunes tcom calls
foreach m [lsort -index 2 -unique [$iid methods]] {puts [lindex $m 2]}
       
AppCommandMessageProcessingEnabled
       
Authorize
       
BackTrack
       
BrowserWindow
       
CanSetShuffle
       
CanSetSongRepeat
       
CheckVersion
       
ConvertFile
       
ConvertFile2
       
ConvertFiles
       
ConvertFiles2
       
ConvertOperationStatus
       
ConvertTrack
       
ConvertTrack2
       
ConvertTracks
       
ConvertTracks2
       
CreateEQPreset
       
CreateFolder
       
CreateFolderInSource
       
CreatePlaylist
       
CreatePlaylistInSource
       
CurrentEQPreset
       
CurrentEncoder
       
CurrentPlaylist
       
CurrentStreamTitle
       
CurrentStreamURL
       
CurrentTrack
       
CurrentVisual
       
EQEnabled
       
EQPresets
       
EQWindow
       
Encoders
       
FastForward
       
ForceToForegroundOnDialog
       
FullScreenVisuals
       
GetITObjectByID
       
GetITObjectPersistentIDs
       
GetPlayerButtonsState
       
GotoMusicStoreHomePage
       
ITObjectPersistentIDHigh
       
ITObjectPersistentIDLow
       
LibraryPlaylist
       
LibrarySource
       
LibraryXMLPath
       
Mute
       
NextTrack
       
OpenURL
       
Pause
       
Play
       
PlayFile
       
PlayPause
       
PlayerButtonClicked
       
PlayerPosition
       
PlayerState
       
PreviousTrack
       
Quit
       
Resume
       
Rewind
       
SelectedTracks
       
SetOptions
       
SoundVolume
       
SoundVolumeControlEnabled
       
Sources
       
Stop
       
SubscribeToPodcast
       
UpdateIPod
       
UpdatePodcastFeeds
       
Version
       
VisualSize
       
Visuals
       
VisualsEnabled
       
Windows

History