Skip to Content


Create each Youtube video’s data object.

JavaScript February 7, 2021


This function runs automatically, so it is not called manually. Is this incorrect?


Automatically play a video when a Bootstrap modal opens.

jQuery(document).on('', function(e){
    vidID = jQuery('iframe').attr('id');[vidID].playVideo();

Source File

Located in /assets/js/modules/video.js on line 326.

No Hooks

This function does not have any filters or actions available. Request one?
nebula.youtubeReady = function(e){
    if ( typeof videoProgress === 'undefined' ){
        let videoProgress = {};

    nebula.videos = nebula.videos || {}; //Always make sure this is defined

    let id = nebula.getYoutubeID(;
    if ( id && !nebula.videos.hasOwnProperty(id) ){ //If the video object doesn't use the Youtube video ID, make a new one by duplicating from the Iframe ID
        nebula.videos[id] = nebula.videos[jQuery('id')];

    nebula.videos[id].title = nebula.getYoutubeTitle( ?? 'Unkown';
    nebula.videos[id].duration =; //The total duration of the video. Unit: Seconds
    nebula.videos[id].current =; //The current position of the video. Units: Seconds
    nebula.videos[id].percent =; //The percent of the current position. Multiply by 100 for actual percent.


To override or disable this JavaScript function, simply redeclare it with the exact same function name.

nebula.youtubeReady = function(){
    //Write your own code here, leave it blank, or return false.