Registry and dispatch for original metadata extractors.
After an original is created, Attached.Originals.ExtractMetadataWorker
runs the first accepting extractor and merges the result into
original.metadata.
Each module wraps exactly one tool. Multiple modules can target the same content type — the dispatcher picks the first one whose binary (or NIF) is available.
Ships with:
Attached.Processors.MetadataExtractors.Image.Vix— width, height via libvips (vixNIF)Attached.Processors.MetadataExtractors.Image.ImageMagick— width, height viaidentifyAttached.Processors.MetadataExtractors.Video.FFmpeg— width, height, duration, angle, aspect ratio, audio/video flagsAttached.Processors.MetadataExtractors.Audio.FFmpeg— duration, bit_rateAttached.Processors.MetadataExtractors.Epub.Bupe— Dublin Core metadata via thebupepackage
Configuration
config :attached, metadata_extractors: [
Attached.Processors.MetadataExtractors.Image.Vix,
Attached.Processors.MetadataExtractors.Video.FFmpeg,
Attached.Processors.MetadataExtractors.Audio.FFmpeg,
MyApp.MetadataExtractors.Office
]
Summary
Functions
Returns the first extractor that accepts the given content type and
whose runtime dependencies are available. nil if none match.
Returns all configured extractors (regardless of availability).