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:
- load the plugins (for example with
EXTRACTOR_plugin_add_defaults), - then extract the keyword list using
EXTRACTOR_extract, - 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 π
βοΈ LEGAL NOTICE βοΈ
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
- arch rolling: libextractor 1.19-1 Β· GPL-3.0-or-later
- debian bookworm: libextractor-dev 1:1.11-7 Β· GPL-3.0-or-later
- debian trixie: libextractor-dev 1:1.13-8+b1 Β· GPL-3.0-or-later
- fedora 43: libextractor-devel 1.13-11.fc43 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 43: libextractor-devel 1.13-11.fc43 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 43: libextractor-devel 1.19-2.fc43 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 43: libextractor-devel 1.19-2.fc43 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 44: libextractor-devel 1.13-13.fc44 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 44: libextractor-devel 1.13-13.fc44 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 44: libextractor-devel 1.19-2.fc44 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 44: libextractor-devel 1.19-2.fc44 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND GFDL-1.3-or-later AND (GPL-3.0-or-later AND LicenseRef-Fedora-Public-Domain) AND LGPL-2.0-or-later AND LGPL-2.1-or-later
- nixos 26.05: libextractor 1.13
- nixpkgs unstable: libextractor 1.13
- opensuse-leap 16.0: libextractor-devel 1.13-bp160.1.14 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: libextractor-devel 1.13-bp160.1.14 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: libextractor-devel 1.13-bp160.1.14 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: libextractor-devel 1.13-bp160.1.14 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- ubuntu jammy: libextractor-dev 1:1.11-5 Β· GPL-3.0-or-later
- ubuntu noble: libextractor-dev 1:1.13-3build3 Β· GPL-3.0-or-later
- ubuntu questing: libextractor-dev 1:1.13-8build1
- ubuntu resolute: libextractor-dev 1:1.13-9 Β· GPL-3.0-or-later
- ubuntu stonking: libextractor-dev 1:1.19-2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms