media-metadata
v2.1.0
Published
Extract metadata from various media formats. Currently only supports JPEG images and MP4 videos.
Downloads
45
Maintainers
Readme
media-metadata
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.