Creates a new ExifToolCore instance.
Optionalopts: Partial<ExifToolOptions>
Optional configuration options
Custom format parsers (default: all built-in)
Suppress parsing warnings
Format-specific parsing hints
ReadonlytagTag database for custom tag definitions.
ReadonlyoptionsResolved options (merged with defaults).
Gets a parser by format name (e.g., 'JPEG', 'PNG', 'AVIF').
Format identifier
FormatParser if available, undefined otherwise
Parses metadata from an in-memory buffer.
File-system-derived tags (FileName, FileSize, FileModifyDate, etc.) are absent — only embedded metadata is returned.
Image file data as Uint8Array
Parsed file information with tags
Writes metadata tags to an in-memory buffer.
Returns the new bytes with updated metadata container (JPEG APP1, PNG eXIf, WebP EXIF, AVIF/HEIF meta box).
Original image data
Tags to write (normalized format)
Write outcome with new bytes and any warnings
Reads metadata from a file path.
Path to the image file
Optionalhints: ParseHints
Optional parsing hints for format-specific behavior
Parsed file information with tags grouped by metadata standard
Writes metadata tags to a file.
Creates a backup file (<file>_original) unless overwriteOriginal is set.
Supports JPEG (APP1), PNG (eXIf), WebP (EXIF), AVIF/HEIF (meta box).
Path to the input file
Tags to write (normalized format, see TagValue)
Write options
Options for write operations.
OptionaloverwriteOriginal?: booleanOverwrite original file without backup (default: false)
OptionaloverwriteOriginalInPlace?: booleanOverwrite without a backup by updating the original inode instead of renaming a temp file.
OptionalpreserveTime?: booleanPreserve file modification time (default: false)
Optionalcompress?: booleanCompress supported metadata text chunks when this reduces their size.
OptionalwriteMode?: stringExifTool write-mode letters: w (overwrite), c (create), g (create groups).
Write result with success status and any warnings
Writes an .xmp sidecar next to a media file (Lightroom reads these
for RAW/DNG pickup).
The sidecar is an XMP packet carrying the requested XMP properties: 'XMP-dc:Subject' keys or bare aliases (Subject, Keywords, Title, Description, Rights, …). An existing sidecar is read and merged — unknown properties already in it are preserved, matching properties are replaced (idempotent re-runs produce byte-identical files). MetadataDate is written only if requested: derive it from the file's indexed mtime for byte-stable repeat runs.
Path to the media file (sidecar path is derived)
XMP tags to write (non-XMP keys are ignored)
OptionalsidecarPath?: stringOverride the sidecar path (default <media>.xmp)
The sidecar path and the tags actually written
Runs CLI-style arguments programmatically.
Command-line arguments (e.g., ['-j', 'photo.jpg'])
Exit code (0 = success)
Prints CLI help text.
Node.js entry point for exiftool-ts. Extends ExifToolCore with filesystem-based read/write operations.
This is the main class for Node.js environments. For browser/edge, use ExifToolCore directly with
Uint8Arraybuffers.Example