Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mossop/media-metadata
Extract metadata from various media formats. Currently only supports JPEG images and MP4 videos.
https://github.com/mossop/media-metadata
exif javascript metadata typescript
Last synced: 26 days ago
JSON representation
Extract metadata from various media formats. Currently only supports JPEG images and MP4 videos.
- Host: GitHub
- URL: https://github.com/mossop/media-metadata
- Owner: Mossop
- Created: 2018-09-11T22:34:27.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2022-12-30T18:51:30.000Z (almost 2 years ago)
- Last Synced: 2024-09-24T17:46:20.779Z (about 1 month ago)
- Topics: exif, javascript, metadata, typescript
- Language: TypeScript
- Homepage:
- Size: 19.9 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# media-metadata
[![Build Status](https://travis-ci.org/FractalBrew/media-metadata.svg?branch=master)](https://travis-ci.org/FractalBrew/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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)
to the parseBuffer function:```javascript
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](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API):
```javascript
const { parseBuffer } = require("media-metadata");let response = await fetch(url);
let buffer = response.arrayBuffer();
let metadata = parseBuffer(buffer);
```Or from a [File](https://developer.mozilla.org/en-US/docs/Web/API/File):
```javascript
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:```javascript
{
"exif": {
"ImageDescription": "The description"
},
"xmp": {
"http://purl.org/dc/elements/1.1/description": [
"The description"
],
}
}
```A fuller example can be seen in the [tests](https://github.com/FractalBrew/media-metadata/blob/master/test/data/iptc.json).
Dates etc. are not decoded by this module, it is up to you to decode the actual
values when needed.