LIBEXTRACTOR(3)

πŸ’… LIBEXTRACTOR πŸ’…

okay so bestie, gather round 🫢 this is the manual page for libextractor(3) β€” the meta-information extraction library, version 1.0.0. Library Functions Manual energy, no cap ✨


🌸 NAME 🌸

libextractor β€” meta-information extraction library 1.0.0 πŸŽ€


✨ SYNOPSIS ✨

#include <extractor.h>

const char *EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType type);

const char *EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType type);

enum EXTRACTOR_MetaType EXTRACTOR_metatype_get_max (void);

struct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options flags);

struct EXTRACTOR_PluginList *EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList *prev, const char *library, const char *options, enum EXTRACTOR_Options flags);

struct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_last (struct EXTRACTOR_PluginList *prev, const char *library, const char *options, enum EXTRACTOR_Options flags);

struct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *prev, const char *config, enum EXTRACTOR_Options flags);

struct EXTRACTOR_PluginList *EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *prev, const char *library);

void EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *plugins);

void EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls);

int EXTRACTOR_meta_data_print (void *handle, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len);

EXTRACTOR_VERSION

πŸ’– DESCRIPTION πŸ’–

GNU libextractor is a simple library for keyword extraction. That's it, that's the whole mission statement, and honestly? iconic. πŸ‘‘

libextractor does not support all formats β€” but it does support a simple plugging mechanism, so you can quickly add extractors for additional formats, even without recompiling libextractor. Slay. πŸ’…

libextractor typically ships with dozens of plugins that can be used to obtain meta data from common file-types. πŸ¦‹

So you wanna write your own plugin for some filetype? Bestie, all you need to do is write a little library that implements a single method with this signature:

void EXTRACTOR_XXX_extract_method (struct EXTRACTOR_ExtractContext *ec);

ec contains function pointers for reading, seeking, getting the overall file size and returning meta data. There's also a field with options for the plugin. And here's the magic part β€” new plugins will be automatically located and used once they're installed in the respective directory (typically something like /usr/lib/libextractor/). Periodt. ✨

The application extract gives an example how to use libextractor. πŸ‘€

The basic use of libextractor is a little three-step routine:

  1. load the plugins (for example with EXTRACTOR_plugin_add_defaults),
  2. then extract the keyword list using EXTRACTOR_extract,
  3. and finally unload the plugins (with EXTRACTOR_plugin_remove_all).

Load, extract, unload. Main character sequence fr fr. 🌟

Textual meta data obtained from libextractor is supposed to be UTF-8 encoded if the text encoding is known. Plugins are supposed to convert meta-data to UTF-8 if necessary. And the EXTRACTOR_meta_data_print function converts the UTF-8 keywords to the character set from the current locale before printing them. The way it handles your locale… we love to see it. πŸŽ€


🌈 SEE ALSO 🌈


libextractor is released under the GPL and is a GNU package (http://www.gnu.org/). πŸ“œ


πŸ’€ BUGS πŸ’€

A couple of file-formats (on the order of 10^3) are not recognized...

not me finding out there's like a thousand formats just vibing in the unknown 😭 bestie it's giving "we're working on it" and honestly, same.

🫢 AUTHORS 🫢

extract was originally written by Christian Grothoff <christian@grothoff.org> and Vidyut Samanta <vids@cs.ucla.edu>. Use <libextractor@gnu.org> to contact the current maintainer(s). legends, every single one πŸ’œ


πŸ“¦ AVAILABILITY πŸ“¦

You can obtain the original author's latest version from http://www.gnu.org/software/libextractor/. Go get it bestie πŸƒβ€β™€οΈπŸ’¨


and that's the whole page, babes πŸ’– this was GNU libextractor 1.0.0, dated Sept 4, 2012, living its life as LIBEXTRACTOR(3) in the Library Functions Manual β€” take care of her, she's a classic πŸŽ€βœ¨πŸŒΈ

πŸ“¦ where this page comes from