var player; var currentIndex; // integer. pointer for the current video id. var lastMidnight; var totalSize; var alreadyInitialize; var videoId = [["0erir_-jcTA", 518] , // 8:38 ["Olo923T2HQ4", 503] , // 8:23 ["Y7LrMKKqMuY", 320]]; // 5:20 function initialize() { lastMidnight = new Date() lastMidnight.setHours(0); lastMidnight.setMinutes(0); lastMidnight.setSeconds(0); lastMidnight = Math.floor(lastMidnight.getTime() / 1000); totalSize = 0; for (var i = 0; i < videoId.length; i++) { var durationInSeconds = videoId[i][1]; totalSize += durationInSeconds; } alreadyInitialize = true; } function getCurrentFrame() { var now = Math.floor(new Date().getTime() / 1000); var timeFrame = (now - lastMidnight) % totalSize; return startVideoAtTimeFrame(timeFrame); } function startVideoAtTimeFrame(timeFrame) { var time = timeFrame; var i; for (i = 0; i < videoId.length; i++) { if (time < videoId[i][1]) { currentIndex = i; return time; } else { time -= videoId[i][1]; } } } function onYouTubePlayerAPIReady() { player = new YT.Player('playList', { //height: '390', //width: '640', //videoId: videoId[0][0], events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } // autoplay video function onPlayerReady(event) { initialize(); var sec = getCurrentFrame(); event.target.loadVideoById(videoId[currentIndex][0], sec, "highres").playVideo(); } // when video ends function onPlayerStateChange(event) { if(event.data === YT.PlayerState.ENDED) { currentIndex++; if (currentIndex > videoId.length - 1) { currentIndex = 0; } event.target.loadVideoById(videoId[currentIndex][0], 0, "highres").playVideo(); } }