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);
+}