import xbmc, threading global timer # idle time in minutes IDLE_TIME_MIN = 1 FILENAME = 'f:\\videos\\trailers\\casino_royale-tlr1_640w.mov' ## Thanks Thor918 for this class ## class MyPlayer(xbmc.Player): def __init__(self, *args, **kwargs): if (kwargs.has_key('function1')): self.function1 = kwargs['function1'] if (kwargs.has_key('function2')): self.function2 = kwargs['function2'] xbmc.Player.__init__(self) def onPlayBackStopped(self): self.function2() def onPlayBackEnded(self): self.function2() def onPlayBackStarted(self): self.function1() def stopTimer(): global timer if ( timer ): timer.cancel() def playVideo(): xbmc.Player().play(FILENAME) def startTimer(): global timer if ( timer ): timer.cancel() # get idle time it = xbmc.getGlobalIdleTime() #calculate sleep time in msec s = ((IDLE_TIME_MIN * 60) - it ) * 1000 timer = threading.Timer(s, playVideo,()) sPlayer = MyPlayer(function1=stopTimer, function2=startTimer) startTimer()