Skip to content

ExifTool Tag Coverage

This document reports two separate things about OxiDex, and does not mix them: how many tags it has definitions for, and how many tags it actually extracts from real files.

Auto-Generated

This document is automatically updated on each push to main. Last updated: 2026-08-08

Tag Definitions

Counted from the oxidex-tags-* YAML databases. This is what OxiDex knows a tag exists; it says nothing about whether any parser reads it.

MetricValue
Total Tags16,684
Tag Tables931
Domains6

Definitions are not coverage

A definition count is documentation, not capability. src/tag_sync ingests exiftool -f -listx, which carries count encoding id index lang name type version writable and no layout at all — no SubDirectory, FORMAT, FIRST_ENTRY, ValueConv or Condition. It can say a tag exists; it can never say how to read one. A rising tag count is therefore not evidence of rising extraction coverage. See Measured Extraction Coverage.

Empirical JPEG comparison

For JPEG specifically there is a deeper per-tag comparison against ExifTool covering read and write round-trips, regression-gated in CI: JPEG Tag Support · JPEG Tag Matrix


Definitions by Domain

DomainTablesTagsDescription
Camera5808,246MakerNotes from 40+ manufacturers
Core1081,455EXIF, GPS, XMP, IPTC standards
Document50434PDF, Office, HTML metadata
Image63576PNG, GIF, BMP, WebP, etc.
Media1132,496Audio/video containers
Specialty173,477FLIR, DICOM, DJI, etc.
Total93116,684

Measured Extraction Coverage

Every number in this section comes from running OxiDex and ExifTool 13.59 over the same files and diffing the output tag by tag. It is a measurement, not an estimate derived from source code.

Corpus: ExifTool 13.59 t/images + tests/fixtures

See Measuring Extraction Coverage for how to reproduce this, and what to do when a new file type is added.

