diff --git a/cms/templates/base.html b/cms/templates/base.html
index 0689cefab4..031006f818 100644
--- a/cms/templates/base.html
+++ b/cms/templates/base.html
@@ -80,10 +80,15 @@
// externally hosted files
"tender": "//edxedge.tenderapp.com/tender_widget",
"mathjax": "//edx-static.s3.amazonaws.com/mathjax-MathJax-727332c/MathJax.js?config=TeX-MML-AM_HTMLorMML-full&delayStartupUntil=configured",
- // youtube URL does not end in ".js". We add "?noext" to the path so
- // that require.js adds the ".js" to the query component of the URL,
- // and leaves the path component intact.
- "youtube": "//www.youtube.com/player_api?noext"
+ "youtube": [
+ // youtube URL does not end in ".js". We add "?noext" to the path so
+ // that require.js adds the ".js" to the query component of the URL,
+ // and leaves the path component intact.
+ "//www.youtube.com/player_api?noext",
+ // if youtube fails to load, fallback on a local file
+ // so that require doesn't fall over
+ "js/src/youtube_fallback"
+ ]
},
shim: {
"gettext": {
diff --git a/common/static/js/src/youtube_fallback.js b/common/static/js/src/youtube_fallback.js
new file mode 100644
index 0000000000..23cdb12ddf
--- /dev/null
+++ b/common/static/js/src/youtube_fallback.js
@@ -0,0 +1 @@
+console.error("Can't load YouTube -- anything that relies on it will fail");