Duplicate videos in course and post publish edits

So I am sure this bad idea but. (here we go). Within my Storyline 360 course the same video occurs a number of time (many many times).  This is having a negative impact on file size.  Is there anyway to modify the published course files so that each slide refers to a single video file? 

Lets assume that above can't be solved by clever use of layer of course layout.  

Can I modify the publish files so that only one copy of the MP4 is need and I can remove the rest (being fully aware of the risks)?

13 Replies
Joey Buys

Good day Trav.

So my very first thought was: "Why not use master slides?", but to answer your question. It is possible...depending on your publishing settings. I will note though that it is a VERY admin intensive exercise and a simple mistake can potentially break your course. 

You also have to go through the process every single time you re-publish the course - this approach will become a massive headache very quickly.

Is there a particular reason as to why you want to specifically want this approach?

Tom Oscar

HTML5 (The sun is setting on flash).  So flash as fallback. 

And glad it makes sense (if there was any other way support subtitles I would do!)  

Other options are maybe I could add a button that run JavaScript that changes the captions.mp4.js that is referred to?

But otherwise it's a good old fashion 'hack' of the files. 

Joey Buys

"Other options are maybe I could add a button that run JavaScript that changes the captions.mp4.js that is referred to?"

If you can get this to work, it would be ideal.

For the video hack to work, you need to disable flash output. The flash fallback converts the slides in Storyline to .swf files, which we cannot edit at all.

If we publish to HTML5, they are converted to .js files instead, which we can open and analyze. 

I have typed out a very detailed explanation as to how I managed to get the files, links and relationships, but it got very technical very quickly. So I am going to try and keep this short.

Once you published your course, navigate to the html5/data/js/ folder in your Storyline output folder. You will notice a bunch of files at the very top with a random code (ex. 6On3RYOExY5.js). These are your actual slides (in order, meaning the first .js file, will be the first slide in your Storyline file). Open one of these files that contain a video using a text edit. You will be looking for the following entry:

[{"kind":"video","captureanimation":false,"maskwidth":0,"maskheight":0,"playwithanimation":true,"autoplay":true,"showcontrols":false,"autorewind":false,"loop":false,"usedefaultcontrols":false,"accType":"text","defaultAction":"onpress","shapemaskId":"","xPos":0,"yPos":62,"tabIndex":0,"tabEnabled":true,"xOffset":0,"yOffset":0,"rotateXPos":360,"rotateYPos":208,"scaleX":100,"scaleY":100,"alpha":100,"rotation":0,"depth":1,"scrolling":true,"shuffleLock":false,"data":{"hotlinkId":"","accState":0,"videodata":{"assetId":2,"posterAssetId":3,"progindex":"prog_index.m3u8","altText":"Vid 2.mp4","lmstext":"","playgroupid":""}},"width":720,"height":416,"resume":false,"useHandCursor":true,"id":"62VLzUCnmcT","events":[{"kind":"onpress","actions":[{"kind":"media_toggle","objRef":{"type":"string","value":"_this"}}]}]}],"startTime":-1,"elapsedTimeMode":"normal","useHandCursor":false,"resume":false,"kind":"slidelayer","isBaseLayer":true}]}');

The part you are interested in is highlighted above. This is the actual video asset (file) embedded / referenced on the slide. Simply copy this snippet, open the next slide's .js file and paste it over the existing piece of code.

This will replace the video on the second slide with the one present on the 1st slide.

Joey Buys

"Assuming the manifest file will be ok if remove the now unused videos from the zip."

Definitely. I used the imsmanifest.xml file to find the resources. Even though the entries are there, no relationships are defined in this file so you will be good to go. You will notice that for every video you add two files are created. the video file and a placeholder image file (if you look in the example code above, the image is reference in this line: posterAssetId":3). Even though you get rid of the video file, the image file will still be present (located in the mobile folder). So if you get rid of the video and there is a link present somewhere, the placeholder image will load instead.

Ashley Terwilliger-Pollard

Hi Sau,

You were subscribed to the entire section of the forums for Building Better Courses, so that's why clicking unsubscribe at the bottom of each email notification wasn't working for you. That'll only unsubscribe you from the individual discussion. 

I had the team update the subscriptions on our end, and now you can decide to subscribe to individual posts or be automatically subscribed once you respond to a post (that's a setting in your E-Learning Heroes profile). 

Judy Nollet

Hi, R Owen. 

You could add the captions manually, i.e., copy the captions into text boxes or shapes, and have those objects appear at the appropriate times throughout the video.

Depending on complexity of the narration, you could either have separate objects for each language, or use the same objects but with separate States for each language.

You'd need to create your own button for turning those caption objects on or off, so that button could also have the triggers to control which language to show.