From a4e612d30678c86e9effa4ebe1a3c8d2089291d3 Mon Sep 17 00:00:00 2001 From: mohit Date: Fri, 23 Jan 2026 13:26:01 +0530 Subject: [PATCH 1/3] Add manual channel marker feature on YouTube home page --- js&css/extension/www.youtube.com/channel-marker.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 js&css/extension/www.youtube.com/channel-marker.js diff --git a/js&css/extension/www.youtube.com/channel-marker.js b/js&css/extension/www.youtube.com/channel-marker.js new file mode 100644 index 000000000..e69de29bb From 29f3a3c5dd505f1b621d54bed980e58bbce590e3 Mon Sep 17 00:00:00 2001 From: mohit Date: Fri, 23 Jan 2026 13:28:23 +0530 Subject: [PATCH 2/3] Implement channel marker logic and initialize on YouTube home page --- .../www.youtube.com/channel-marker.js | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/js&css/extension/www.youtube.com/channel-marker.js b/js&css/extension/www.youtube.com/channel-marker.js index e69de29bb..349ec7578 100644 --- a/js&css/extension/www.youtube.com/channel-marker.js +++ b/js&css/extension/www.youtube.com/channel-marker.js @@ -0,0 +1,60 @@ +console.log("YT Sub Highlight running"); + +// Load saved channels +const savedChannels = new Set( + JSON.parse(localStorage.getItem("yt-marked-channels") || "[]") +); + +function saveChannels() { + localStorage.setItem( + "yt-marked-channels", + JSON.stringify([...savedChannels]) + ); +} + +function enhanceChannel(link) { + if (link.dataset.enhanced) return; + link.dataset.enhanced = "true"; + + const channelUrl = link.href; + + const star = document.createElement("span"); + star.textContent = savedChannels.has(channelUrl) ? " ⭐" : " ☆"; + star.style.cursor = "pointer"; + star.style.marginLeft = "6px"; + star.style.fontSize = "14px"; + star.title = "Click to mark this channel"; + + // ✅ FIX: stop navigation when clicking star + star.addEventListener("click", (event) => { + event.preventDefault(); // stops link navigation + event.stopPropagation(); // stops event bubbling + + if (savedChannels.has(channelUrl)) { + savedChannels.delete(channelUrl); + star.textContent = " ☆"; + } else { + savedChannels.add(channelUrl); + star.textContent = " ⭐"; + } + + saveChannels(); + }); + + link.appendChild(star); +} + +function scanChannels() { + document + .querySelectorAll('a[href^="/@"]') + .forEach(enhanceChannel); +} + +// Initial run +scanChannels(); + +// Handle infinite scroll +new MutationObserver(scanChannels).observe(document.body, { + childList: true, + subtree: true +}); From 180afb851d8ab24f5bad5bc3bbc0d913a9f3a3ae Mon Sep 17 00:00:00 2001 From: mohit Date: Fri, 23 Jan 2026 13:30:36 +0530 Subject: [PATCH 3/3] Initialize channel marker feature on YouTube pages --- js&css/extension/init.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js&css/extension/init.js b/js&css/extension/init.js index a5899608d..5351185a3 100644 --- a/js&css/extension/init.js +++ b/js&css/extension/init.js @@ -52,6 +52,8 @@ extension.events.on('init', function () { extension.features.openNewTab(); extension.features.removeListParamOnNewTab(); extension.features.removeMemberOnly(); + extension.features.channelMarker(); + // extension.features.hideSponsoredVideosOnHome?.(); bodyReady(); });