Skip to content

v1.9.0

Latest

Choose a tag to compare

@guilty57 guilty57 released this 04 Aug 13:56

What's new in v1.9.0

A full config page redesign, plus a reliability fix for Auto-restore found while testing it.

Config page redesign

The plugin now has two clearly separated modes instead of one flat list of options:

  • Custom - you pick your own folder(s). Independent toggles for JSON and for a standalone NFO (the plugin's own file with just a <markers> tag - unrelated to Emby's own scraper NFO), each separately controllable for Backup and for Restore. If both JSON and NFO are enabled for Restore, they're merged field-by-field exactly like Automatic mode's "let the plugin choose" (see below) - whichever source actually has a value wins, and if both have one, the more recently written file wins.
  • Automatic (Media Folder) - backups live next to each video. Backup: independent JSON and NFO (Emby's own scraper NFO) toggles - check one or both. New in this release: an additional "just-in-case" JSON safety copy into a folder of your choosing, completely independent of the two above - Restore never reads from it, it's pure insurance. Restore: NFO / JSON / "Let the plugin choose" (recommended - same field-level + newer-file-wins merge logic as Custom).

Selecting Custom or Automatic now genuinely hides the other mode's section instead of just dimming it. The old standalone "Auto-restore" / "Auto-backup on manual edit" toggles are gone - whether those background watchers are active is now derived automatically from whether you've actually configured a source to use, instead of being a separate switch to remember.

The Automatic JSON safety copy folder gets the same archive-before-overwrite treatment the Custom folders already had - each Backup run zips the previous contents before writing fresh files, instead of silently overwriting with no history.

Reliability fix

Auto-restore occasionally failed to read a video's NFO right after a Refresh Metadata, because Emby's own scraper doesn't write that file atomically - a read could catch it mid-write (empty/malformed). Added a short retry (up to 3 attempts, 300ms apart) specifically for that transient case. Confirmed fixed across multiple shows in testing, no more failed reads observed. Even in the rare case all retries fail, the scheduled Restore task remains a safety net that will pick it up later.

Note

If you're upgrading from an earlier version, take a look at the config page - the layout has changed and you'll want to pick Custom or Automatic and re-check your preferred options.