read_exif
Extract flattened EXIF fields from a single image file across common camera formats, returning available camera, lens, exposure, GPS, and date metadata; unsupported files return a clear note.
Instructions
Read flattened EXIF fields for a single image file.
Best effort across jpg, jpeg, tif, tiff, png, dng, arw, raf, nef, cr2, cr3. A file with no EXIF data, or an unsupported extension, is not an error: fields comes back empty with a note explaining why.
Args: params (ReadExifInput): Validated input containing: - path (str): Path to one image file, must be inside an allowed --root
Returns: dict: { "schema_version": 1, "path": str, "fields": { "camera_make": str, "camera_model": str, "lens_model": str, "focal_length": str, "focal_length_35mm_equiv": str, "iso": str, "exposure_time": str, "f_number": str, "exposure_program": str, "date_time_original": str, "date_time": str, "width": str, "height": str, "orientation": str, "software": str, "gps_latitude": float, "gps_longitude": float, }, # only keys actually present in the file are included "note": str | None, # e.g. "no EXIF data found" } On error: {"schema_version": 1, "error": str}
Examples: - Use when: "What lens and settings were used for this specific frame?" - Don't use when: you want aggregates across many files (use library_stats)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |