Building a Clock Overlay For Your iMovie Videos

If you need a clock or countdown timer in your iMovie video, you can create one in Keynote and export it to use in iMovie. You can manually create each second as a slide, or use this simple script to add all of the slides automatically. In iMovie you can adjust the size, color and even reverse the overlay to count down or up.



Here’s the script. Remember when in Script Editor to switch from AppleScript to JavaScript.

var Keynote = Application("Keynote");
var presentation = Keynote.documents[0];
var slideMaster = presentation.masterSlides["Statement"];

for(var i=0;i<=120;i++) {
	var m = Math.floor(i/60);
	var s = i-m*60;
	var newSlide = Keynote.Slide({baseSlide:slideMaster});
    presentation.slides.push(newSlide);
    newSlide.defaultBodyItem().objectText = m+":"+String(s).padStart(2, '0');
}

Comments: 13 Responses to “Building a Clock Overlay For Your iMovie Videos”

    Jack
    1 month ago

    Hi Gary, thanks for this VERY helpful post. Can the script be edited to automatically create slides counting down (as opposed to yours that is counting up)? I know you showed how iMovie can reverse the video, but I would like to use the exported timer movie in Keynote alongside of an interactive scoreboard for games. I’m just trying to avoid having to bring the movie file into iMove, reverse the video, export a new video, and then bring it back into Keynote. Thanks!

    1 month ago

    Jack: You can just change the for loop. It counts from 0 to 120 now, so make it count from 120 to 0, like:

    for(var I=1200;i>=0;i--)
    Jack McNeil
    1 month ago

    Thanks for your help Gary. When I put that line of code in, I get the following error:

    Error on line 5: SyntaxError: Unexpected token ‘)’

    1 month ago

    Jack: Make sure you get it exactly, Note that it is two minus characters at the end to replace the two plus characters from the original.

    Jack McNeil
    1 month ago

    That did it! Thank you very much.

    Carol Brunger
    1 month ago

    Gary, thank you so much for this video. It is so well explained, and the bonus being able to copy and past the script, was a godsend. Once again forever grateful for your videos.

    Law Thim Fook
    4 weeks ago

    TQVM Gary, for another great and enlightening video.

    sumaia
    4 weeks ago

    Thank you so much for the amazing video. I am just wondering what I should change in the coding script to make the video a countdown of 50 minutes?

    Thank you once again,
    Sumaia

    4 weeks ago

    sumaia: 50 minutes is 60 times 50 seconds. So 3000 seconds. So change the 120 in the code to 3000. It will take a while to create, but it should still work.

    sumaia
    4 weeks ago

    var Keynote = Application(“Keynote”);
    var presentation = Keynote.documents[0];
    var slideMaster = presentation.masterSlides[“Title – center”];

    for(var i=3000;i>=0;i–) {
    var m = Math.floor(i/60);
    var s = i-m*60;
    var newSlide = Keynote.Slide({baseSlide:slideMaster});
    presentation.slides.push(newSlide);
    newSlide.defaultBodyItem().objectText = m+”:”+String(s).padStart(2, ‘0’);
    }

    this is what i have but numbers are for not showing. Also, I used title-center instead of Statement.

    sumaia
    4 weeks ago

    I actually got it ! THANK YOU SO MUCH. literally your video was the only helpful video i found!!

    Isaac
    2 weeks ago

    Hi, Gary, I have Keynote 10.2 version in Spanish Language but your script doesn’t work in my Mac computer and I received this message: Error: TypeError: undefined is not an object (evaluating ‘presentation.masterSlides’)

    2 weeks ago

    Isaac: Just try going through everything step-by-step and setting it up the same way I do.

Leave a New Comment Related to "Building a Clock Overlay For Your iMovie Videos"

:
:
:
0/500 (500 character limit -- please state your comment succinctly and do not try to get around this limit by posting two comments)