diff --git a/js/feedEngine/kidsScoring.js b/js/feedEngine/kidsScoring.js index ca6af0aa..5767b212 100644 --- a/js/feedEngine/kidsScoring.js +++ b/js/feedEngine/kidsScoring.js @@ -14,6 +14,8 @@ const DEFAULT_WEIGHTS = Object.freeze({ const DEFAULT_FRESHNESS_HALF_LIFE_DAYS = 14; +const videoTagCache = new WeakMap(); + const AGE_GROUP_DEFAULTS = Object.freeze({ toddler: { maxDurationSeconds: 5 * 60, @@ -51,11 +53,16 @@ function clamp01(value) { } function normalizeTagSetFromVideo(video) { - const normalized = new Set(); if (!video || typeof video !== "object") { - return normalized; + return new Set(); } + if (videoTagCache.has(video)) { + return videoTagCache.get(video); + } + + const normalized = new Set(); + const addTag = (rawTag) => { if (typeof rawTag !== "string") { return; @@ -80,6 +87,7 @@ function normalizeTagSetFromVideo(video) { } } + videoTagCache.set(video, normalized); return normalized; }