AI-Created Software

Last Updated: September 18, 2026

The following 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.

Reelgood Exporter

A Chrome extension that backs up your Reelgood data with one click. It saves your seen movies, movie watchlist, tracked shows and custom lists as an Excel workbook, along with a JSON file containing the complete raw data.

Reelgood doesn’t offer an export of its own. This extension reads your data the same way the Reelgood website does, so you can keep regular backups or move your history to another service.

Version: 1.0.9 Works in: Chrome, Edge, Brave and other Chromium-based browsers (not Firefox or Safari)


Installing

The extension isn’t in the Chrome Web Store, so you load it from a folder.

  1. Unzip reelgood-exporter.zip somewhere permanent. The browser loads the extension from this folder every time it starts, so don’t move or delete it afterwards.
  2. Open chrome://extensions (in Edge, edge://extensions).
  3. Turn on Developer mode (top-right corner).
  4. Click Load unpacked and choose the reelgood-exporter folder.
  5. Optional: click the puzzle-piece icon in the toolbar and pin Reelgood Exporter so its icon is always visible.

Chrome may occasionally warn about extensions in developer mode.
That’s normal for extensions loaded this way.

Updating

  1. Replace the contents of the reelgood-exporter folder with the new version’s files.
  2. On chrome://extensions, click the circular reload arrow on the Reelgood Exporter card.
  3. Reload any open Reelgood tabs.

Exporting

  1. Sign in at reelgood.com.
  2. Click the Reelgood Exporter icon.
  3. A panel in the bottom-right corner of the page shows progress. A full export takes about a minute.
  4. Two files download:
    • reelgood-export-YYYY-MM-DD_HH-MM-SS.xlsx
    • reelgood-export-YYYY-MM-DD_HH-MM-SS.json

The time in the file names is your local time, in 24-hour format, with hyphens instead of colons because Windows doesn’t allow colons in file names. Both files from the same export share the same time.

The first time you export, Chrome may ask whether reelgood.com can download multiple files. Choose Allow.

If you click the icon while on another website, it opens reelgood.com instead.


What’s in the Excel workbook

Sheet Contents
Summary When the export ran, how many rows each sheet has, how many shows you’re caught up on, the Rejected Series count, and any warnings.
Seen movies Every movie you’ve marked as seen.
Movie watchlist Every movie on your “Want to see” list.
Tracked shows Every show you’re tracking, with your progress.
Custom list titles One row per title per custom list, with the date you added it. A title in three lists appears three times.
Custom lists One row per list: its name, creation date, how many titles Reelgood says it has, how many were exported, and whether it’s complete.

Every sheet except Summary has filter buttons on its header row, and titles are sorted alphabetically (custom list titles are sorted by date added).

Columns

Movie and custom list sheets share these columns:

Column Meaning
Title, Type, Year The movie or show, whether it’s a movie or a show, and its release year.
Your rating (raw) Your Reelgood rating, as Reelgood stores it (see below).
Seen, Watchlisted, Tracking “Yes” when that flag is set on your account.
Age rating The content rating, e.g. 13+ or 18+.
Reelgood link The title’s page on Reelgood.
Reelgood ID Reelgood’s internal ID, which is useful for matching titles across exports.

The Tracked shows sheet has show-specific columns instead: show status (ended, continuing, in production), number of seasons, unwatched episodes, and Caught up (“Yes” when you have no unwatched episodes).

Ratings

Reelgood stores ratings as numbers: 0, 1 or 2. Its data doesn’t say what each number means, but you’ll probably recognize the pattern from titles you remember rating. A blank means you haven’t rated the title.

Ratings for tracked shows: Reelgood’s tracking data doesn’t include ratings, but its custom list data does. So the extension borrows a tracked show’s rating from your custom lists when it can:

  • A number: the show is in a custom list, and that’s your rating.
  • Blank: the show is in a custom list and you haven’t rated it.
  • Not available: the show isn’t in any custom list, so Reelgood’s data didn’t include a rating.

Rejected Series

If you have a custom list named Rejected Series, every series in it is marked in the rating column wherever it appears: on the Tracked shows sheet, in every custom list it belongs to, and in the Rejected Series list’s own rows.

  • Rejected means the series is in the list and you hadn’t rated it.
  • Rejected (rated 1) means the series is in the list and keeps the rating you’d also given it.

