AI-Created Software

Last Updated: October 16, 2026

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.

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: 2.5.4 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.


Scheduled backup

The extension can back up its own settings on a schedule. Open the options page by right-clicking the toolbar icon and choosing Options (or Details → Extension options on chrome://extensions).

This backs up the extension’s settings, which today means the backup schedule itself. It doesn’t export your Reelgood data; that still happens only when you click the icon.

  • Back up settings automatically turns the schedule on. Turning it on makes the first backup straight away.
  • Backup folder is a folder inside your downloads folder, e.g. Backups/Reelgood Exporter. It’s created if it doesn’t exist. The default is Reelgood Exporter Backups.
  • Back up every n days sets how often to back up, from 1 to 365. The extension checks once an hour whether a backup is due, so if the browser was closed when one fell due, it’s made within the hour of the browser opening again.
  • Earlier backups to keep is how many backups to hold on to besides the latest one. With 3, you have the latest backup plus the three before it.
  • Back up now makes a backup immediately and applies the same cleanup.
  • Restore puts back everything in a backup file. See below.

Backups are named with your local date and time, for example:

Reelgood Exporter Backups/reelgood-exporter-backup-2026-09-06-143052.json

Old backups are cleared only after a new one has finished saving. The count works in calendar days:

  • An earlier day with several backups keeps only its newest one, and that day counts as one.
  • A day with no backups counts for nothing.
  • Other backups made on the same day as the latest one are replaced by it.

So with a keep of 3, backups on Monday (two), Wednesday, Thursday, Friday and Saturday leave you with Saturday’s plus Friday’s, Thursday’s and Wednesday’s; both of Monday’s go.

Cleanup counts backups in every folder, so after you change the backup folder, the ones in the old folder still count and are removed in turn. It only touches files the extension saved itself and that are still listed in the browser’s download history. Clearing download history leaves those older backup files on disk for good, and files you move or rename are never deleted.

Restore

Restore asks for a backup file, then shows when it was saved and what it holds before anything changes. Choose Restore to replace your current settings with the file’s, including the backup schedule (on/off, frequency, keep count and folder), or Cancel to leave them alone. Files that aren’t Reelgood Exporter backups, such as the JSON from a data export, are refused.


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 talks to Reelgood in the background or on a schedule; scheduled backups only save the extension’s settings to your computer.

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, which is erased when you close the browser, and to remember the backup schedule.
scripting To start the export in a Reelgood tab that was already open before the extension was installed.
alarms To check once an hour whether a scheduled backup is due.
downloads To save backups into the folder you choose and remove old ones.

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.

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.

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, watches Reelgood’s requests for sign-in details, and runs scheduled backups.
backup.js Backup schedule, file naming, cleanup and restore rules, shared by the background and the options page.
options.html, options.js, options.css The options page: backup schedule, Back up now and Restore.
test_backup.mjs Tests for backup.js. Run with node test_backup.mjs; not needed by the extension.
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 0.20.3, the library that writes Excel files (from cdn.sheetjs.com).
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.