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();
}
}