Hello,
I’ve been looking for a way to find the 10 most recently watched TV show episodes in iTunes applescript, which can then be sent to a webpage to update a MySQL database - to show a user’s 10 recently watched shows on their website.
I have this code already, but it works by hitting iTunes every few seconds and checking if it is playing. This is undesirable, as I’d like to include iPod plays as well - therefore I’d have to get episodes ordered by the Last Played date.
Here is the code I have already, but like I said, I’d much prefer if I could get episodes from their Last Played date and not on their “current track” state. Any help would be hugely appreciated.
-- Code modified from an original script by Jerry Kindall
-- http://www.jerrykindall.com/
property pollInterval : 5
property pingURL : "http://your.host.com/your_servlet_or_cgi_path?"
property debug : true
global lastID
on run
set lastID to -1
end run
on idle
try
tell application "Finder" to get every process whose name is "iTunes"
if result is not {} then
tell application "iTunes"
if player state is playing then
tell current track
if database ID is not lastID then
if name is not missing value then
set epname to name
else
set epname to ""
end if
if played date is not missing value then
set lastplayed to played date
else
set lastplayed to ""
end if
if debug then tell me
activate
set trackBack to "name=" & urlEncode(epname) of me & "&lastplayed=" & lastplayed
display dialog trackBack
end tell
--tell me to do shell script "curl --silent '" & trackBack & "'"
set lastID to database ID
end if
end tell
end if
end tell
end if
on error m number n
if n is -128 then
error number n
else
if debug then tell me
activate
beep
display dialog m & " (#" & n & ")"
end tell
end if
end try
return pollInterval
end idle
(I’ve left out the urlEncode stuff because that’s irrelevant, as well as the track details besides name and lastplayed that I’m sending)