The content of this folder will not work as local files as the media files
have to be served in a web server in order to make it work with XMLHttpRequest.
The content of this folder will be synced to
/
and it can be accessed via the following url:
https://storage.googleapis.com/yt-dash-mse-eme-test/0.5.html
