Outlier score badge on YouTube thumbnails

Scores every card against the median views of its own channel's last N
videos, badging the thumbnail above the duration stamp. Shorts and regular
videos are scored in separate pools, live streams in none. Baselines come
from YouTube's InnerTube endpoint, one request per channel, cached a day.
Interface in English and Turkish.
This commit is contained in:
2026-08-15 10:32:29 +03:00
commit 0d5a232f08
20 changed files with 2215 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="popup.css">
</head>
<body>
<h1>Outlier Badge</h1>
<div id="permission" class="warn" hidden>
<span data-i18n="popupPermission"></span>
<button id="grant" type="button" data-i18n="popupGrant"></button>
</div>
<label class="row">
<span data-i18n="popupEnabled"></span>
<input type="checkbox" id="enabled">
</label>
<label class="row">
<span data-i18n="popupScoreShorts"></span>
<input type="checkbox" id="scoreShorts">
</label>
<label class="row">
<span data-i18n="popupShowPanel"></span>
<input type="checkbox" id="showPanel">
</label>
<label class="row">
<span data-i18n="popupBaselineSize"></span>
<select id="baselineSize"></select>
</label>
<label class="row">
<span data-i18n="popupMinScore"></span>
<select id="minScore"></select>
</label>
<label class="row">
<span data-i18n="popupTtl"></span>
<select id="ttlHours"></select>
</label>
<label class="row">
<span data-i18n="popupLanguage"></span>
<select id="language"></select>
</label>
<div class="stats" id="stats"></div>
<button id="clear" type="button" class="wide" data-i18n="popupClear"></button>
<p class="note" data-i18n="popupNote"></p>
<script src="../src/i18n.js"></script>
<script src="../src/store.js"></script>
<script src="popup.js"></script>
</body>
</html>