diff --git a/content/videos/code/0-trailer/trailer/index.jpg b/content/videos/code/0-trailer/trailer/index.jpg new file mode 100644 index 000000000..a5e26d204 Binary files /dev/null and b/content/videos/code/0-trailer/trailer/index.jpg differ diff --git a/content/videos/code/1-intro/1-intro/index.jpg b/content/videos/code/1-intro/1-intro/index.jpg new file mode 100644 index 000000000..ce29eae29 Binary files /dev/null and b/content/videos/code/1-intro/1-intro/index.jpg differ diff --git a/content/videos/code/1-intro/2-web-editor/index.jpg b/content/videos/code/1-intro/2-web-editor/index.jpg new file mode 100644 index 000000000..f3fca1a90 Binary files /dev/null and b/content/videos/code/1-intro/2-web-editor/index.jpg differ diff --git a/content/videos/code/1-intro/3-shapes-drawing/index.jpg b/content/videos/code/1-intro/3-shapes-drawing/index.jpg new file mode 100644 index 000000000..5a44688af Binary files /dev/null and b/content/videos/code/1-intro/3-shapes-drawing/index.jpg differ diff --git a/content/videos/code/1-intro/4-color/index.jpg b/content/videos/code/1-intro/4-color/index.jpg new file mode 100644 index 000000000..e469f8363 Binary files /dev/null and b/content/videos/code/1-intro/4-color/index.jpg differ diff --git a/content/videos/code/1-intro/5-errors/index.jpg b/content/videos/code/1-intro/5-errors/index.jpg new file mode 100644 index 000000000..e53ad14bf Binary files /dev/null and b/content/videos/code/1-intro/5-errors/index.jpg differ diff --git a/content/videos/code/1-intro/6-comments/index.jpg b/content/videos/code/1-intro/6-comments/index.jpg new file mode 100644 index 000000000..187d7519b Binary files /dev/null and b/content/videos/code/1-intro/6-comments/index.jpg differ diff --git a/content/videos/code/2-variables/1-mouseX-mouseY/index.jpg b/content/videos/code/2-variables/1-mouseX-mouseY/index.jpg new file mode 100644 index 000000000..0c7ddc4a5 Binary files /dev/null and b/content/videos/code/2-variables/1-mouseX-mouseY/index.jpg differ diff --git a/content/videos/code/2-variables/2-define-variables/index.jpg b/content/videos/code/2-variables/2-define-variables/index.jpg new file mode 100644 index 000000000..574c8eef1 Binary files /dev/null and b/content/videos/code/2-variables/2-define-variables/index.jpg differ diff --git a/content/videos/code/2-variables/3-incrementation/index.jpg b/content/videos/code/2-variables/3-incrementation/index.jpg new file mode 100644 index 000000000..5673a6f5d Binary files /dev/null and b/content/videos/code/2-variables/3-incrementation/index.jpg differ diff --git a/content/videos/code/2-variables/4-random/index.jpg b/content/videos/code/2-variables/4-random/index.jpg new file mode 100644 index 000000000..6c0b70d54 Binary files /dev/null and b/content/videos/code/2-variables/4-random/index.jpg differ diff --git a/content/videos/code/2-variables/5-map/index.jpg b/content/videos/code/2-variables/5-map/index.jpg new file mode 100644 index 000000000..5a791ddb5 Binary files /dev/null and b/content/videos/code/2-variables/5-map/index.jpg differ diff --git a/content/videos/code/2-variables/6-createGraphics/index.jpg b/content/videos/code/2-variables/6-createGraphics/index.jpg new file mode 100644 index 000000000..06ed82cd2 Binary files /dev/null and b/content/videos/code/2-variables/6-createGraphics/index.jpg differ diff --git a/content/videos/code/3-conditionals/1-conditionals/index.jpg b/content/videos/code/3-conditionals/1-conditionals/index.jpg new file mode 100644 index 000000000..6cd10a494 Binary files /dev/null and b/content/videos/code/3-conditionals/1-conditionals/index.jpg differ diff --git a/content/videos/code/3-conditionals/2-bouncing/index.jpg b/content/videos/code/3-conditionals/2-bouncing/index.jpg new file mode 100644 index 000000000..e21deb165 Binary files /dev/null and b/content/videos/code/3-conditionals/2-bouncing/index.jpg differ diff --git a/content/videos/code/3-conditionals/3-else-if-and-or/index.jpg b/content/videos/code/3-conditionals/3-else-if-and-or/index.jpg new file mode 100644 index 000000000..acc393d6e Binary files /dev/null and b/content/videos/code/3-conditionals/3-else-if-and-or/index.jpg differ diff --git a/content/videos/code/3-conditionals/4-boolean/index.jpg b/content/videos/code/3-conditionals/4-boolean/index.jpg new file mode 100644 index 000000000..b636a7c45 Binary files /dev/null and b/content/videos/code/3-conditionals/4-boolean/index.jpg differ diff --git a/content/videos/code/4-loops/1-while-for/index.jpg b/content/videos/code/4-loops/1-while-for/index.jpg new file mode 100644 index 000000000..c33ad09cc Binary files /dev/null and b/content/videos/code/4-loops/1-while-for/index.jpg differ diff --git a/content/videos/code/4-loops/2-nested/index.jpg b/content/videos/code/4-loops/2-nested/index.jpg new file mode 100644 index 000000000..c12ed1012 Binary files /dev/null and b/content/videos/code/4-loops/2-nested/index.jpg differ diff --git a/content/videos/code/5-functions/1-basics/index.jpg b/content/videos/code/5-functions/1-basics/index.jpg new file mode 100644 index 000000000..0423ef14a Binary files /dev/null and b/content/videos/code/5-functions/1-basics/index.jpg differ diff --git a/content/videos/code/5-functions/2-arguments/index.jpg b/content/videos/code/5-functions/2-arguments/index.jpg new file mode 100644 index 000000000..66e3442a0 Binary files /dev/null and b/content/videos/code/5-functions/2-arguments/index.jpg differ diff --git a/content/videos/code/5-functions/3-return/index.jpg b/content/videos/code/5-functions/3-return/index.jpg new file mode 100644 index 000000000..32d92d313 Binary files /dev/null and b/content/videos/code/5-functions/3-return/index.jpg differ diff --git a/content/videos/code/6-objects/1-intro/index.jpg b/content/videos/code/6-objects/1-intro/index.jpg new file mode 100644 index 000000000..5b0a895ac Binary files /dev/null and b/content/videos/code/6-objects/1-intro/index.jpg differ diff --git a/content/videos/code/6-objects/2-classes/index.jpg b/content/videos/code/6-objects/2-classes/index.jpg new file mode 100644 index 000000000..b616f21df Binary files /dev/null and b/content/videos/code/6-objects/2-classes/index.jpg differ diff --git a/content/videos/code/6-objects/3-constructor/index.jpg b/content/videos/code/6-objects/3-constructor/index.jpg new file mode 100644 index 000000000..66e52a79d Binary files /dev/null and b/content/videos/code/6-objects/3-constructor/index.jpg differ diff --git a/content/videos/code/6-objects/4-editor-js-files/index.jpg b/content/videos/code/6-objects/4-editor-js-files/index.jpg new file mode 100644 index 000000000..f2ffdaef2 Binary files /dev/null and b/content/videos/code/6-objects/4-editor-js-files/index.jpg differ diff --git a/content/videos/code/7-arrays/1-arrays/index.jpg b/content/videos/code/7-arrays/1-arrays/index.jpg new file mode 100644 index 000000000..ab1925286 Binary files /dev/null and b/content/videos/code/7-arrays/1-arrays/index.jpg differ diff --git a/content/videos/code/7-arrays/2-arrays-loops/index.jpg b/content/videos/code/7-arrays/2-arrays-loops/index.jpg new file mode 100644 index 000000000..cb1a2c9b9 Binary files /dev/null and b/content/videos/code/7-arrays/2-arrays-loops/index.jpg differ diff --git a/content/videos/code/7-arrays/3-arrays-objects/index.jpg b/content/videos/code/7-arrays/3-arrays-objects/index.jpg new file mode 100644 index 000000000..d914f7965 Binary files /dev/null and b/content/videos/code/7-arrays/3-arrays-objects/index.jpg differ diff --git a/content/videos/code/7-arrays/4-mouse-interaction/index.jpg b/content/videos/code/7-arrays/4-mouse-interaction/index.jpg new file mode 100644 index 000000000..da50979fa Binary files /dev/null and b/content/videos/code/7-arrays/4-mouse-interaction/index.jpg differ diff --git a/content/videos/code/7-arrays/5-removing-elements/index.jpg b/content/videos/code/7-arrays/5-removing-elements/index.jpg new file mode 100644 index 000000000..17d2b9fa7 Binary files /dev/null and b/content/videos/code/7-arrays/5-removing-elements/index.jpg differ diff --git a/content/videos/code/7-arrays/6-object-communication-1/index.jpg b/content/videos/code/7-arrays/6-object-communication-1/index.jpg new file mode 100644 index 000000000..1f5328826 Binary files /dev/null and b/content/videos/code/7-arrays/6-object-communication-1/index.jpg differ diff --git a/content/videos/code/7-arrays/7-object-communication-2/index.jpg b/content/videos/code/7-arrays/7-object-communication-2/index.jpg new file mode 100644 index 000000000..87fbc7e2c Binary files /dev/null and b/content/videos/code/7-arrays/7-object-communication-2/index.jpg differ diff --git a/content/videos/code/7-arrays/8-objects-images/index.jpg b/content/videos/code/7-arrays/8-objects-images/index.jpg new file mode 100644 index 000000000..7268e09a6 Binary files /dev/null and b/content/videos/code/7-arrays/8-objects-images/index.jpg differ diff --git a/content/videos/code/7-arrays/upload-editor/index.jpg b/content/videos/code/7-arrays/upload-editor/index.jpg new file mode 100644 index 000000000..0cbd2b88c Binary files /dev/null and b/content/videos/code/7-arrays/upload-editor/index.jpg differ diff --git a/content/videos/data/1-client-side/1-fetch/index.jpg b/content/videos/data/1-client-side/1-fetch/index.jpg new file mode 100644 index 000000000..3a8709bac Binary files /dev/null and b/content/videos/data/1-client-side/1-fetch/index.jpg differ diff --git a/content/videos/data/1-client-side/2-tabular-data/index.jpg b/content/videos/data/1-client-side/2-tabular-data/index.jpg new file mode 100644 index 000000000..95c5a1b04 Binary files /dev/null and b/content/videos/data/1-client-side/2-tabular-data/index.jpg differ diff --git a/content/videos/data/1-client-side/3-graphing/index.jpg b/content/videos/data/1-client-side/3-graphing/index.jpg new file mode 100644 index 000000000..f2f3b46b4 Binary files /dev/null and b/content/videos/data/1-client-side/3-graphing/index.jpg differ diff --git a/content/videos/data/1-client-side/4-json/index.jpg b/content/videos/data/1-client-side/4-json/index.jpg new file mode 100644 index 000000000..5b1992806 Binary files /dev/null and b/content/videos/data/1-client-side/4-json/index.jpg differ diff --git a/content/videos/data/1-client-side/5-mapping-geolocation/index.jpg b/content/videos/data/1-client-side/5-mapping-geolocation/index.jpg new file mode 100644 index 000000000..b34db7966 Binary files /dev/null and b/content/videos/data/1-client-side/5-mapping-geolocation/index.jpg differ diff --git a/content/videos/data/1-client-side/6-refreshing-data-with-setinterval/index.jpg b/content/videos/data/1-client-side/6-refreshing-data-with-setinterval/index.jpg new file mode 100644 index 000000000..9e9686bd7 Binary files /dev/null and b/content/videos/data/1-client-side/6-refreshing-data-with-setinterval/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/1-server-side-with-node-js/index.jpg b/content/videos/data/2-data-selfie-app/1-server-side-with-node-js/index.jpg new file mode 100644 index 000000000..86b0043fc Binary files /dev/null and b/content/videos/data/2-data-selfie-app/1-server-side-with-node-js/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/2-geolocation-web-api/index.jpg b/content/videos/data/2-data-selfie-app/2-geolocation-web-api/index.jpg new file mode 100644 index 000000000..6a8a9e296 Binary files /dev/null and b/content/videos/data/2-data-selfie-app/2-geolocation-web-api/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/3-http-post-request/index.jpg b/content/videos/data/2-data-selfie-app/3-http-post-request/index.jpg new file mode 100644 index 000000000..1718b6fd1 Binary files /dev/null and b/content/videos/data/2-data-selfie-app/3-http-post-request/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/4-saving-to-a-database/index.jpg b/content/videos/data/2-data-selfie-app/4-saving-to-a-database/index.jpg new file mode 100644 index 000000000..a35be0bcd Binary files /dev/null and b/content/videos/data/2-data-selfie-app/4-saving-to-a-database/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/5-database-query/index.jpg b/content/videos/data/2-data-selfie-app/5-database-query/index.jpg new file mode 100644 index 000000000..3c3f4203c Binary files /dev/null and b/content/videos/data/2-data-selfie-app/5-database-query/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/6-encoding-images/index.jpg b/content/videos/data/2-data-selfie-app/6-encoding-images/index.jpg new file mode 100644 index 000000000..7a6240c99 Binary files /dev/null and b/content/videos/data/2-data-selfie-app/6-encoding-images/index.jpg differ diff --git a/content/videos/data/2-data-selfie-app/7-accessibility-and-design/index.jpg b/content/videos/data/2-data-selfie-app/7-accessibility-and-design/index.jpg new file mode 100644 index 000000000..ae5f5dcf5 Binary files /dev/null and b/content/videos/data/2-data-selfie-app/7-accessibility-and-design/index.jpg differ diff --git a/content/videos/data/3-the-weather-here/1-api-calls-from-node-js/index.jpg b/content/videos/data/3-the-weather-here/1-api-calls-from-node-js/index.jpg new file mode 100644 index 000000000..35f0cb7e2 Binary files /dev/null and b/content/videos/data/3-the-weather-here/1-api-calls-from-node-js/index.jpg differ diff --git a/content/videos/data/3-the-weather-here/2-open-air-quality-api/index.jpg b/content/videos/data/3-the-weather-here/2-open-air-quality-api/index.jpg new file mode 100644 index 000000000..9447a5c9d Binary files /dev/null and b/content/videos/data/3-the-weather-here/2-open-air-quality-api/index.jpg differ diff --git a/content/videos/data/3-the-weather-here/3-mapping-database-entries/index.jpg b/content/videos/data/3-the-weather-here/3-mapping-database-entries/index.jpg new file mode 100644 index 000000000..0ca7f57d6 Binary files /dev/null and b/content/videos/data/3-the-weather-here/3-mapping-database-entries/index.jpg differ diff --git a/content/videos/data/3-the-weather-here/4-environment-variables/index.jpg b/content/videos/data/3-the-weather-here/4-environment-variables/index.jpg new file mode 100644 index 000000000..19cf56a1f Binary files /dev/null and b/content/videos/data/3-the-weather-here/4-environment-variables/index.jpg differ diff --git a/content/videos/data/3-the-weather-here/5-web-application-deployment/index.jpg b/content/videos/data/3-the-weather-here/5-web-application-deployment/index.jpg new file mode 100644 index 000000000..3cadef1b8 Binary files /dev/null and b/content/videos/data/3-the-weather-here/5-web-application-deployment/index.jpg differ diff --git a/content/videos/data/welcome/setup/index.jpg b/content/videos/data/welcome/setup/index.jpg new file mode 100644 index 000000000..4abc03004 Binary files /dev/null and b/content/videos/data/welcome/setup/index.jpg differ diff --git a/content/videos/data/welcome/trailer/index.jpg b/content/videos/data/welcome/trailer/index.jpg new file mode 100644 index 000000000..015b56d5b Binary files /dev/null and b/content/videos/data/welcome/trailer/index.jpg differ diff --git a/content/videos/discord/2023-workflow/index.jpg b/content/videos/discord/2023-workflow/index.jpg new file mode 100644 index 000000000..56d416937 Binary files /dev/null and b/content/videos/discord/2023-workflow/index.jpg differ diff --git a/content/videos/discord/coding-a-bot/index.jpg b/content/videos/discord/coding-a-bot/index.jpg new file mode 100644 index 000000000..82250f06a Binary files /dev/null and b/content/videos/discord/coding-a-bot/index.jpg differ diff --git a/content/videos/discord/setup-node-project/index.jpg b/content/videos/discord/setup-node-project/index.jpg new file mode 100644 index 000000000..09a8a39a0 Binary files /dev/null and b/content/videos/discord/setup-node-project/index.jpg differ diff --git a/content/videos/git/1-fundamentals/1-intro/index.jpg b/content/videos/git/1-fundamentals/1-intro/index.jpg new file mode 100644 index 000000000..de236fe52 Binary files /dev/null and b/content/videos/git/1-fundamentals/1-intro/index.jpg differ diff --git a/content/videos/git/1-fundamentals/10-git-remotes/index.jpg b/content/videos/git/1-fundamentals/10-git-remotes/index.jpg new file mode 100644 index 000000000..d539df373 Binary files /dev/null and b/content/videos/git/1-fundamentals/10-git-remotes/index.jpg differ diff --git a/content/videos/git/1-fundamentals/2-branches/index.jpg b/content/videos/git/1-fundamentals/2-branches/index.jpg new file mode 100644 index 000000000..8fc3899bf Binary files /dev/null and b/content/videos/git/1-fundamentals/2-branches/index.jpg differ diff --git a/content/videos/git/1-fundamentals/3-forks-pr/index.jpg b/content/videos/git/1-fundamentals/3-forks-pr/index.jpg new file mode 100644 index 000000000..4c343003c Binary files /dev/null and b/content/videos/git/1-fundamentals/3-forks-pr/index.jpg differ diff --git a/content/videos/git/1-fundamentals/4-issues/index.jpg b/content/videos/git/1-fundamentals/4-issues/index.jpg new file mode 100644 index 000000000..5fff52de9 Binary files /dev/null and b/content/videos/git/1-fundamentals/4-issues/index.jpg differ diff --git a/content/videos/git/1-fundamentals/5-command-line/index.jpg b/content/videos/git/1-fundamentals/5-command-line/index.jpg new file mode 100644 index 000000000..cc25d6e39 Binary files /dev/null and b/content/videos/git/1-fundamentals/5-command-line/index.jpg differ diff --git a/content/videos/git/1-fundamentals/6-cloning-repo/index.jpg b/content/videos/git/1-fundamentals/6-cloning-repo/index.jpg new file mode 100644 index 000000000..432b542be Binary files /dev/null and b/content/videos/git/1-fundamentals/6-cloning-repo/index.jpg differ diff --git a/content/videos/git/1-fundamentals/7-git-init/index.jpg b/content/videos/git/1-fundamentals/7-git-init/index.jpg new file mode 100644 index 000000000..cd42cbb37 Binary files /dev/null and b/content/videos/git/1-fundamentals/7-git-init/index.jpg differ diff --git a/content/videos/git/1-fundamentals/8-pages/index.jpg b/content/videos/git/1-fundamentals/8-pages/index.jpg new file mode 100644 index 000000000..05f810c58 Binary files /dev/null and b/content/videos/git/1-fundamentals/8-pages/index.jpg differ diff --git a/content/videos/git/1-fundamentals/9-resolve-conflicts/index.jpg b/content/videos/git/1-fundamentals/9-resolve-conflicts/index.jpg new file mode 100644 index 000000000..9dc9e80e2 Binary files /dev/null and b/content/videos/git/1-fundamentals/9-resolve-conflicts/index.jpg differ diff --git a/content/videos/js/array-filter/index.jpg b/content/videos/js/array-filter/index.jpg new file mode 100644 index 000000000..648cc110e Binary files /dev/null and b/content/videos/js/array-filter/index.jpg differ diff --git a/content/videos/js/array-map-and-fill/index.jpg b/content/videos/js/array-map-and-fill/index.jpg new file mode 100644 index 000000000..3e0414703 Binary files /dev/null and b/content/videos/js/array-map-and-fill/index.jpg differ diff --git a/content/videos/js/array-reduce/index.jpg b/content/videos/js/array-reduce/index.jpg new file mode 100644 index 000000000..60a677d7e Binary files /dev/null and b/content/videos/js/array-reduce/index.jpg differ diff --git a/content/videos/js/array-sort/index.jpg b/content/videos/js/array-sort/index.jpg new file mode 100644 index 000000000..2f78f9fba Binary files /dev/null and b/content/videos/js/array-sort/index.jpg differ diff --git a/content/videos/js/arrow-functions/index.jpg b/content/videos/js/arrow-functions/index.jpg new file mode 100644 index 000000000..6541d8b25 Binary files /dev/null and b/content/videos/js/arrow-functions/index.jpg differ diff --git a/content/videos/js/async-await-part-1/index.jpg b/content/videos/js/async-await-part-1/index.jpg new file mode 100644 index 000000000..659cc9b61 Binary files /dev/null and b/content/videos/js/async-await-part-1/index.jpg differ diff --git a/content/videos/js/async-await-part-2/index.jpg b/content/videos/js/async-await-part-2/index.jpg new file mode 100644 index 000000000..6da3ec343 Binary files /dev/null and b/content/videos/js/async-await-part-2/index.jpg differ diff --git a/content/videos/js/const/index.jpg b/content/videos/js/const/index.jpg new file mode 100644 index 000000000..96dd8b106 Binary files /dev/null and b/content/videos/js/const/index.jpg differ diff --git a/content/videos/js/for-of-loop/index.jpg b/content/videos/js/for-of-loop/index.jpg new file mode 100644 index 000000000..5137d09ca Binary files /dev/null and b/content/videos/js/for-of-loop/index.jpg differ diff --git a/content/videos/js/higher-order-functions/index.jpg b/content/videos/js/higher-order-functions/index.jpg new file mode 100644 index 000000000..720f4a4cf Binary files /dev/null and b/content/videos/js/higher-order-functions/index.jpg differ diff --git a/content/videos/js/inheritance/index.jpg b/content/videos/js/inheritance/index.jpg new file mode 100644 index 000000000..590bf3503 Binary files /dev/null and b/content/videos/js/inheritance/index.jpg differ diff --git a/content/videos/js/let-vs-var/index.jpg b/content/videos/js/let-vs-var/index.jpg new file mode 100644 index 000000000..fdc7ce785 Binary files /dev/null and b/content/videos/js/let-vs-var/index.jpg differ diff --git a/content/videos/js/particle-system-with-array-functions/index.jpg b/content/videos/js/particle-system-with-array-functions/index.jpg new file mode 100644 index 000000000..1465c06d7 Binary files /dev/null and b/content/videos/js/particle-system-with-array-functions/index.jpg differ diff --git a/content/videos/js/polymorphism/index.jpg b/content/videos/js/polymorphism/index.jpg new file mode 100644 index 000000000..1513f7efd Binary files /dev/null and b/content/videos/js/polymorphism/index.jpg differ diff --git a/content/videos/js/promise-all/index.jpg b/content/videos/js/promise-all/index.jpg new file mode 100644 index 000000000..3b4a33c3d Binary files /dev/null and b/content/videos/js/promise-all/index.jpg differ diff --git a/content/videos/js/promises-part-1/index.jpg b/content/videos/js/promises-part-1/index.jpg new file mode 100644 index 000000000..8174b2c6e Binary files /dev/null and b/content/videos/js/promises-part-1/index.jpg differ diff --git a/content/videos/js/promises-part-2/index.jpg b/content/videos/js/promises-part-2/index.jpg new file mode 100644 index 000000000..e7b73e10d Binary files /dev/null and b/content/videos/js/promises-part-2/index.jpg differ diff --git a/content/videos/js/try-catch/index.jpg b/content/videos/js/try-catch/index.jpg new file mode 100644 index 000000000..7d1d84ea1 Binary files /dev/null and b/content/videos/js/try-catch/index.jpg differ diff --git a/content/videos/livestreams/creative_coding_ai_agent/index.jpg b/content/videos/livestreams/creative_coding_ai_agent/index.jpg new file mode 100644 index 000000000..2a4971d1b Binary files /dev/null and b/content/videos/livestreams/creative_coding_ai_agent/index.jpg differ diff --git a/content/videos/livestreams/decade-of-code/index.jpg b/content/videos/livestreams/decade-of-code/index.jpg new file mode 100644 index 000000000..535d2d1c5 Binary files /dev/null and b/content/videos/livestreams/decade-of-code/index.jpg differ diff --git a/content/videos/livestreams/genuary/index.jpg b/content/videos/livestreams/genuary/index.jpg new file mode 100644 index 000000000..0ed4a288c Binary files /dev/null and b/content/videos/livestreams/genuary/index.jpg differ diff --git a/content/videos/livestreams/sentence-embeddings/clustering-sentence-embeddings/index.jpg b/content/videos/livestreams/sentence-embeddings/clustering-sentence-embeddings/index.jpg new file mode 100644 index 000000000..0498a8f68 Binary files /dev/null and b/content/videos/livestreams/sentence-embeddings/clustering-sentence-embeddings/index.jpg differ diff --git a/content/videos/livestreams/shiffbot/index.jpg b/content/videos/livestreams/shiffbot/index.jpg new file mode 100644 index 000000000..e33e14e94 Binary files /dev/null and b/content/videos/livestreams/shiffbot/index.jpg differ diff --git a/content/videos/mastodon/environmental-variables-in-node/index.jpg b/content/videos/mastodon/environmental-variables-in-node/index.jpg new file mode 100644 index 000000000..d07108773 Binary files /dev/null and b/content/videos/mastodon/environmental-variables-in-node/index.jpg differ diff --git a/content/videos/mastodon/managing-user-events/index.jpg b/content/videos/mastodon/managing-user-events/index.jpg new file mode 100644 index 000000000..e1cd0f7b9 Binary files /dev/null and b/content/videos/mastodon/managing-user-events/index.jpg differ diff --git a/content/videos/mastodon/posting-with-setInterval/index.jpg b/content/videos/mastodon/posting-with-setInterval/index.jpg new file mode 100644 index 000000000..47586d809 Binary files /dev/null and b/content/videos/mastodon/posting-with-setInterval/index.jpg differ diff --git a/content/videos/mastodon/replying-to-a-mention/index.jpg b/content/videos/mastodon/replying-to-a-mention/index.jpg new file mode 100644 index 000000000..015cee0fc Binary files /dev/null and b/content/videos/mastodon/replying-to-a-mention/index.jpg differ diff --git a/content/videos/mastodon/setting-up-a-mastodon-bot/index.jpg b/content/videos/mastodon/setting-up-a-mastodon-bot/index.jpg new file mode 100644 index 000000000..c791488e7 Binary files /dev/null and b/content/videos/mastodon/setting-up-a-mastodon-bot/index.jpg differ diff --git a/content/videos/mastodon/streaming-api/index.jpg b/content/videos/mastodon/streaming-api/index.jpg new file mode 100644 index 000000000..9c58f9017 Binary files /dev/null and b/content/videos/mastodon/streaming-api/index.jpg differ diff --git a/content/videos/mastodon/what-is-mastodon/index.jpg b/content/videos/mastodon/what-is-mastodon/index.jpg new file mode 100644 index 000000000..ff6f41dd7 Binary files /dev/null and b/content/videos/mastodon/what-is-mastodon/index.jpg differ diff --git a/content/videos/mastodon/what-is-node-js/index.jpg b/content/videos/mastodon/what-is-node-js/index.jpg new file mode 100644 index 000000000..ec43527ce Binary files /dev/null and b/content/videos/mastodon/what-is-node-js/index.jpg differ diff --git a/content/videos/mastodon/what-is-npm/index.jpg b/content/videos/mastodon/what-is-npm/index.jpg new file mode 100644 index 000000000..dee455b3b Binary files /dev/null and b/content/videos/mastodon/what-is-npm/index.jpg differ diff --git a/content/videos/ml5/0-introduction/1-introduction/index.jpg b/content/videos/ml5/0-introduction/1-introduction/index.jpg new file mode 100644 index 000000000..cab7c4202 Binary files /dev/null and b/content/videos/ml5/0-introduction/1-introduction/index.jpg differ diff --git a/content/videos/ml5/1-classification/1-image-classification/index.jpg b/content/videos/ml5/1-classification/1-image-classification/index.jpg new file mode 100644 index 000000000..43be58269 Binary files /dev/null and b/content/videos/ml5/1-classification/1-image-classification/index.jpg differ diff --git a/content/videos/ml5/1-classification/2-webcam-classification/index.jpg b/content/videos/ml5/1-classification/2-webcam-classification/index.jpg new file mode 100644 index 000000000..c34e257b8 Binary files /dev/null and b/content/videos/ml5/1-classification/2-webcam-classification/index.jpg differ diff --git a/content/videos/ml5/1-classification/3-object-detection/index.jpg b/content/videos/ml5/1-classification/3-object-detection/index.jpg new file mode 100644 index 000000000..1ec1b73be Binary files /dev/null and b/content/videos/ml5/1-classification/3-object-detection/index.jpg differ diff --git a/content/videos/ml5/10-sound-classification/1-sound-classification/index.jpg b/content/videos/ml5/10-sound-classification/1-sound-classification/index.jpg new file mode 100644 index 000000000..40a1107b7 Binary files /dev/null and b/content/videos/ml5/10-sound-classification/1-sound-classification/index.jpg differ diff --git a/content/videos/ml5/2-transfer-learning/1-transfer-learning/index.jpg b/content/videos/ml5/2-transfer-learning/1-transfer-learning/index.jpg new file mode 100644 index 000000000..d00384070 Binary files /dev/null and b/content/videos/ml5/2-transfer-learning/1-transfer-learning/index.jpg differ diff --git a/content/videos/ml5/3-feature-extractor/1-classification/index.jpg b/content/videos/ml5/3-feature-extractor/1-classification/index.jpg new file mode 100644 index 000000000..e090e448c Binary files /dev/null and b/content/videos/ml5/3-feature-extractor/1-classification/index.jpg differ diff --git a/content/videos/ml5/3-feature-extractor/2-regression/index.jpg b/content/videos/ml5/3-feature-extractor/2-regression/index.jpg new file mode 100644 index 000000000..18351e33a Binary files /dev/null and b/content/videos/ml5/3-feature-extractor/2-regression/index.jpg differ diff --git a/content/videos/ml5/4-save-and-load-model/1-save-load-model/index.jpg b/content/videos/ml5/4-save-and-load-model/1-save-load-model/index.jpg new file mode 100644 index 000000000..022c0be57 Binary files /dev/null and b/content/videos/ml5/4-save-and-load-model/1-save-load-model/index.jpg differ diff --git a/content/videos/ml5/5-knn-classification/1-build-the-image-classifier/index.jpg b/content/videos/ml5/5-knn-classification/1-build-the-image-classifier/index.jpg new file mode 100644 index 000000000..e7d4b31d0 Binary files /dev/null and b/content/videos/ml5/5-knn-classification/1-build-the-image-classifier/index.jpg differ diff --git a/content/videos/ml5/5-knn-classification/2-train-the-model/index.jpg b/content/videos/ml5/5-knn-classification/2-train-the-model/index.jpg new file mode 100644 index 000000000..50f1868d4 Binary files /dev/null and b/content/videos/ml5/5-knn-classification/2-train-the-model/index.jpg differ diff --git a/content/videos/ml5/5-knn-classification/3-save-and-load-model/index.jpg b/content/videos/ml5/5-knn-classification/3-save-and-load-model/index.jpg new file mode 100644 index 000000000..3321e4abd Binary files /dev/null and b/content/videos/ml5/5-knn-classification/3-save-and-load-model/index.jpg differ diff --git a/content/videos/ml5/6-train-your-own-neural-network/1-train-the-model/index.jpg b/content/videos/ml5/6-train-your-own-neural-network/1-train-the-model/index.jpg new file mode 100644 index 000000000..c867c8023 Binary files /dev/null and b/content/videos/ml5/6-train-your-own-neural-network/1-train-the-model/index.jpg differ diff --git a/content/videos/ml5/6-train-your-own-neural-network/2-save-data/index.jpg b/content/videos/ml5/6-train-your-own-neural-network/2-save-data/index.jpg new file mode 100644 index 000000000..fd1cc4ce2 Binary files /dev/null and b/content/videos/ml5/6-train-your-own-neural-network/2-save-data/index.jpg differ diff --git a/content/videos/ml5/6-train-your-own-neural-network/3-save-model/index.jpg b/content/videos/ml5/6-train-your-own-neural-network/3-save-model/index.jpg new file mode 100644 index 000000000..48e76299c Binary files /dev/null and b/content/videos/ml5/6-train-your-own-neural-network/3-save-model/index.jpg differ diff --git a/content/videos/ml5/6-train-your-own-neural-network/4-regression/index.jpg b/content/videos/ml5/6-train-your-own-neural-network/4-regression/index.jpg new file mode 100644 index 000000000..effd259c4 Binary files /dev/null and b/content/videos/ml5/6-train-your-own-neural-network/4-regression/index.jpg differ diff --git a/content/videos/ml5/7-posenet/1-finding-keypoints/index.jpg b/content/videos/ml5/7-posenet/1-finding-keypoints/index.jpg new file mode 100644 index 000000000..78664fa4f Binary files /dev/null and b/content/videos/ml5/7-posenet/1-finding-keypoints/index.jpg differ diff --git a/content/videos/ml5/7-posenet/2-pose-classifier/index.jpg b/content/videos/ml5/7-posenet/2-pose-classifier/index.jpg new file mode 100644 index 000000000..26d6227e0 Binary files /dev/null and b/content/videos/ml5/7-posenet/2-pose-classifier/index.jpg differ diff --git a/content/videos/ml5/7-posenet/3-pose-regression/index.jpg b/content/videos/ml5/7-posenet/3-pose-regression/index.jpg new file mode 100644 index 000000000..9f10fa14e Binary files /dev/null and b/content/videos/ml5/7-posenet/3-pose-regression/index.jpg differ diff --git a/content/videos/ml5/8-convolutional-neural-network/1-pixels-as-input/index.jpg b/content/videos/ml5/8-convolutional-neural-network/1-pixels-as-input/index.jpg new file mode 100644 index 000000000..e2d972bf3 Binary files /dev/null and b/content/videos/ml5/8-convolutional-neural-network/1-pixels-as-input/index.jpg differ diff --git a/content/videos/ml5/8-convolutional-neural-network/2-architecture-of-cnn/index.jpg b/content/videos/ml5/8-convolutional-neural-network/2-architecture-of-cnn/index.jpg new file mode 100644 index 000000000..7e488d13b Binary files /dev/null and b/content/videos/ml5/8-convolutional-neural-network/2-architecture-of-cnn/index.jpg differ diff --git a/content/videos/ml5/8-convolutional-neural-network/3-max-pooling/index.jpg b/content/videos/ml5/8-convolutional-neural-network/3-max-pooling/index.jpg new file mode 100644 index 000000000..018236ecd Binary files /dev/null and b/content/videos/ml5/8-convolutional-neural-network/3-max-pooling/index.jpg differ diff --git a/content/videos/ml5/8-convolutional-neural-network/4-image-classification/index.jpg b/content/videos/ml5/8-convolutional-neural-network/4-image-classification/index.jpg new file mode 100644 index 000000000..174df354a Binary files /dev/null and b/content/videos/ml5/8-convolutional-neural-network/4-image-classification/index.jpg differ diff --git a/content/videos/ml5/9-doodleNet/1-doodleNet/index.jpg b/content/videos/ml5/9-doodleNet/1-doodleNet/index.jpg new file mode 100644 index 000000000..eea81153a Binary files /dev/null and b/content/videos/ml5/9-doodleNet/1-doodleNet/index.jpg differ diff --git a/content/videos/more-p5/2d-arrays/index.jpg b/content/videos/more-p5/2d-arrays/index.jpg new file mode 100644 index 000000000..20b44b10a Binary files /dev/null and b/content/videos/more-p5/2d-arrays/index.jpg differ diff --git a/content/videos/more-p5/custom-shapes/index.jpg b/content/videos/more-p5/custom-shapes/index.jpg new file mode 100644 index 000000000..954948a3d Binary files /dev/null and b/content/videos/more-p5/custom-shapes/index.jpg differ diff --git a/content/videos/more-p5/github-pages-hosting/index.jpg b/content/videos/more-p5/github-pages-hosting/index.jpg new file mode 100644 index 000000000..6c8ffe9f2 Binary files /dev/null and b/content/videos/more-p5/github-pages-hosting/index.jpg differ diff --git a/content/videos/more-p5/local-storage/index.jpg b/content/videos/more-p5/local-storage/index.jpg new file mode 100644 index 000000000..fc46862b9 Binary files /dev/null and b/content/videos/more-p5/local-storage/index.jpg differ diff --git a/content/videos/more-p5/pixel-array/index.jpg b/content/videos/more-p5/pixel-array/index.jpg new file mode 100644 index 000000000..f21b82199 Binary files /dev/null and b/content/videos/more-p5/pixel-array/index.jpg differ diff --git a/content/videos/neural-networks/1-introduction/index.jpg b/content/videos/neural-networks/1-introduction/index.jpg new file mode 100644 index 000000000..cd3e87d57 Binary files /dev/null and b/content/videos/neural-networks/1-introduction/index.jpg differ diff --git a/content/videos/neural-networks/10-transpose/index.jpg b/content/videos/neural-networks/10-transpose/index.jpg new file mode 100644 index 000000000..31a050aaa Binary files /dev/null and b/content/videos/neural-networks/10-transpose/index.jpg differ diff --git a/content/videos/neural-networks/11-matrix-class-improvements/index.jpg b/content/videos/neural-networks/11-matrix-class-improvements/index.jpg new file mode 100644 index 000000000..d9a258183 Binary files /dev/null and b/content/videos/neural-networks/11-matrix-class-improvements/index.jpg differ diff --git a/content/videos/neural-networks/12-feedforward-algorithm-part-1/index.jpg b/content/videos/neural-networks/12-feedforward-algorithm-part-1/index.jpg new file mode 100644 index 000000000..b14584579 Binary files /dev/null and b/content/videos/neural-networks/12-feedforward-algorithm-part-1/index.jpg differ diff --git a/content/videos/neural-networks/13-feedforward-algorithm-part-2/index.jpg b/content/videos/neural-networks/13-feedforward-algorithm-part-2/index.jpg new file mode 100644 index 000000000..21da8971c Binary files /dev/null and b/content/videos/neural-networks/13-feedforward-algorithm-part-2/index.jpg differ diff --git a/content/videos/neural-networks/14-backpropagation-part-1/index.jpg b/content/videos/neural-networks/14-backpropagation-part-1/index.jpg new file mode 100644 index 000000000..7a7b2c06b Binary files /dev/null and b/content/videos/neural-networks/14-backpropagation-part-1/index.jpg differ diff --git a/content/videos/neural-networks/15-backpropagation-part-2/index.jpg b/content/videos/neural-networks/15-backpropagation-part-2/index.jpg new file mode 100644 index 000000000..79c4501a5 Binary files /dev/null and b/content/videos/neural-networks/15-backpropagation-part-2/index.jpg differ diff --git a/content/videos/neural-networks/16-backpropagation-part-3/index.jpg b/content/videos/neural-networks/16-backpropagation-part-3/index.jpg new file mode 100644 index 000000000..3ad03fe26 Binary files /dev/null and b/content/videos/neural-networks/16-backpropagation-part-3/index.jpg differ diff --git a/content/videos/neural-networks/17-backpropagation-part-4/index.jpg b/content/videos/neural-networks/17-backpropagation-part-4/index.jpg new file mode 100644 index 000000000..4cb3dd935 Binary files /dev/null and b/content/videos/neural-networks/17-backpropagation-part-4/index.jpg differ diff --git a/content/videos/neural-networks/18-backpropagation-part-5/index.jpg b/content/videos/neural-networks/18-backpropagation-part-5/index.jpg new file mode 100644 index 000000000..607711c8c Binary files /dev/null and b/content/videos/neural-networks/18-backpropagation-part-5/index.jpg differ diff --git a/content/videos/neural-networks/2-perceptron-part-1/index.jpg b/content/videos/neural-networks/2-perceptron-part-1/index.jpg new file mode 100644 index 000000000..d57810060 Binary files /dev/null and b/content/videos/neural-networks/2-perceptron-part-1/index.jpg differ diff --git a/content/videos/neural-networks/3-perceptron-part-2/index.jpg b/content/videos/neural-networks/3-perceptron-part-2/index.jpg new file mode 100644 index 000000000..d3399527f Binary files /dev/null and b/content/videos/neural-networks/3-perceptron-part-2/index.jpg differ diff --git a/content/videos/neural-networks/4-multilayer-perceptron-part-1/index.jpg b/content/videos/neural-networks/4-multilayer-perceptron-part-1/index.jpg new file mode 100644 index 000000000..6ba37af39 Binary files /dev/null and b/content/videos/neural-networks/4-multilayer-perceptron-part-1/index.jpg differ diff --git a/content/videos/neural-networks/5-multilayer-perceptron-part-2/index.jpg b/content/videos/neural-networks/5-multilayer-perceptron-part-2/index.jpg new file mode 100644 index 000000000..21551ea86 Binary files /dev/null and b/content/videos/neural-networks/5-multilayer-perceptron-part-2/index.jpg differ diff --git a/content/videos/neural-networks/6-matrix-math-basics/index.jpg b/content/videos/neural-networks/6-matrix-math-basics/index.jpg new file mode 100644 index 000000000..a1f3edd1f Binary files /dev/null and b/content/videos/neural-networks/6-matrix-math-basics/index.jpg differ diff --git a/content/videos/neural-networks/7-element-wise-operations/index.jpg b/content/videos/neural-networks/7-element-wise-operations/index.jpg new file mode 100644 index 000000000..6989bacc9 Binary files /dev/null and b/content/videos/neural-networks/7-element-wise-operations/index.jpg differ diff --git a/content/videos/neural-networks/8-updating-code-to-es6/index.jpg b/content/videos/neural-networks/8-updating-code-to-es6/index.jpg new file mode 100644 index 000000000..45baeee8f Binary files /dev/null and b/content/videos/neural-networks/8-updating-code-to-es6/index.jpg differ diff --git a/content/videos/neural-networks/9-matrix-product/index.jpg b/content/videos/neural-networks/9-matrix-product/index.jpg new file mode 100644 index 000000000..f527c6f75 Binary files /dev/null and b/content/videos/neural-networks/9-matrix-product/index.jpg differ diff --git a/content/videos/noc/1-vectors/1-what-is-a-vector/index.jpg b/content/videos/noc/1-vectors/1-what-is-a-vector/index.jpg new file mode 100644 index 000000000..36778d0eb Binary files /dev/null and b/content/videos/noc/1-vectors/1-what-is-a-vector/index.jpg differ diff --git a/content/videos/noc/1-vectors/1-what-is-a-vector/index.png b/content/videos/noc/1-vectors/1-what-is-a-vector/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/1-vectors/1-what-is-a-vector/index.png and /dev/null differ diff --git a/content/videos/noc/1-vectors/2-vector-math/index.jpg b/content/videos/noc/1-vectors/2-vector-math/index.jpg new file mode 100644 index 000000000..368736506 Binary files /dev/null and b/content/videos/noc/1-vectors/2-vector-math/index.jpg differ diff --git a/content/videos/noc/1-vectors/2-vector-math/index.png b/content/videos/noc/1-vectors/2-vector-math/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/1-vectors/2-vector-math/index.png and /dev/null differ diff --git a/content/videos/noc/1-vectors/3-random-vectors/index.jpg b/content/videos/noc/1-vectors/3-random-vectors/index.jpg new file mode 100644 index 000000000..8f37cd1d7 Binary files /dev/null and b/content/videos/noc/1-vectors/3-random-vectors/index.jpg differ diff --git a/content/videos/noc/1-vectors/3-random-vectors/index.png b/content/videos/noc/1-vectors/3-random-vectors/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/1-vectors/3-random-vectors/index.png and /dev/null differ diff --git a/content/videos/noc/1-vectors/4-static-functions/index.jpg b/content/videos/noc/1-vectors/4-static-functions/index.jpg new file mode 100644 index 000000000..ade234f1d Binary files /dev/null and b/content/videos/noc/1-vectors/4-static-functions/index.jpg differ diff --git a/content/videos/noc/1-vectors/4-static-functions/index.png b/content/videos/noc/1-vectors/4-static-functions/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/1-vectors/4-static-functions/index.png and /dev/null differ diff --git a/content/videos/noc/1-vectors/5-unit-vector/index.jpg b/content/videos/noc/1-vectors/5-unit-vector/index.jpg new file mode 100644 index 000000000..ce4b5d5b7 Binary files /dev/null and b/content/videos/noc/1-vectors/5-unit-vector/index.jpg differ diff --git a/content/videos/noc/1-vectors/6-acceleration-vector/index.jpg b/content/videos/noc/1-vectors/6-acceleration-vector/index.jpg new file mode 100644 index 000000000..122d827b7 Binary files /dev/null and b/content/videos/noc/1-vectors/6-acceleration-vector/index.jpg differ diff --git a/content/videos/noc/2-forces/1-gravity-and-wind/index.jpg b/content/videos/noc/2-forces/1-gravity-and-wind/index.jpg new file mode 100644 index 000000000..4d57d6788 Binary files /dev/null and b/content/videos/noc/2-forces/1-gravity-and-wind/index.jpg differ diff --git a/content/videos/noc/2-forces/1-gravity-and-wind/index.png b/content/videos/noc/2-forces/1-gravity-and-wind/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/2-forces/1-gravity-and-wind/index.png and /dev/null differ diff --git a/content/videos/noc/2-forces/2-mass-and-acceleration/index.jpg b/content/videos/noc/2-forces/2-mass-and-acceleration/index.jpg new file mode 100644 index 000000000..3c9909f61 Binary files /dev/null and b/content/videos/noc/2-forces/2-mass-and-acceleration/index.jpg differ diff --git a/content/videos/noc/2-forces/3-friction-force/index.jpg b/content/videos/noc/2-forces/3-friction-force/index.jpg new file mode 100644 index 000000000..55574962e Binary files /dev/null and b/content/videos/noc/2-forces/3-friction-force/index.jpg differ diff --git a/content/videos/noc/2-forces/4-drag-force/index.jpg b/content/videos/noc/2-forces/4-drag-force/index.jpg new file mode 100644 index 000000000..24f01f9a6 Binary files /dev/null and b/content/videos/noc/2-forces/4-drag-force/index.jpg differ diff --git a/content/videos/noc/2-forces/5-gravitational-attraction/index.jpg b/content/videos/noc/2-forces/5-gravitational-attraction/index.jpg new file mode 100644 index 000000000..00a6fa594 Binary files /dev/null and b/content/videos/noc/2-forces/5-gravitational-attraction/index.jpg differ diff --git a/content/videos/noc/2-forces/6-mutual-attraction/index.jpg b/content/videos/noc/2-forces/6-mutual-attraction/index.jpg new file mode 100644 index 000000000..d18ba4878 Binary files /dev/null and b/content/videos/noc/2-forces/6-mutual-attraction/index.jpg differ diff --git a/content/videos/noc/3-angles/1-angles-and-rotation/index.jpg b/content/videos/noc/3-angles/1-angles-and-rotation/index.jpg new file mode 100644 index 000000000..55a731285 Binary files /dev/null and b/content/videos/noc/3-angles/1-angles-and-rotation/index.jpg differ diff --git a/content/videos/noc/3-angles/1-angles-and-rotation/index.png b/content/videos/noc/3-angles/1-angles-and-rotation/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/3-angles/1-angles-and-rotation/index.png and /dev/null differ diff --git a/content/videos/noc/3-angles/2-angular-motion/index.jpg b/content/videos/noc/3-angles/2-angular-motion/index.jpg new file mode 100644 index 000000000..fd89c0ae6 Binary files /dev/null and b/content/videos/noc/3-angles/2-angular-motion/index.jpg differ diff --git a/content/videos/noc/3-angles/2-angular-motion/index.png b/content/videos/noc/3-angles/2-angular-motion/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/3-angles/2-angular-motion/index.png and /dev/null differ diff --git a/content/videos/noc/3-angles/3-angles-and-vectors/index.jpg b/content/videos/noc/3-angles/3-angles-and-vectors/index.jpg new file mode 100644 index 000000000..15f39421d Binary files /dev/null and b/content/videos/noc/3-angles/3-angles-and-vectors/index.jpg differ diff --git a/content/videos/noc/3-angles/4-polar-coordinates/index.jpg b/content/videos/noc/3-angles/4-polar-coordinates/index.jpg new file mode 100644 index 000000000..d87cdd154 Binary files /dev/null and b/content/videos/noc/3-angles/4-polar-coordinates/index.jpg differ diff --git a/content/videos/noc/3-angles/5-harmonic-motion/index.jpg b/content/videos/noc/3-angles/5-harmonic-motion/index.jpg new file mode 100644 index 000000000..7c2bb7ed0 Binary files /dev/null and b/content/videos/noc/3-angles/5-harmonic-motion/index.jpg differ diff --git a/content/videos/noc/3-angles/6-graphing-sine-wave/index.jpg b/content/videos/noc/3-angles/6-graphing-sine-wave/index.jpg new file mode 100644 index 000000000..409abb97c Binary files /dev/null and b/content/videos/noc/3-angles/6-graphing-sine-wave/index.jpg differ diff --git a/content/videos/noc/3-angles/7-additive-waves/index.jpg b/content/videos/noc/3-angles/7-additive-waves/index.jpg new file mode 100644 index 000000000..069c4633b Binary files /dev/null and b/content/videos/noc/3-angles/7-additive-waves/index.jpg differ diff --git a/content/videos/noc/4-particles/1-particle-system/index.jpg b/content/videos/noc/4-particles/1-particle-system/index.jpg new file mode 100644 index 000000000..1cf7bae4c Binary files /dev/null and b/content/videos/noc/4-particles/1-particle-system/index.jpg differ diff --git a/content/videos/noc/4-particles/2-particle-emitters/index.jpg b/content/videos/noc/4-particles/2-particle-emitters/index.jpg new file mode 100644 index 000000000..90bcca214 Binary files /dev/null and b/content/videos/noc/4-particles/2-particle-emitters/index.jpg differ diff --git a/content/videos/noc/4-particles/3-particle-inheritance/index.jpg b/content/videos/noc/4-particles/3-particle-inheritance/index.jpg new file mode 100644 index 000000000..aa8bbb394 Binary files /dev/null and b/content/videos/noc/4-particles/3-particle-inheritance/index.jpg differ diff --git a/content/videos/noc/4-particles/4-particle-textures/index.jpg b/content/videos/noc/4-particles/4-particle-textures/index.jpg new file mode 100644 index 000000000..d0dfd29a9 Binary files /dev/null and b/content/videos/noc/4-particles/4-particle-textures/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/1-steering-agents/index.jpg b/content/videos/noc/5-autonomous-agents/1-steering-agents/index.jpg new file mode 100644 index 000000000..dd971e619 Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/1-steering-agents/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/2-seeking-a-target/index.jpg b/content/videos/noc/5-autonomous-agents/2-seeking-a-target/index.jpg new file mode 100644 index 000000000..dd8f6a9fc Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/2-seeking-a-target/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/3-pursue-and-evade/index.jpg b/content/videos/noc/5-autonomous-agents/3-pursue-and-evade/index.jpg new file mode 100644 index 000000000..e0e2f7a18 Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/3-pursue-and-evade/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/4-arrive-steering/index.jpg b/content/videos/noc/5-autonomous-agents/4-arrive-steering/index.jpg new file mode 100644 index 000000000..f2d3aa0ce Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/4-arrive-steering/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/5-wander/index.jpg b/content/videos/noc/5-autonomous-agents/5-wander/index.jpg new file mode 100644 index 000000000..481d18990 Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/5-wander/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/6-scalar-projection/index.jpg b/content/videos/noc/5-autonomous-agents/6-scalar-projection/index.jpg new file mode 100644 index 000000000..9f56b26f0 Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/6-scalar-projection/index.jpg differ diff --git a/content/videos/noc/5-autonomous-agents/7-path-following/index.jpg b/content/videos/noc/5-autonomous-agents/7-path-following/index.jpg new file mode 100644 index 000000000..c59a63779 Binary files /dev/null and b/content/videos/noc/5-autonomous-agents/7-path-following/index.jpg differ diff --git a/content/videos/noc/6-physics-libraries/1-matterjs-introduction/index.jpg b/content/videos/noc/6-physics-libraries/1-matterjs-introduction/index.jpg new file mode 100644 index 000000000..792219cfc Binary files /dev/null and b/content/videos/noc/6-physics-libraries/1-matterjs-introduction/index.jpg differ diff --git a/content/videos/noc/6-physics-libraries/2-matterjs-introduction-continued/index.jpg b/content/videos/noc/6-physics-libraries/2-matterjs-introduction-continued/index.jpg new file mode 100644 index 000000000..7d80755c2 Binary files /dev/null and b/content/videos/noc/6-physics-libraries/2-matterjs-introduction-continued/index.jpg differ diff --git a/content/videos/noc/6-physics-libraries/3-matterjs-deleting-bodies/index.jpg b/content/videos/noc/6-physics-libraries/3-matterjs-deleting-bodies/index.jpg new file mode 100644 index 000000000..6a78cd713 Binary files /dev/null and b/content/videos/noc/6-physics-libraries/3-matterjs-deleting-bodies/index.jpg differ diff --git a/content/videos/noc/6-physics-libraries/4-matterjs-constraints/index.jpg b/content/videos/noc/6-physics-libraries/4-matterjs-constraints/index.jpg new file mode 100644 index 000000000..b3a9a6e9b Binary files /dev/null and b/content/videos/noc/6-physics-libraries/4-matterjs-constraints/index.jpg differ diff --git a/content/videos/noc/6-physics-libraries/5-matterjs-mouse-constraints/index.jpg b/content/videos/noc/6-physics-libraries/5-matterjs-mouse-constraints/index.jpg new file mode 100644 index 000000000..f54d81f45 Binary files /dev/null and b/content/videos/noc/6-physics-libraries/5-matterjs-mouse-constraints/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/1-introduction/index.jpg b/content/videos/noc/9-genetic-algorithms/1-introduction/index.jpg new file mode 100644 index 000000000..0c1b4a710 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/1-introduction/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/10-continuous-evolutionary-systems/index.jpg b/content/videos/noc/9-genetic-algorithms/10-continuous-evolutionary-systems/index.jpg new file mode 100644 index 000000000..16c27e283 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/10-continuous-evolutionary-systems/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/2-how-it-works/index.jpg b/content/videos/noc/9-genetic-algorithms/2-how-it-works/index.jpg new file mode 100644 index 000000000..5208b0571 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/2-how-it-works/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/3-shakespeare-monkey-example/index.jpg b/content/videos/noc/9-genetic-algorithms/3-shakespeare-monkey-example/index.jpg new file mode 100644 index 000000000..95c3ae708 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/3-shakespeare-monkey-example/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/4-looking-at-code/index.jpg b/content/videos/noc/9-genetic-algorithms/4-looking-at-code/index.jpg new file mode 100644 index 000000000..e55d60222 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/4-looking-at-code/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/5-genotype-vs-phenotype/index.jpg b/content/videos/noc/9-genetic-algorithms/5-genotype-vs-phenotype/index.jpg new file mode 100644 index 000000000..7fbb0f1bf Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/5-genotype-vs-phenotype/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/6-improved-fitness-function/index.jpg b/content/videos/noc/9-genetic-algorithms/6-improved-fitness-function/index.jpg new file mode 100644 index 000000000..7da833fdd Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/6-improved-fitness-function/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/7-pool-selection/index.jpg b/content/videos/noc/9-genetic-algorithms/7-pool-selection/index.jpg new file mode 100644 index 000000000..597bcf63c Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/7-pool-selection/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/8-improved-pool-selection/index.jpg b/content/videos/noc/9-genetic-algorithms/8-improved-pool-selection/index.jpg new file mode 100644 index 000000000..dbdd5e75e Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/8-improved-pool-selection/index.jpg differ diff --git a/content/videos/noc/9-genetic-algorithms/9-interactive-selection/index.jpg b/content/videos/noc/9-genetic-algorithms/9-interactive-selection/index.jpg new file mode 100644 index 000000000..a3e6951d5 Binary files /dev/null and b/content/videos/noc/9-genetic-algorithms/9-interactive-selection/index.jpg differ diff --git a/content/videos/noc/perlin/graphing-1d-perlin-noise/index.jpg b/content/videos/noc/perlin/graphing-1d-perlin-noise/index.jpg new file mode 100644 index 000000000..00186cba1 Binary files /dev/null and b/content/videos/noc/perlin/graphing-1d-perlin-noise/index.jpg differ diff --git a/content/videos/noc/perlin/graphing-1d-perlin-noise/index.png b/content/videos/noc/perlin/graphing-1d-perlin-noise/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/perlin/graphing-1d-perlin-noise/index.png and /dev/null differ diff --git a/content/videos/noc/perlin/intro-to-perlin-noise/index.jpg b/content/videos/noc/perlin/intro-to-perlin-noise/index.jpg new file mode 100644 index 000000000..0d3bd6608 Binary files /dev/null and b/content/videos/noc/perlin/intro-to-perlin-noise/index.jpg differ diff --git a/content/videos/noc/perlin/intro-to-perlin-noise/index.png b/content/videos/noc/perlin/intro-to-perlin-noise/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/perlin/intro-to-perlin-noise/index.png and /dev/null differ diff --git a/content/videos/noc/perlin/noise-vs-random/index.jpg b/content/videos/noc/perlin/noise-vs-random/index.jpg new file mode 100644 index 000000000..5f70109dd Binary files /dev/null and b/content/videos/noc/perlin/noise-vs-random/index.jpg differ diff --git a/content/videos/noc/perlin/noise-vs-random/index.png b/content/videos/noc/perlin/noise-vs-random/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/perlin/noise-vs-random/index.png and /dev/null differ diff --git a/content/videos/noc/perlin/perlin-noise-2d/index.jpg b/content/videos/noc/perlin/perlin-noise-2d/index.jpg new file mode 100644 index 000000000..e7ee3e9cf Binary files /dev/null and b/content/videos/noc/perlin/perlin-noise-2d/index.jpg differ diff --git a/content/videos/noc/perlin/perlin-noise-2d/index.png b/content/videos/noc/perlin/perlin-noise-2d/index.png deleted file mode 100644 index 9f471adda..000000000 Binary files a/content/videos/noc/perlin/perlin-noise-2d/index.png and /dev/null differ diff --git a/content/videos/noc/perlin/perlin-noise-detail/index.jpg b/content/videos/noc/perlin/perlin-noise-detail/index.jpg new file mode 100644 index 000000000..578a9d0fb Binary files /dev/null and b/content/videos/noc/perlin/perlin-noise-detail/index.jpg differ diff --git a/content/videos/noc/perlin/perlin-noise-detail/index.png b/content/videos/noc/perlin/perlin-noise-detail/index.png deleted file mode 100644 index b3e118abe..000000000 Binary files a/content/videos/noc/perlin/perlin-noise-detail/index.png and /dev/null differ diff --git a/content/videos/noc/welcome/nature-of-code-2-introduction/index.jpg b/content/videos/noc/welcome/nature-of-code-2-introduction/index.jpg new file mode 100644 index 000000000..44ba6d0a3 Binary files /dev/null and b/content/videos/noc/welcome/nature-of-code-2-introduction/index.jpg differ diff --git a/content/videos/noc/welcome/nature-of-code-2-introduction/index.png b/content/videos/noc/welcome/nature-of-code-2-introduction/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/welcome/nature-of-code-2-introduction/index.png and /dev/null differ diff --git a/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.jpg b/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.jpg new file mode 100644 index 000000000..09ac553f0 Binary files /dev/null and b/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.jpg differ diff --git a/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.png b/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.png deleted file mode 100644 index 890493827..000000000 Binary files a/content/videos/noc/welcome/welcome-to-the-nature-of-code-in-2020-p5js/index.png and /dev/null differ diff --git a/content/videos/noise/open-simplex-noise/index.jpg b/content/videos/noise/open-simplex-noise/index.jpg new file mode 100644 index 000000000..2f356005d Binary files /dev/null and b/content/videos/noise/open-simplex-noise/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/1-introduction/index.jpg b/content/videos/physics-libraries/box2d/1-introduction/index.jpg new file mode 100644 index 000000000..bdf21e05e Binary files /dev/null and b/content/videos/physics-libraries/box2d/1-introduction/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/10-user-controlled-objects/index.jpg b/content/videos/physics-libraries/box2d/10-user-controlled-objects/index.jpg new file mode 100644 index 000000000..9bc7537b7 Binary files /dev/null and b/content/videos/physics-libraries/box2d/10-user-controlled-objects/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/11-apply-forces/index.jpg b/content/videos/physics-libraries/box2d/11-apply-forces/index.jpg new file mode 100644 index 000000000..0abb92480 Binary files /dev/null and b/content/videos/physics-libraries/box2d/11-apply-forces/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/12-collision-events/index.jpg b/content/videos/physics-libraries/box2d/12-collision-events/index.jpg new file mode 100644 index 000000000..651ee60dc Binary files /dev/null and b/content/videos/physics-libraries/box2d/12-collision-events/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/2-central-elements/index.jpg b/content/videos/physics-libraries/box2d/2-central-elements/index.jpg new file mode 100644 index 000000000..0dc41e1da Binary files /dev/null and b/content/videos/physics-libraries/box2d/2-central-elements/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/3-coordinate-and-vectors/index.jpg b/content/videos/physics-libraries/box2d/3-coordinate-and-vectors/index.jpg new file mode 100644 index 000000000..3c30f8bc4 Binary files /dev/null and b/content/videos/physics-libraries/box2d/3-coordinate-and-vectors/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/4-adding-to-processing-sketch/index.jpg b/content/videos/physics-libraries/box2d/4-adding-to-processing-sketch/index.jpg new file mode 100644 index 000000000..3b1190039 Binary files /dev/null and b/content/videos/physics-libraries/box2d/4-adding-to-processing-sketch/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/5-adding-to-processing-sketch-2/index.jpg b/content/videos/physics-libraries/box2d/5-adding-to-processing-sketch-2/index.jpg new file mode 100644 index 000000000..769adf3f8 Binary files /dev/null and b/content/videos/physics-libraries/box2d/5-adding-to-processing-sketch-2/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/6-static-bodies-and-chain-shapes/index.jpg b/content/videos/physics-libraries/box2d/6-static-bodies-and-chain-shapes/index.jpg new file mode 100644 index 000000000..d7f87fc90 Binary files /dev/null and b/content/videos/physics-libraries/box2d/6-static-bodies-and-chain-shapes/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/7-complex-shapes/index.jpg b/content/videos/physics-libraries/box2d/7-complex-shapes/index.jpg new file mode 100644 index 000000000..517c63d77 Binary files /dev/null and b/content/videos/physics-libraries/box2d/7-complex-shapes/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/8-distance-joints/index.jpg b/content/videos/physics-libraries/box2d/8-distance-joints/index.jpg new file mode 100644 index 000000000..7661b04cd Binary files /dev/null and b/content/videos/physics-libraries/box2d/8-distance-joints/index.jpg differ diff --git a/content/videos/physics-libraries/box2d/9-revolute-joints/index.jpg b/content/videos/physics-libraries/box2d/9-revolute-joints/index.jpg new file mode 100644 index 000000000..3634b1b67 Binary files /dev/null and b/content/videos/physics-libraries/box2d/9-revolute-joints/index.jpg differ diff --git a/content/videos/physics-libraries/toxiclibs/1-introduction/index.jpg b/content/videos/physics-libraries/toxiclibs/1-introduction/index.jpg new file mode 100644 index 000000000..9365efedf Binary files /dev/null and b/content/videos/physics-libraries/toxiclibs/1-introduction/index.jpg differ diff --git a/content/videos/physics-libraries/toxiclibs/2-particles-and-springs/index.jpg b/content/videos/physics-libraries/toxiclibs/2-particles-and-springs/index.jpg new file mode 100644 index 000000000..b3c3583f8 Binary files /dev/null and b/content/videos/physics-libraries/toxiclibs/2-particles-and-springs/index.jpg differ diff --git a/content/videos/physics-libraries/toxiclibs/3-connected-systems/index.jpg b/content/videos/physics-libraries/toxiclibs/3-connected-systems/index.jpg new file mode 100644 index 000000000..842a99044 Binary files /dev/null and b/content/videos/physics-libraries/toxiclibs/3-connected-systems/index.jpg differ diff --git a/content/videos/physics-libraries/toxiclibs/4-attraction-behavior/index.jpg b/content/videos/physics-libraries/toxiclibs/4-attraction-behavior/index.jpg new file mode 100644 index 000000000..02e39b30b Binary files /dev/null and b/content/videos/physics-libraries/toxiclibs/4-attraction-behavior/index.jpg differ diff --git a/content/videos/pixels/brightness-mirror/index.jpg b/content/videos/pixels/brightness-mirror/index.jpg new file mode 100644 index 000000000..f81cfd2dd Binary files /dev/null and b/content/videos/pixels/brightness-mirror/index.jpg differ diff --git a/content/videos/pixels/checkbox-mirror/index.jpg b/content/videos/pixels/checkbox-mirror/index.jpg new file mode 100644 index 000000000..5e1448f43 Binary files /dev/null and b/content/videos/pixels/checkbox-mirror/index.jpg differ diff --git a/content/videos/pixels/createCapture/index.jpg b/content/videos/pixels/createCapture/index.jpg new file mode 100644 index 000000000..0847a7514 Binary files /dev/null and b/content/videos/pixels/createCapture/index.jpg differ diff --git a/content/videos/pixels/painting-with-pixels/index.jpg b/content/videos/pixels/painting-with-pixels/index.jpg new file mode 100644 index 000000000..eff268f8b Binary files /dev/null and b/content/videos/pixels/painting-with-pixels/index.jpg differ diff --git a/content/videos/pixels/slit-scan/index.jpg b/content/videos/pixels/slit-scan/index.jpg new file mode 100644 index 000000000..939a08f6f Binary files /dev/null and b/content/videos/pixels/slit-scan/index.jpg differ diff --git a/content/videos/pixels/video-photobooth/index.jpg b/content/videos/pixels/video-photobooth/index.jpg new file mode 100644 index 000000000..485c029eb Binary files /dev/null and b/content/videos/pixels/video-photobooth/index.jpg differ diff --git a/content/videos/processing/index.jpg b/content/videos/processing/index.jpg new file mode 100644 index 000000000..6e896b7aa Binary files /dev/null and b/content/videos/processing/index.jpg differ diff --git a/content/videos/sound/1-loading-and-playing/index.jpg b/content/videos/sound/1-loading-and-playing/index.jpg new file mode 100644 index 000000000..6ee691f81 Binary files /dev/null and b/content/videos/sound/1-loading-and-playing/index.jpg differ diff --git a/content/videos/sound/10-sound-visualization-radial-graph/index.jpg b/content/videos/sound/10-sound-visualization-radial-graph/index.jpg new file mode 100644 index 000000000..eacb4cb0e Binary files /dev/null and b/content/videos/sound/10-sound-visualization-radial-graph/index.jpg differ diff --git a/content/videos/sound/11-sound-visualization-frequency-analysis/index.jpg b/content/videos/sound/11-sound-visualization-frequency-analysis/index.jpg new file mode 100644 index 000000000..fb77af366 Binary files /dev/null and b/content/videos/sound/11-sound-visualization-frequency-analysis/index.jpg differ diff --git a/content/videos/sound/2-pause-and-play-button/index.jpg b/content/videos/sound/2-pause-and-play-button/index.jpg new file mode 100644 index 000000000..8daa0070a Binary files /dev/null and b/content/videos/sound/2-pause-and-play-button/index.jpg differ diff --git a/content/videos/sound/3-timing-jumps-cues/index.jpg b/content/videos/sound/3-timing-jumps-cues/index.jpg new file mode 100644 index 000000000..c70b98361 Binary files /dev/null and b/content/videos/sound/3-timing-jumps-cues/index.jpg differ diff --git a/content/videos/sound/4-amplitude_analysis/index.jpg b/content/videos/sound/4-amplitude_analysis/index.jpg new file mode 100644 index 000000000..cc0a662d8 Binary files /dev/null and b/content/videos/sound/4-amplitude_analysis/index.jpg differ diff --git a/content/videos/sound/5-adding-sound-effects/index.jpg b/content/videos/sound/5-adding-sound-effects/index.jpg new file mode 100644 index 000000000..bdf07aada Binary files /dev/null and b/content/videos/sound/5-adding-sound-effects/index.jpg differ diff --git a/content/videos/sound/6-sound-synthesis/index.jpg b/content/videos/sound/6-sound-synthesis/index.jpg new file mode 100644 index 000000000..a7c33e153 Binary files /dev/null and b/content/videos/sound/6-sound-synthesis/index.jpg differ diff --git a/content/videos/sound/7-adsr-envelope/index.jpg b/content/videos/sound/7-adsr-envelope/index.jpg new file mode 100644 index 000000000..c8320a051 Binary files /dev/null and b/content/videos/sound/7-adsr-envelope/index.jpg differ diff --git a/content/videos/sound/8-microphone-input/index.jpg b/content/videos/sound/8-microphone-input/index.jpg new file mode 100644 index 000000000..2701597a0 Binary files /dev/null and b/content/videos/sound/8-microphone-input/index.jpg differ diff --git a/content/videos/sound/9-sound-visualization/index.jpg b/content/videos/sound/9-sound-visualization/index.jpg new file mode 100644 index 000000000..b53ddbe8c Binary files /dev/null and b/content/videos/sound/9-sound-visualization/index.jpg differ diff --git a/content/videos/teachable-machine/1-image-classification/index.jpg b/content/videos/teachable-machine/1-image-classification/index.jpg new file mode 100644 index 000000000..597316779 Binary files /dev/null and b/content/videos/teachable-machine/1-image-classification/index.jpg differ diff --git a/content/videos/teachable-machine/2-snake-game/index.jpg b/content/videos/teachable-machine/2-snake-game/index.jpg new file mode 100644 index 000000000..3344ebe77 Binary files /dev/null and b/content/videos/teachable-machine/2-snake-game/index.jpg differ diff --git a/content/videos/teachable-machine/3-sound-classification/index.jpg b/content/videos/teachable-machine/3-sound-classification/index.jpg new file mode 100644 index 000000000..cfd0fb2b0 Binary files /dev/null and b/content/videos/teachable-machine/3-sound-classification/index.jpg differ diff --git a/content/videos/transformations/more-transformations/index.jpg b/content/videos/transformations/more-transformations/index.jpg new file mode 100644 index 000000000..f7b415d08 Binary files /dev/null and b/content/videos/transformations/more-transformations/index.jpg differ diff --git a/content/videos/transformations/scale/index.jpg b/content/videos/transformations/scale/index.jpg new file mode 100644 index 000000000..0b348d3d6 Binary files /dev/null and b/content/videos/transformations/scale/index.jpg differ diff --git a/content/videos/transformations/translate-rotate-push-pop/index.jpg b/content/videos/transformations/translate-rotate-push-pop/index.jpg new file mode 100644 index 000000000..8167c0261 Binary files /dev/null and b/content/videos/transformations/translate-rotate-push-pop/index.jpg differ diff --git a/content/videos/webgl/1-introduction/index.jpg b/content/videos/webgl/1-introduction/index.jpg new file mode 100644 index 000000000..bbce6bb07 Binary files /dev/null and b/content/videos/webgl/1-introduction/index.jpg differ diff --git a/content/videos/webgl/2-3d-geometries/index.jpg b/content/videos/webgl/2-3d-geometries/index.jpg new file mode 100644 index 000000000..424e4fb82 Binary files /dev/null and b/content/videos/webgl/2-3d-geometries/index.jpg differ diff --git a/content/videos/webgl/3-light-and-material/index.jpg b/content/videos/webgl/3-light-and-material/index.jpg new file mode 100644 index 000000000..3b3b62b2c Binary files /dev/null and b/content/videos/webgl/3-light-and-material/index.jpg differ diff --git a/content/videos/webgl/4-texture/index.jpg b/content/videos/webgl/4-texture/index.jpg new file mode 100644 index 000000000..3e422ec52 Binary files /dev/null and b/content/videos/webgl/4-texture/index.jpg differ diff --git a/content/videos/webgl/5-camera-and-perspective/index.jpg b/content/videos/webgl/5-camera-and-perspective/index.jpg new file mode 100644 index 000000000..6eda6b136 Binary files /dev/null and b/content/videos/webgl/5-camera-and-perspective/index.jpg differ diff --git a/content/videos/webgl/6-createGraphics/index.jpg b/content/videos/webgl/6-createGraphics/index.jpg new file mode 100644 index 000000000..4b585546b Binary files /dev/null and b/content/videos/webgl/6-createGraphics/index.jpg differ diff --git a/content/videos/webgl/7-loading-an-obj-file/index.jpg b/content/videos/webgl/7-loading-an-obj-file/index.jpg new file mode 100644 index 000000000..19df14d4f Binary files /dev/null and b/content/videos/webgl/7-loading-an-obj-file/index.jpg differ diff --git a/content/videos/webgl/8-3d-custom-shapes/index.jpg b/content/videos/webgl/8-3d-custom-shapes/index.jpg new file mode 100644 index 000000000..883392b95 Binary files /dev/null and b/content/videos/webgl/8-3d-custom-shapes/index.jpg differ diff --git a/content/videos/websockets-node-p5/1-introduction-to-node/index.jpg b/content/videos/websockets-node-p5/1-introduction-to-node/index.jpg new file mode 100644 index 000000000..6b544aced Binary files /dev/null and b/content/videos/websockets-node-p5/1-introduction-to-node/index.jpg differ diff --git a/content/videos/websockets-node-p5/2-using-express-with-node/index.jpg b/content/videos/websockets-node-p5/2-using-express-with-node/index.jpg new file mode 100644 index 000000000..8efc05dd0 Binary files /dev/null and b/content/videos/websockets-node-p5/2-using-express-with-node/index.jpg differ diff --git a/content/videos/websockets-node-p5/3-connecting-client-to-server/index.jpg b/content/videos/websockets-node-p5/3-connecting-client-to-server/index.jpg new file mode 100644 index 000000000..ed6f4499c Binary files /dev/null and b/content/videos/websockets-node-p5/3-connecting-client-to-server/index.jpg differ diff --git a/content/videos/websockets-node-p5/4-shared-drawing-canvas/index.jpg b/content/videos/websockets-node-p5/4-shared-drawing-canvas/index.jpg new file mode 100644 index 000000000..c4bbf2bd3 Binary files /dev/null and b/content/videos/websockets-node-p5/4-shared-drawing-canvas/index.jpg differ diff --git a/content/videos/workflow/1-intro/index.jpg b/content/videos/workflow/1-intro/index.jpg new file mode 100644 index 000000000..6dc3973b0 Binary files /dev/null and b/content/videos/workflow/1-intro/index.jpg differ diff --git a/content/videos/workflow/2-visual-studio-code/index.jpg b/content/videos/workflow/2-visual-studio-code/index.jpg new file mode 100644 index 000000000..2f3a91c1b Binary files /dev/null and b/content/videos/workflow/2-visual-studio-code/index.jpg differ diff --git a/content/videos/workflow/3-shell/index.jpg b/content/videos/workflow/3-shell/index.jpg new file mode 100644 index 000000000..bc319a938 Binary files /dev/null and b/content/videos/workflow/3-shell/index.jpg differ diff --git a/content/videos/workflow/4-git/index.jpg b/content/videos/workflow/4-git/index.jpg new file mode 100644 index 000000000..f3fb5367d Binary files /dev/null and b/content/videos/workflow/4-git/index.jpg differ diff --git a/content/videos/workflow/5-node/index.jpg b/content/videos/workflow/5-node/index.jpg new file mode 100644 index 000000000..c3e4e09d8 Binary files /dev/null and b/content/videos/workflow/5-node/index.jpg differ diff --git a/content/videos/workflow/6-python-and-virtualenv/index.jpg b/content/videos/workflow/6-python-and-virtualenv/index.jpg new file mode 100644 index 000000000..ea86d058d Binary files /dev/null and b/content/videos/workflow/6-python-and-virtualenv/index.jpg differ diff --git a/node-scripts/download-non-challenge-thumbnails.mjs b/node-scripts/download-non-challenge-thumbnails.mjs new file mode 100644 index 000000000..35756a1bc --- /dev/null +++ b/node-scripts/download-non-challenge-thumbnails.mjs @@ -0,0 +1,76 @@ +import { paths } from '../content-testing/content.js'; +import path from 'node:path'; +import fs from 'node:fs'; + +// Thumbnails for non-challenge videos can just use the YouTube thumbnail. +// They are never displayed on the site directly, only when sharing links on social media. + +function sleep(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +async function getImage(url) { + const response = await fetch(url); + + if (!response.ok) return; + + const arrayBuffer = await response.arrayBuffer(); + return Buffer.from(arrayBuffer); +} + +console.log(`Downloading ${paths.videos.length} thumbnails`); + +for (const jsonPath of paths.videos) { + const baseDir = path.join(path.dirname(jsonPath)); + + // remove existing thumnails (co-located with index.json files if they exist) + ['index.jpg', 'index.png'].forEach((filename) => { + fs.rmSync(path.join(baseDir, filename), { force: true }); + }); + + const video = JSON.parse(fs.readFileSync(jsonPath)); + const isMultiPart = !!video.parts; + let videoId = isMultiPart ? video.parts[0].videoId : video.videoId; + + // download thumbnail from YouTube CDN + const thumbnailResolutions = [ + 'maxresdefault', // 1280x720 - may not be available for 720p videos + 'sddefault', // 640x480 + 'hqdefault', // 480x360 + 'mqdefault', // 320x180 + 'default' // 120x90 + ]; + + let buffer; + let resolution; + for (const thumbnailResolution of thumbnailResolutions) { + resolution = thumbnailResolution; + + // const thumbnailPath = `https://img.youtube.com/vi_webp/${videoId}/${resolution}.webp`; + const thumbnailPath = `https://img.youtube.com/vi/${videoId}/${resolution}.jpg`; + buffer = await getImage(thumbnailPath); + if (buffer) break; + + console.warn( + videoId, + `🟠`, + resolution, + `| missing, trying lower resolution...` + ); + } + + if (!buffer) { + console.error( + `🔴 Failed to locate a thumbnail for ${videoId} - process aborted.` + ); + process.exit(1); + } + + console.log(videoId, '🟢', resolution, '\n'); + + // write file to disk + fs.writeFileSync(path.join(baseDir, 'index.jpg'), buffer); + + // sleep for a bit to avoid spamming / getting blocked + await sleep(100 + Math.random() * 300); +}