VarSeal 1.0.1 manual

Add an IPTC/PLUS Data Mining value and your usage terms to new copies of delivered JPEGs, review existing rights metadata, and export a ZIP with delivery notes and a per-file receipt. Everything runs in a browser tab on your computer.

What VarSeal does not do. The embedded values are machine-readable statements. They cannot technically prevent copying or AI training, many websites and apps remove metadata on upload, and VarSeal does not provide legal advice or create a licence agreement. You supply your own rights, usage and contact text.

1. What you need

2. Open VarSeal

  1. Unzip VarSeal-1.0.1.zip to a folder you control, for example Documents/VarSeal.
  2. Double-click VarSeal.html, or drag it into a Chrome window. Keep the app folder next to it.
VarSeal start screen with practice and file buttons, notice panel and empty file list
Start screen: choose photos (1), fill in your notice (2), export copies (3).

In a narrow window (tested at 390 px wide) the panels stack vertically and the file table scrolls sideways inside its own box.

VarSeal at 390 pixels wide with the intake and notice panels stacked
Narrow window: notice panel.
VarSeal at 390 pixels wide showing the first columns of the file table after export
Narrow window: the file table after export. Swipe or scroll sideways inside the table to see the remaining columns.
VarSeal at 390 pixels wide showing the export results and download button
Narrow window: export results with the download button.

3. First result with the practice photos

  1. Click Load practice photos. Ten fictional files appear: nine JPEGs and one text file.
  2. Click Use example values. This fills the notice for the fictional Harbor Studio delivery to Northwind Bakery: Data mining Prohibited for AI/ML training with Replace existing values, usage terms (Replace), other constraints, copyright info URL and copyright notice (Fill where missing).
  3. Check the status chips: Ready 4 · Review 3 · Blocked 2 · Skipped 1.
Practice files listed with statuses Ready, Review, Blocked and Skipped and the filled notice
Review table after loading the practice photos and example values.

Select a file name to see its fields before and after. For H_0008.jpg, the original says Data mining Allowed; the copy will say Prohibited for AI/ML training, because Replace was chosen. With the default Add where missing, the existing value would be kept and flagged instead.

Detail panel for H_0008 showing the original thumbnail and a before/after field table
Detail panel: existing values, review notes and the planned value for each field.
  1. Click Create delivery ZIP. Expected result: 7 written and verified, 2 blocked, 1 skipped.
  2. Click Download VarSeal-Autumn-menu-….zip. Chrome saves it to your downloads folder.
Results with 7 written and verified, 2 blocked, 1 skipped, download button and a pixel comparison for H_0002
Results. In the detail panel, Compare decoded pixels decodes the original and the copy and compares every pixel value.
Practice fileWhat it showsExpected
H_0001.jpgAttribute-style XMP like many editors write, matching IPTC and EXIF copyrightReady
H_0002.jpgProgressive JPEG with existing usage termsReview (usage terms replaced)
H_0003.jpgEXIF copyright only, no XMPReady (XMP added)
H_0004.jpgNo metadata at allReady (copyright filled)
H_0005.jpgXMP and IPTC-IIM copyright disagreeReview (IIM kept, difference reported)
H_0006.jpgIncomplete fileBlocked
H_0007.jpgCMYK JPEGReady
H_0008.jpgExisting Data mining = AllowedReview (replaced)
H_0009.jpgContent Credentials-style APP11 dataBlocked
notes.txtNot a photoSkipped (not opened; the receipt lists it without a SHA-256)

4. Use your own JPEGs

  1. Click Clear list, then Choose JPEG files (you can select many at once) or drop files onto the page. The practice photos are also in the practice folder if you want to try this step with known files.
  2. Choose a Data mining value and decide what should happen when a photo already has one.
  3. Enter your own text for the other fields, or leave them on Keep existing.
  4. Review every Review and Blocked note, then export.

Templates: Save template downloads varseal-template.json with your notice and delivery details. Load template restores it next time. Every export ZIP also contains the template it used.

5. Notice fields and modes

FieldWritten toNotes
Data mining (required)plus:DataMiningA PLUS vocabulary URI such as http://ns.useplus.org/ldf/vocab/DMI-PROHIBITED-AIMLTRAINING. The labels in the list are the PLUS vocabulary definitions.
Other constraintsplus:OtherConstraints (language alternative, x-default)Required when you choose “Prohibited, see Other Constraints property”.
Rights usage termsxmpRights:UsageTerms (x-default)What this client may do with the photos.
Copyright info URLxmpRights:WebStatementMust start with http:// or https://.
Copyright noticedc:rights (x-default)IPTC-IIM and EXIF copies are never changed; differences are reported.

Modes. Keep existing writes nothing for that field. Fill where missing writes only when the photo has no value. Replace overwrites the value (other language versions are kept and reported). A blank field never erases anything: Replace or Fill with empty text is refused. For the copyright notice, Fill where missing also refuses to write when IPTC-IIM or EXIF already holds a different notice.

6. Review statuses

7. Export and what is in the ZIP

Delivery notes page listing the Data mining value, usage terms and seven files with SHA-256 values
Delivery notes from the practice export (fictional data).

SHA-256 values in the receipt. output_sha256 is the SHA-256 of each copy in photos/. input_sha256 is the SHA-256 of each original file VarSeal read. VarSeal does not open files that are not .jpg/.jpeg or that are larger than 32 MiB; their rows say input_read: false (CSV: no), give the size and the reason, and have no input SHA-256.

Before each copy is added to the ZIP, VarSeal re-reads it and checks that every non-XMP segment and all image data are byte-identical to the original and that each written value reads back exactly.

8. Check and reopen results

9. Supported files and limits

10. Troubleshooting

ProblemWhat to do
Page is unstyled or buttons do nothingKeep VarSeal.html and the app folder together; unzip the whole archive first instead of opening it inside the ZIP viewer.
“Create delivery ZIP” is disabledRead the red notes under Export: choose a Data mining value, enter text for fields set to Fill/Replace, or fix the URL.
A file is BlockedOpen its detail panel for the reason. Re-export it from your editor (for example without Content Credentials) and add it again.
Files were not addedThe batch limits are 100 files and 256 MiB; split large deliveries into several batches.
Download does not startCheck Chrome's download bar or settings; the ZIP is created in memory and saved by Chrome.
Metadata missing after upload to a websiteMany sites remove metadata. VarSeal cannot change that; deliver the files directly where possible.

11. Privacy

Photos are read only inside the browser tab. VarSeal makes no network requests (its page policy blocks connections), has no account, and stores nothing between sessions; closing the tab discards the list. Templates are saved only when you click Save template.

12. Uninstall

Delete the unzipped VarSeal folder. Nothing else is installed. Downloaded ZIPs and templates stay where Chrome saved them until you delete them.

13. Tested environment and limitations

VarSeal 1.0.1 · Perunlight · see LICENSE.txt.