Add badge menu and library

Clicking a badge now opens a menu instead of the video: copy a
YouTube-style card image (thumbnail + title) to the clipboard, copy the
title and link as text, download the card image, or save the video into
the extension's own library page. The library groups entries into
projects, supports search, moving, two-step deletes, JSON export with a
field-level lossless import merge, and re-scores stale entries on open.

Badge clicks are swallowed at window capture so YouTube's own handlers
(notably on Shorts cards) never see them, and a fixed-position ghost
copy of the badge keeps it visible and clickable above the hover
preview overlay. Score tier colors and labels now live in one place
(OBParse) shared by the badge, the watch panel, and the library.
This commit is contained in:
2026-08-30 16:43:32 +03:00
parent 5e35cf1074
commit 0ed9dbf41a
21 changed files with 1616 additions and 48 deletions
+8 -1
View File
@@ -9,7 +9,10 @@ would drag a mean upward and make everything else on that channel look like it
never outperformed. Shorts are scored against the channel's Shorts, regular
videos against regular videos, and live streams enter no pool at all. The watch
page also gets a panel with the score's details and the channel's recent view
distribution.
distribution. Clicking a badge opens a small menu to copy the thumbnail and
title, download the thumbnail, or save the video into the extension's own
library, where entries live in projects, can be exported and imported as JSON,
and get their scores refreshed when the page opens.
No server, no API key, no account: the extension calls YouTube's own internal
(InnerTube) endpoint from inside youtube.com, without session credentials. One
@@ -20,6 +23,10 @@ are only processed once they scroll into view.
![The watch page panel](screenshots/watch-panel.webp)
![The badge menu](screenshots/badge-menu.webp)
![The library page](screenshots/library.webp)
## Installing
[Get it from addons.mozilla.org](https://addons.mozilla.org/en-US/firefox/addon/youtube-outlier-badge/).