Loading dynamic video files

Hi Storyline experts,

I'm wondering if there is a way to load external videos dynamically into Storyline. For example, I have three videos in three different languages. If at the beginning of the course the user chooses their language as say Chinese then only the Chinese video will load. Is this possible? I will need to load the videos from within the package, so I'm not keen to use Web Object or use the "insert video from a website" option.

If it is not possible to load external videos dynamically, my question would be, if I put the three different videos in different layers, and the user only plays one of them, will the other two videos also load in the background? Ideally I'd like to load only the video that the user plays to save the bandwidth and loading time.

Thank you!

10 Replies
Dennis Hall

Hi Anglia:

The best solution is to publish 3 distinct stories, however, if you only have a few specific item to display in other languages, do the following:

Have the user select their language

Assign their selection to a language variable and have each slide (where language selections are not automatic, jump to the appropriate layer based on the variable loaded.

I have attached a sample story file for you to view the Global variable and button triggers to help you understand.

To keep the file small, I have not embedded videos on the layers of the second slide.

Other videos you have embedded will load, but not play.

If this helps, please mark it as answered to other can learn from it.

Best Regards,

Dennis Hall

Brian Allen

If you're not using a web object or insert video from website, and you don't want to actually insert the videos into your project for bandwidth issues, how do you plan to actually insert and load the videos?

Using variables it is easy enough to only show the video based on language preference chosen at the beginning of the project, but then you need to build into your project the different options whether they be slides or layers.  I'm not sure of any other options you have for inserting the videos other than insert into project, and insert from website (or web object).

And... I do believe that you're correct in that the videos will preload even if they aren't displayed when inserted into the project.

Dennis Hall

Brian Allen said:

If you're not using a web object or insert video from website, and you don't want to actually insert the videos into your project for bandwidth issues, how do you plan to actually insert and load the videos?

Using variables it is easy enough to only show the video based on language preference chosen at the beginning of the project, but then you need to build into your project the different options whether they be slides or layers.  I'm not sure of any other options you have for inserting the videos other than insert into project, and insert from website (or web object).

And... I do believe that you're correct in that the videos will preload even if they aren't displayed when inserted into the project.


Hi Brian:

FYI: The xml files will load he videos (for flash publishing) because they will be called as a slide object. The videos actually playing are a function of the object on the timeline, so they will not play until the layer timeline is triggered.

You can be sure of this.

Also, regarding loading different languages, I woul publish one story for each language bacause the player will not dynamically load languages, language directions, layout, options etc (see frames.xml) that you would need for various different languages.

Here, we publish in 6 languages when required.

Best Regards,

Dennis Hall

Anglia Marjadi

Thanks everyone for your replies.

Yes, I got the variable and conditions sorted to determine the language option. And to dynamically load the different videos, in the end I opted for using Flash to handle the video. What I did:

1) Create a swf file that calls a video file externally - one swf for each language

2) Embed the swfs within Storyline layers - one layer for each language.

3) Set up a trigger so only the relevant language layer is shown using conditions and variables

4) Since the swf is loading the video file externally, the video file itself isn't registered as a Storyline's slide object so it isn't preloaded. This means only the relevant video is loaded when the user plays the swf.

5) Copy the video files to the publish folder

And Dennis, thanks for your advise about publishing different Stories vs one Story. In my case there are only a small number of elements that have different language settings, the bulk of the content is in English and the layout/template is the same, so I opted for one Story here.

Brian Allen

Anglia Marjadi said:

Thanks everyone for your replies.

Yes, I got the variable and conditions sorted to determine the language option. And to dynamically load the different videos, in the end I opted for using Flash to handle the video. What I did:

1) Create a swf file that calls a video file externally - one swf for each language

2) Embed the swfs within Storyline layers - one layer for each language.

3) Set up a trigger so only the relevant language layer is shown using conditions and variables

4) Since the swf is loading the video file externally, the video file itself isn't registered as a Storyline's slide object so it isn't preloaded. This means only the relevant video is loaded when the user plays the swf.

5) Copy the video files to the publish folder

And Dennis, thanks for your advise about publishing different Stories vs one Story. In my case there are only a small number of elements that have different language settings, the bulk of the content is in English and the layout/template is the same, so I opted for one Story here.


Very nice solution with using the swf files to load the videos, thereby eliminating the preloading, very smart!  With the language options, layer on each slide for each language, etc., I'm currently working on a course set up very similarly and I like the approach a lot.  Will be interested in hearing if you run into any downside setting it up this way. 

Dennis Hall

Anglia Marjadi said:

Thanks everyone for your replies.

Yes, I got the variable and conditions sorted to determine the language option. And to dynamically load the different videos, in the end I opted for using Flash to handle the video. What I did:

1) Create a swf file that calls a video file externally - one swf for each language

2) Embed the swfs within Storyline layers - one layer for each language.

3) Set up a trigger so only the relevant language layer is shown using conditions and variables

4) Since the swf is loading the video file externally, the video file itself isn't registered as a Storyline's slide object so it isn't preloaded. This means only the relevant video is loaded when the user plays the swf.

5) Copy the video files to the publish folder

And Dennis, thanks for your advise about publishing different Stories vs one Story. In my case there are only a small number of elements that have different language settings, the bulk of the content is in English and the layout/template is the same, so I opted for one Story here.


This is the same solution I had provided.

See attached story in my thread above.

Brian Allen

Probably the biggest thing to keep in mind in going with an approach like using the .swf files is that they are only supported in the Flash output and will not play in the Articulate mobile player or the HTML5 output.

For reference, if needed: http://community.articulate.com/blogs/enders/archive/2013/11/06/3-things-you-need-to-know-about-using-video-in-articulate-storyline.aspx