Home (All Topics) → Technology → Software → AI-Created Software
The following is AI-generated (aka vibe-coded) software. The software is specific to my needs and my system and may not work for you or your system. Support is limited, but if you report a bug I'll certainly look into it. All code is provided in a zip file for you to review should you choose.
A Chrome extension for Netflix, Prime Video, Disney+, Paramount+, Crave, Apple TV and CBC Gem that lets you:
Marks are shared across services by title name (toggle in the popup), so a show marked on Prime is also marked on every other supported service.
Version: 2.5.4
chrome://extensions.show-no-more folder (the one containing manifest.json).Reload any streaming-site tabs that were already open.
On any of the three sites:
A seen badge with an outline (instead of solid green) means the title was matched from a different service.
Why is (or isn’t) this marked? Hover a tile’s ✓ or ⊘ button, the green check badge, or a Hidden card. The tooltip shows: – the title the extension read from the tile; – its matching name, the cleaned-up form used to match by name (“kim s convenience”), or why it has none (an episode-style name, or no title found); – the service’s ID for that title; – if it’s marked, which saved entry matched: “Marked on Netflix”, or “Matched by name to “…” from Prime Video (ID …)”.
In the popup, hovering a title in the Seen or Hidden list shows the same details for that saved entry. If a tile and a saved entry look alike but don’t match, compare their matching names.
Saved matching names are recalculated whenever the extension loads, so entries saved by older versions pick up improvements to the name cleanup.
Title cleanup (site text around titles). Sites add text to their title labels, such as Disney+’s “New Movie Badge …” before the title and “… Disney+ Original” or “… Select for details on this title.” after it. This text is removed before titles are shown or matched. You control it in the popup under Title cleanup:
Changes save automatically. Open streaming pages re-read their tiles straight away, and saved entries are tidied with the new phrases. The lists are included in backups.
Episode names. Some series tiles label an episode (“Pilot”, “Episode 1”, “S1:E3 …”) rather than the show. The extension prefers the show’s name when the tile offers one, and strips “S1:E3 …”-style suffixes. An episode-style name is never used to match by name, because many shows share it. A title marked on such a tile only applies to that exact tile. In the popup, entries with an episode-style name are flagged Episode? so you can remove any that were saved by mistake. Import list skips them.
A show can appear on the same service under more than one link (for example an episode in Continue Watching and the show itself in another row). These match each other by name even with cross-service matching off, and unmarking one unmarks the other.
On Netflix, hovering a tile opens an enlarged preview on top of it, which covers the tile’s buttons. Two things handle this:
The popup (toolbar icon) has what you use while browsing:
Your Seen and Hidden lists (search, move between lists, remove) and the tips on using tiles are on the settings page.
The settings page (All settings, or right-click the toolbar icon → Options) has everything, including your Seen and Hidden lists and setup you do once: matching options, IMDb ratings, genre and year filters, title cleanup, backups, import/restore, and keyboard shortcuts.
Covers only apply while they’re switched on. Nothing is marked or saved as Hidden, and switching them off brings everything back immediately. A banner at the bottom-left of the page says what’s covering titles, how many tiles are covered, and has an Off button that turns all covers off.
A rated title must pass every rule you’ve set; few-vote and not-on-IMDb titles are shown according to their own options.
Data is stored locally in Chrome on this computer only.
Backups/Show No More, and it’s created if it doesn’t exist). The schedule is checked hourly, so a browser that was closed when a backup fell due catches up within the hour. The first one is made within an hour of installing or updating. Back up now makes one immediately. Each one shows briefly in Chrome’s downloads list.
Chrome closes the toolbar popup whenever a file picker opens, so the two Restore buttons and Import list… open the page in a full tab, where you pick the file.
Plain text (.txt) — one title per line.
Blank lines and lines starting with # are ignored.
# Already watched
Stranger Things
The Office (U.S.)
Severance: Season 2
CSV (.csv or .tsv) — titles in the first column, or in a column headed title / name / show / movie. An optional state (or status / list) column sets each row individually: seen / watched / done, or hidden / hide / skip. Rows without a state go to the list you chose.
title,year,state
"Love, Death & Robots",2019,hidden
Dune: Part Two,2024,seen
Bluey,2018,
JSON (.json) — an array of titles, or of { "title": ..., "state": ... } objects.
After an import, the popup reports how many titles were added, moved from the other list, already there, duplicates within the file, or unreadable.
How imported titles match. An imported title isn’t tied to one service, so it’s shown as Imported in the lists and matches by name on every supported service, even with cross-service matching turned off. Un-marking a tile that was matched from your list removes it from the list.
Turn on Show IMDb ratings on tiles (settings page) to put a small badge on each title. Hover it for the vote count, year, genres and which IMDb title it matched; click it to choose a different match or open the title on IMDb.
Each tile gets one of three badges:
| Badge | Meaning |
|---|---|
| ★ 7.8 | On IMDb, with at least your minimum votes |
| ★ 6.2 (37) (muted) | On IMDb, but rated by fewer people than your minimum; the number in brackets is the vote count |
| Not on IMDb (muted) | No IMDb movie or series with that name has any ratings, or you set it as not on IMDb |
Tiles with no usable title (for example, only an episode name) get no badge, since there’s nothing to look up.
KINDS in offscreen/offscreen.js.
Click a rating badge to open the match chooser. It lists every IMDb movie and series in your local data that shares the tile’s name (with year, type, rating, votes and genres), with the current match outlined.
https://www.imdb.com/title/tt0290978/) to use a title that isn’t listed.Your matches are listed (and can all be forgotten) on the settings page, and are included in backups.
When a tile is confidently linked to an IMDb title (an unambiguous match, or one you chose), marking it stores that IMDb ID with the mark.
A mark with an IMDb ID matches the same title everywhere, even under a different name: mark Money Heist on Netflix and La Casa de Papel on Disney+ shows as seen (the tooltip says “Matched by IMDb title”). Unmarking either unmarks both. Two different titles that share a name no longer get mixed up once either is linked.
Marks you saved before this get their IMDb IDs filled in automatically: after each ratings update, and as you browse past them.
Check this page in the popup opens a panel listing every tile on the current page: the title read, its matching name, any mark (and why it matched), the IMDb match and rating, and whether it’s covered and why. Only problems narrows it to tiles with no matching name, no IMDb match, or an ambiguous one. Hover a row to highlight the tile; click to scroll to it. Copy puts the table on the clipboard to paste into a message or spreadsheet.
A short message on the page confirms each change. Change them at chrome://extensions/shortcuts (the settings page has a link). Chrome leaves a shortcut unset if another extension already uses it.
netflix.comprimevideo.com, plus Prime Video on amazon.com/gp/video and amazon.ca/gp/videodisneyplus.comparamountplus.com (including /ca/)crave.ca (English and French)tv.apple.comgem.cbc.caHow titles are identified on the newer sites:
umc.cmc.…) from each title’s link. On Top 10 shelves, where the link text includes the rank and genre, the title is taken from the link’s address instead./shows/yellowstone/) or the movie’s ID. Genre and category pages are ignored.data-media-title attribute on each tile’s link, and uses the title’s page address, ignoring the /en/ or /fr/ prefix, so English and French pages count as the same title./beirut) as its ID; season links (/steal/s01) count as the show. The tile’s hidden description (“110 min”, “5 seasons” or “Season 20”) says whether it’s a movie or a series.Paramount+ and Crave were built from their link formats without seeing their live pages, so they’re the most likely to need adjusting.
If tiles on either site don’t get buttons, the fix goes in src/adapters.js.
Backups land in the downloads folder as download.json Another extension that renames downloads is overriding the backup’s name. Chrome forgets the name an extension asks for whenever any extension renames downloads, so that extension has to put it back. Download Router does this; for others, turn them off or check their settings.
src/adapters.js (link patterns, tile containers, where to read the title). If a site redesign stops tiles from being recognized, that file is where to fix it.
manifest.json Extension definition (Manifest V3)
background.js Right-click menu; IMDb ratings schedule and lookups; IMDb IDs on marks;
automatic backups; keyboard shortcuts
src/normalize.js Title cleanup + normalization for cross-service matching
src/imdb-match.js Choosing the IMDb title for a tile (automatic or your choice)
src/store.js Storage and mark logic
src/adapters.js Per-service tile detection (edit here when a site changes)
src/content.js Finds tiles, adds controls, applies Seen/Hidden
src/content.css Dimmed / covered tile styling, rating badges
src/ratings-db.js Local IMDb ratings lookup (IndexedDB)
offscreen/ Hidden page that downloads and processes IMDb's files
popup/ Toolbar popup
icons/ Extension icons


Leave a Reply