Skip to content

Repository files navigation

xmp - Extensible Metadata Platform (XMP) parser

XMP provides an object oriented interface to XMP data. XMP data can be found in PDF, JPEG, GIF, PNG, and many other formats.

Supported Formats

FormatFile extensionAdditional dependency
JPEG.jpeg, .jpgexifr/jpeg
TIFF.tiff, .tifexifr/tiff
XMP Files.xmp, .xmlnone

Usage

require'xmp'xmp=XMP.new('example.jpg')xmp.dc.subject# => ["something interesting"]xmp.namespaces.eachdo |namespace|
xmp[namespace].attributes.eachdo |attribute|
puts"#{namespace}.#{attribute}: #{xmp[namespace][attribute].inspect}"endend

XMP.new accepts:

  • Paths to files (it will choose based on file extension)
  • File objects (it will choose based on file extension)
  • Nokogiri documents or XML strings

Attributes can be accessed in the following ways:

# assuming an XMP entry AttributeName within the NamespaceName namespace, these are all equivalentxmp['NamespaceName']['AttributeName']xmp.namespace_name.attribute_namexmp.NamespaceName.AttributeName# you can also mix themxmp.namespace_name['AttributeName']# or convert the data to an actual hashxmp.to_h# => { 'NamespaceName' => { … }, … }

Installation

$ gem install xmp
$ gem install exifr # optional, for jpeg/tiff support

Or you can add it to your Gemfile:

gem'xmp','~> 1.0'gem'exifr','~> 1.3'

Requirements

  • Ruby 2 (supported on >= 2.6, though xmp may work on earlier versions) or Ruby 3
  • nokogiri (>= 1.10). The xmp gem depends on this gem. It will be installed automatically.
    • On Ruby 2.6, nokogiri 1.13.10 will be installed; nokogiri >= 1.14 require Ruby 2.7.
    • On Ruby 2.7, nokogiri 1.15.5 will be installed; nokogiri >= 1.16 require Ruby 3.
    • See https://nokogiri.org/CHANGELOG.html for nokogiri support for older or newer Ruby versions.
  • exifr (>= 1.3). This gem is optional. If you need it, add it to your Gemfile.

Development

Fork it at https://github.com/amberbit/xmp

$ bundle install # install development dependencies
$ rake spec # run specs

License

Ruby's license.

Copyright (c) 2011 Wojciech Piekutowski, AmberBit (http://amberbit.com) and contributors.

About

Extensible Metadata Platform (XMP) parser

Resources

Stars

52 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages