media-metadata
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

media-metadata

Build Status

A pure JS library to parse EXIF and IPTC metadata out of media files. Currently only JPEG images are supported but I hope to improve on that in the future.

A few other similar projects exist but this one aims to be usable both in node and (when bundled with something like webpack) in a webpage.

Examples

Basic usage is to just pass an ArrayBuffer to the parseBuffer function:

const { parseBuffer } = require("media-metadata");
 
let buffer = ... // an ArrayBuffer of image data
let metadata = parseBuffer(buffer);

In a webpage you can get an appropriate buffer with a fetch:

const { parseBuffer } = require("media-metadata");
 
let response = await fetch(url);
let buffer = response.arrayBuffer();
let metadata = parseBuffer(buffer);

Or from a File:

const { parseBuffer } = require("media-metadata");
 
let file = ... // a File instance
let reader = new FileReader();
reader.onload = (event) => {
  let buffer = event.target.result;
  let metadata = parseBuffer(buffer);
};
reader.readAsArrayBuffer(file);

Metadata format

The metadata is returned as a JS object with sections for each source of metadata and date inside those. Something like this:

{
  "exif": {
    "ImageDescription": "The description"
  },
  "xmp": {
    "http://purl.org/dc/elements/1.1/description": [
      "The description"
    ],
  }
}

A fuller example can be seen in the tests.

Dates etc. are not decoded by this module, it is up to you to decode the actual values when needed.

/media-metadata/

    Package Sidebar

    Install

    npm i media-metadata

    Weekly Downloads

    4

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    91.7 kB

    Total Files

    23

    Last publish

    Collaborators

    • mossop