Ben Summers presents
Spotlight, the way you've always wanted it!

SpotMeta for Developers

As a developer, SpotMeta can help you in two ways. Firstly, you can use xattr extended attributes yourself - with Spotlight indexing them and users able to modify them in the SpotMeta Finder extension - and secondly, you can write your own Spotlight importer which extends existing importers, just as the SpotMeta importer adds xattr keys.

End user doesn't require registration

The final version of SpotMeta will require paid registration, but even without registration SpotMeta will provide all the back end extensions.

By developing software which uses SpotMeta, you will not require your users to purchase SpotMeta.

xattr

See www.spotmeta.org for documentation, source code and more. This details how SpotMeta uses xattr extended attributes, and how you can use them to enhance your software and scripts.

Extending existing importers

SpotMeta also allows new importers to add extra data to existing importers. Spotlight as shipped by Apple only ever runs one importer, so if you wanted to pull extra metadata out of a file, you would have to duplicate the functionality of the existing importer before adding your own behavior on top. And if you want to provide extra metadata for every file type, that would be a lot of work.

Simply write an importer in the normal way. However, set the supported UTI to a dummy value which will be never matched. Then, to run the importer after all files, add this key to the Info.plist file:

	<key>SpotMetaImporterExtendsAllTypes</key>
	<true/>

If you would like to only run after specific file types, specify them like this:

	<key>SpotMetaImporterExtendsTypes</key>
	<array>
		<string>public.html</string>
		<string>public.plain-text</string>
	</array>

As an example, the source (and binaries) for a CryptographicHash importer is provided. This adds MD5 and SHA1 metadata to all files, allowing you to search for files by their hash, once everything has been reindexed.

CryptographicHashSource.zip -- source, as an XCode project.

CryptographicHashBinary.zip -- pre-compiled binary.

To use the binary, unzip it and place it in ~/Library/Spotlight.

Installation

Once a importer is added which extends existing importers, the relevant importer server must be restarted. This can be accomplished with the following command:

	killall mdimportserver

 

SpotMeta

Home

How SpotMeta helps you organise your files

Using SpotMeta

Information for Advanced Users

Download

Contact the author

Project status

beta

SpotMeta is an Open Source project, licensed under the GPL.

See note about development status on the contact page.