ColumnMeaning
MatchSame tag name, same value.
RenameOxiDex read the value correctly under a name ExifTool does not use. Value-confirmed, so this is a naming fix, not parsing work.
ValueBoth emit the tag, values disagree. Usually a PrintConv gap.
MissingExifTool emits a tag OxiDex does not. Real extraction work.
ScoreMatch / (Match + Rename + Value + Missing).
CeilingScore once every rename is corrected.
FormatFilesMatchRenameValueMissingScoreCeiling
AA1300299.4%9.4%
AAC17000100.0%100.0%
AAE13001516.7%16.7%
AFM12011312.5%12.5%
AIFF13002212.0%12.0%
APE122000100.0%100.0%
AVI215803296.9%96.9%
BMP116000100.0%100.0%
BPG170012283.3%83.3%
BTF13001023.1%23.1%
CR21202011194.4%94.4%
CR31313015594.0%94.0%
CRW13001561.9%1.9%
CSV21000855.6%55.6%
CZI1300318.8%8.8%
DFONT1102253.6%3.6%
DICOM1300983.0%3.0%
DJVU (MULTI-PAGE)13610097.3%100.0%
DNG228309495.6%95.6%
DOCX16801197.1%97.1%
DPX121001361.8%61.8%
DR4196000100.0%100.0%
DSS1400357.1%57.1%
DV13001516.7%16.7%
EIP111008112.0%12.0%
ELF EXECUTABLE1502071.4%71.4%
ELF SHARED LIBRARY1601085.7%85.7%
EPS15300591.4%91.4%
EXR11601094.1%94.1%
EXTENDED WEBP12001190.9%90.9%
FIT1000780.0%0.0%
FITS134000100.0%100.0%
FLAC119000100.0%100.0%
FLIF14003093.0%93.0%
FLV14402095.7%95.7%
FPF141000100.0%100.0%
GIF13704090.2%90.2%
GZIP1901090.0%90.0%
HDR13001023.1%23.1%
HEIF13001096.8%96.8%
HTML158000100.0%100.0%
ICC12503089.3%89.3%
ICO112000100.0%100.0%
ICS19004018.4%18.4%
IIQ17104292.2%92.2%
INDD1300925.0%25.0%
INX1300348.1%8.1%
ISO118000100.0%100.0%
ITC13001023.1%23.1%
J2C1300537.5%37.5%
JP21300555.2%5.2%
JPEG694461034222688.7%88.7%
JPS11100568.8%68.8%
JXL1505145.5%45.5%
JXL CODESTREAM1205028.6%28.6%
LFP198000100.0%100.0%
LNK146000100.0%100.0%
M2TS12200195.7%95.7%
M4A15606090.3%90.3%
MACH-O DYNAMIC LINK LIBRARY1801088.9%88.9%
MACH-O EXECUTABLE1702077.8%77.8%
MACH-O STATIC LIBRARY1201525.0%25.0%
MACOS1201818.2%18.2%
MIE1201603.2%3.2%
MIFF113008912.7%12.7%
MKV133000100.0%100.0%
MOBI13002112.5%12.5%
MOI1300730.0%30.0%
MOV17708684.6%84.6%
MP313100196.9%96.9%
MP4266000100.0%100.0%
MPC1160101737.2%37.2%
MRC1300883.3%3.3%
MRW112603296.2%96.2%
MXF134000100.0%100.0%
NEF121307495.1%95.1%
NUMBERS11100761.1%61.1%
ODS13001814.3%14.3%
OGG23300197.1%97.1%
OPUS118000100.0%100.0%
PCAPNG1612350.0%58.3%
PCD13002610.3%10.3%
PCX13001516.7%16.7%
PDF414902098.7%98.7%
PFA16101231.6%36.8%
PFB13001615.8%15.8%
PFM211012628.9%28.9%
PGF13002411.1%11.1%
PICT1300633.3%33.3%
PLIST25012019.2%19.2%
PMP13002311.5%11.5%
PNG5153701786.4%90.4%
PPM1300633.3%33.3%
PPT140000100.0%100.0%
PSD19303294.9%94.9%
PSP13002311.5%11.5%
R3D1300348.1%8.1%
RA1300827.3%27.3%
RAF1970181077.6%77.6%
RAM14000100.0%100.0%
RAR18000100.0%100.0%
RAW13001715.0%15.0%
RM1201493.8%3.8%
RTF13001023.1%23.1%
RW21165031092.7%92.7%
SVG12501096.2%96.2%
SWF13001121.4%21.4%
TIFF9243016193.5%93.5%
TNEF1000370.0%0.0%
TORRENT13002112.5%12.5%
TTF129000100.0%100.0%
TXT95904093.7%93.7%
URL1102136.2%6.2%
VCARD18432420.5%30.8%
VRD1111000100.0%100.0%
WAV11501188.2%88.2%
WIN32 EXE13301097.1%97.1%
WMV14101097.6%97.6%
WPG1400357.1%57.1%
WTV1300694.2%4.2%
X3F2190011990.5%90.5%
XCF125033142.4%42.4%
XISF13002212.0%12.0%
XML42010433.6%3.6%
XMP112121118169.5%69.8%
ZIP111000100.0%100.0%
Total238911015564207377.5%77.6%

Renames — free coverage (13)

OxiDex reads these values correctly under the wrong name. The value match is what makes the mapping safe to act on; name similarity alone would be a guess.

FormatOxiDex nameExifTool nameFiles
PNGtEXt:DescriptionDescription2
PNGtEXt:TitleTitle2
DJVU (MULTI-PAGE)noteNote1
PCAPNGApplicationUserApplication1
PFAPostScript:TitleFontName1
PNGtEXt:AuthorAuthor1
PNGtEXt:SoftwareSoftware1
PNGtEXt:commentComment1
VCARDAddressAddressOther1
VCARDEmailEmailInternetWork1
VCARDSoundSoundOgg1
VCARDTelephoneTelephoneOtherVoice1
XMPXmpmetaXmptkXMPToolkit1

Top missing tags — real extraction work (1981 distinct)

FormatTagFiles
JPEGLensID7
JPEGQuality5
JPEGWarning5
JPEGComposite:GPSAltitude4
JPEGDOF4
JPEGPreviewImageStart4
JPEGSharpness4
PNGDatecreate4
PNGDatemodify4
PNGDatetimestamp4
JPEGAFPoint3
JPEGColorMode3
JPEGDigitalZoom3
JPEGFocusMode3
JPEGISO3
JPEGLightValue3
JPEGMakerNotes:Sharpness3
PNGWarning3
XMPFlash3
CSVColumnCount2
CSVDelimiter2
CSVQuoting2
CSVRowCount2
JPEGDataDump2
JPEGFirmwareVersion2

1956 further missing tags omitted from this table.


MakerNote Status

✅ MakerNote Parsers Active

MakerNote parsers for 30 camera manufacturers are implemented and connected to the TIFF parsing pipeline.

This means the dispatcher has an arm for these makes and that the TIFF parser calls it. It is not a claim about how much of each manufacturer's MakerNote is extracted — only the conformance table above measures that.

Dispatched Manufacturers

Traditional Cameras: Canon, Nikon, Sony, Panasonic, Fujifilm, Leica

Smartphones: Apple

Specialty Devices: Dji, Flir, Gopro, Infiray, Nintendo, Parrot, Reconyx, Red

Legacy Cameras: Ge, Hp, Jvc, Kodak, Motorola, Ricoh, Sanyo

Other: Adobe Indesign, Capture One, Fotostation, Gimp, Leica Camera Ag, Nikon Capture, Photoshop, Scalado


ExifTool Module Reference

Approximate tag counts published by ExifTool for its own modules, for scale. These describe ExifTool, not OxiDex, and are not used in any calculation above.

Base Format Modules

ModuleTagsDescription
Exif.pm~3,732Core EXIF tags
GPS.pm~267GPS location data
XMP.pm~2,012XMP metadata
IPTC.pm~720Press/media metadata
PDF.pm~334PDF documents
QuickTime.pm~6,567MOV/MP4 video
Photoshop.pm~550Photoshop metadata
PNG.pm~100PNG images
TIFF.pm~400TIFF format
ICC_Profile.pm~150Color profiles
RIFF.pm~400RIFF/AVI/WAV

MakerNotes Modules

ModuleTagsDescription
Canon.pm~7,379Canon cameras
Nikon.pm~9,586Nikon cameras
Sony.pm~7,810Sony cameras
Pentax.pm~4,777Pentax cameras
Olympus.pm~3,194Olympus cameras
Panasonic.pm~1,977Panasonic cameras
FujiFilm.pm~1,177FujiFilm cameras
Samsung.pm~1,012Samsung cameras

Media Format Modules

ModuleTagsDescription
Matroska.pm~641MKV/WebM
ID3.pm~200MP3 ID3 tags
FLAC.pm~150FLAC audio
Vorbis.pm~100Ogg Vorbis
ASF.pm~300WMA/WMV
MPEG.pm~250MPEG video

Specialized Modules

ModuleTagsDescription
FLIR.pm~822Thermal imaging
DICOM.pm~500Medical imaging
DJI.pm~300DJI drones
GoPro.pm~250Action cameras
EXE.pm~200Executables

Tag Count Notes

Why definition counts differ from ExifTool's

The OxiDex tag database and ExifTool's documented tag list are not directly comparable, because OxiDex stores:

  1. Variant definitions: Tags with multiple format/type variants
  2. Nested structures: Subtable entries counted separately
  3. Conditional definitions: Platform or version-specific tags

Dividing one count by the other produces a ratio that moves for reasons unrelated to capability, which is why this page does not publish one.

Excluded Tags

Some ExifTool tags are excluded by design:

  • Composite tags: Calculated values (Aperture from FNumber, etc.)
  • Shortcut tags: Aliases to other tags
  • Internal tags: ExifTool operational tags

Released under the GPL-3.0 License.