Only series are marked; movies in the list are left alone. The name match ignores capitalization and extra spaces. The Summary sheet reports how many series are in the list and how many of them also appear elsewhere, or says that no list with that name was found.


What’s in the JSON file

The JSON file is the complete data exactly as Reelgood sent it. The workbook contains a selection of it; the JSON contains everything, including each title’s description, full release date, genre codes, streaming services, Reelgood’s scores, episode counts and list details.

It’s the better long-term backup. If you later want to import your history into Trakt, Simkl or Letterboxd, or want the spreadsheet laid out differently, the JSON can be converted without exporting again.

Top-level fields:

Field Contents
exported_at When the export ran (UTC).
region The Reelgood country used, e.g. ca.
seenMovies, watchMovies Movies from your Seen and Want to see pages.
shows Your tracked shows.
lists Your custom lists.
listItems The titles in each custom list, keyed by list ID.
warnings Anything that didn’t come back complete.

Being polite to Reelgood

The extension is designed to put no more load on Reelgood than a person browsing the site:

  • It sends one request at a time, with a 0.7-second pause between requests. A full export is about 45 requests.
  • If Reelgood replies “too many requests” or has a temporary server error, the extension waits (as long as Reelgood asks, or 5, 10, then 20 seconds) and retries up to three times. The panel shows when it’s waiting.
  • It only makes requests when you click its icon. Nothing runs in the background or on a schedule.

Privacy and permissions

Everything runs in your browser. The extension talks only to Reelgood and sends nothing anywhere else.

Permission Why it’s needed
Access to reelgood.com To run on Reelgood pages and show the progress panel.
Access to api.reelgood.com Reelgood’s data server, where your lists come from.
webRequest To see the sign-in details the Reelgood website attaches to its own requests, so the export can send the same ones.
storage To keep a copy of those sign-in details in the browser’s session memory. It’s erased when you close the browser.
scripting To start the export in a Reelgood tab that was already open before the extension was installed.

Your password is never seen or stored.


Troubleshooting

“The extension hasn’t seen this tab load your Reelgood data yet” Reload the page (F5), wait until your list appears, then click the icon again.

“Reelgood rejected the export even though you’re signed in” Click Copy details in the panel. The details list only names and counts (never passwords or sign-in values) and show what the extension saw. They’re what’s needed to diagnose the problem.

The export briefly opens your Seen page That’s intentional. If the extension hasn’t picked up your sign-in yet, it opens your Seen page, which always loads your data, and finishes the export there. It does this at most once per click.

Warnings on the Summary sheet A warning means a custom list came back with fewer titles than Reelgood says it has. Try exporting again; if it persists, the list may use a format the extension doesn’t handle yet.

Nothing downloads Check whether Chrome blocked multiple downloads (look for an icon at the right end of the address bar) and allow downloads from reelgood.com.

The icon shows a “!” badge The export couldn’t start in that tab. Reload the Reelgood page and try again.


Known limitations

  • Unofficial. The extension uses the same behind-the-scenes requests as the Reelgood website. If Reelgood changes how its site works, the extension may stop working until it’s updated.
  • Watched but untracked shows aren’t included.
    Reelgood doesn’t provide a list of shows you’ve watched episodes of but aren’t tracking, so only tracked shows are exported. Untracked shows still appear if they’re in one of your custom lists, but without watch progress.
  • Some tracked shows have no rating. See Ratings.
  • Rating meanings are unlabelled. Reelgood’s data gives ratings as 0, 1 or 2 without saying what each means.

Customizing

Two settings are easy to change if you’re comfortable editing a text file. After editing, click the reload arrow on the extension’s card in chrome://extensions.

Setting File Default
Name of the rejected-series list build.js, the REJECTED_LIST line 'Rejected Series'
Pause between requests page.js, the GAP line 700 (milliseconds)

Files

File Purpose
manifest.json Extension settings and permissions.
background.js Starts the export when you click the icon, and watches Reelgood’s requests for sign-in details.
page.js Runs inside the Reelgood page and fetches your data.
content.js Shows the progress panel and saves the files.
build.js Builds the Excel workbook.
xlsx.full.min.js SheetJS, the library that writes Excel files.
icons/ Toolbar and extension icons.

Credits

Excel files are created with SheetJS Community Edition, licensed under the Apache License 2.0.

This extension isn’t affiliated with or endorsed by Reelgood.

(1 votes, average: 5.00 out of 5)

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail.