Metadata Extractor

by kometenstaub
5
4
3
2
1
Score: 44/100

Description

Category: 3rd Party Integrations

The Metadata Extractor plugin offers a powerful way to export metadata from your Obsidian vault. With this plugin, you can write various types of metadata to disk, including tags, markdown notes, non-markdown files, and canvas files. This allows third-party apps to access and utilize your Obsidian metadata in ways that were previously not possible.

The plugin provides four different JSON exports, each with its own unique structure and purpose. For example, the tag export writes a JSON file containing information about each tag and its corresponding file paths, while the markdown notes metadata export writes a JSON array of Metadata objects for each Markdown file in your vault.

These exports can be executed on a schedule, giving you control over when and how often your metadata is updated. The plugin also offers configuration options to customize the names and locations of the exported files, as well as the frequency and timing of the exports.

Overall, the Metadata Extractor plugin opens up new possibilities for integrating Obsidian with other apps and tools, making it a valuable addition to any Obsidian user's toolkit.

Reviews

No reviews yet.

Stats

132
stars
25,935
downloads
11
forks
1,681
days
928
days
1,236
days
12
total PRs
3
open PRs
1
closed PRs
8
merged PRs
15
total issues
6
open issues
9
closed issues
0
commits

Latest Version

3 years ago

Changelog

1.1.0 (2022-12-20)

Features

Bug Fixes

  • frequency update for canvas (b96bca2)

README file from

Github

Metadata Extractor Obsidian plugin

This plugin allows you to write Obsidian vault metadata, which is only accessible via plugin, onto the hard drive. This enables Third-party apps to access Obsidian metadata which they normally wouldn't be able to access. Exemplary use cases are launcher apps (e.g. Alfred, Ulauncher) or graph analysis software.

See this guide for more information on Controlling Obsidian via a Third-party App.

There are four JSON-exports

They can be executed on a schedule.

Tag export

One writes a JSON file to disk with each tag and its corresponding file paths.

Example:

[
	{
		"tag": "css-themes",
		"tagCount": 5,
		"relativePaths": ["Advanced topics/Contributing to Obsidian.md"]
	},
	{
		"tag": "insider-build",
		"tagCount": 3,
		"relativePaths": ["Advanced topics/Insider builds.md"]
	},
	{
		"tag": "anothertag",
		"tagCount": 2,
		"relativePaths": [
			"Plugins/Zettelkasten prefixer.md",
			"Advanced topics/Using obsidian URI.md"
		]
	}
]

TypeScript interface:

/**
 * JSON export: tagToFile[]
 */
interface tagToFile {
	tag: string;
	tagCount: number;
	relativePaths: string[] | string;
};

Markdown notes metadata export

The second one writes a JSON file to disk with metadata for each file name. This is how the JSON structure is as a TypeScript interface.

/**
 * JSON export: Metadata[]
 */
import {extendedFrontMatterCache} from "./interfaces";

interface Metadata {
	fileName: string;
	relativePath: string;
	tags?: string[];
	headings?: { heading: string; level: number }[];
	aliases?: string[];
	links?: links[];
	backlinks?: backlinks[];
	frontmatter?: extendedFrontMatterCache;
}

interface links {
	link: string;
	relativePath?: string;
	cleanLink?: string;
	displayText?: string;
}

interface backlinks {
	fileName: string;
	link: string;
	relativePath: string;
	cleanLink?: string;
	displayText?: string;
}

interface extendedFrontMatterCache {
	cssclass?: string;
	publish?: boolean;
	position: Pos; // Pos is from the Obsidian API
	[key: string]: any;
}

The exported array contains a JSON array with Metadata objects, one object for each Markdown file in your vault.

All objects have a fileName and a relativePath. fileName doesn't contain the .md extension, relativePath is the path from your vault root.

If a file has tags, the object has a tags property that contains an array of tags. Tags are all lower-cased and if a tag appears more than one time in a file, it will only appear one time in tags. If a file has any frontmatter it is included in frontmatter. The structure of the object depends on your frontmatter.

aliases, links and backlinks also only exist if there are any of the in a file.

The links contain both links to existing and non-existing files. If a file doesn't exist, the links won't have a relativePath.

link is the full link, exluding anything after the |, so if no alias is set, it also contains # or #^ if there are headings or block references. If that is the case, there is also the cleanLink property which provides just the filename for the link (omitting the .md extension).

displayText is what is displayed by Obsidian in preview mode. It can be the alias, but also the file name if there is a heading or block reference. If it is a heading link or block reference to the same file, it excludes the #, just like Obsidian does in preview mode.

cleanLink and displayText don't exist if it is a normal link.

Backlinks always have a relativePath property because the file linking to the current file (object) needs to exist.

fileName and relativePath are the file which contains the backlink.

link, cleanLink and displayText behave as the links interface

Non-Markdown files metadata export

The third writes a JSON file containing both all folders and non-Markdown files. The structure is like this.

/**
 * JSON export
 */
interface exceptMd {
	folders: folder[];
	nonMdFiles?: file[];
}

interface folder {
	name: string;
	relativePath: string;
}

interface file {
	name: string;
	basename: string;
	relativePath: string;
}
file interface

The name is the file name including the extension, basename excludes it. relativePath is the path from the vault root.

Canvas metadata export

The fourth export writes a JSON file containing name, basename and relativePath of canvas files as object in an array.

[
  {
    "name": "my-canvas.canvas",
    "basename": "my-canvas",
    "relativePath": "Inbox/my-canvas.canvas"
  },
  {
    "name": "visualisation.canvas",
    "basename": "visualisation",
    "relativePath": "visualisation.canvas"
  }
]

Configuration

If you don't touch any settings, the files will be saved to the plugin folder. You can configure their names in the settings.

You can however also specify absolute paths for each file. They need to include the file name and extension in this case. The setting above won't have any effect then.

You can also set the frequency for writing the JSON files in minutes (default setting is 0, so it is not enabled) and whether the JSON files should be written on launch (default setting is false).

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Pandoc
5 years ago by Oliver Balfour
Pandoc document export plugin for Obsidian (https://obsidian.md)
Obsidian Enhancing Export
4 years ago by YISH
This is an enhancing export plugin base on Pandoc for Obsidian (https://obsidian.md/ ). It's allow you to export to formats like Markdown、Markdown (Hugo https://gohugo.io/ )、Html、docx、Latex etc.
Meta Bind Plugin
4 years ago by Moritz Jung
A plugin for Obsidian to make your notes interactive with inline input fields, metadata displays, and buttons.
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Better Export PDF
2 years ago by l1xnan
Obsidian PDF export enhancement plugin
Supercharged Links
5 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
Pretty Properties
7 months ago by Anareaty
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
Webpage HTML Export
3 years ago by Nathan George
Export html from single files, canvas pages, or whole vaults. Direct access to the exported HTML files allows you to publish your digital garden anywhere. Focuses on flexibility, features, and style parity.
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Auto Card Link
4 years ago by Nekoshita Yuki
Update time on edit
5 years ago by beaussan
April's Automatic Timelines
3 years ago by April Gras
Simple timeline generator plugin for story tellers using obsidian
Media DB Plugin
4 years ago by Moritz Jung
A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your vault.
Obsidian markdown export
3 years ago by bingryan
This plugin allows to export directory/single markdown to a folder. support output format(html/markdown/text)
PDF break page
2 years ago by CG
Plugin for obsidian that adding shortcuts to create breakpages for pdf exports.
Frontmatter Markdown Links
a year ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Binary File Manager
4 years ago by qawatake
An Obsidian plugin to manage binary files
Kindle Export
4 years ago by Simeon Stanek
A plugin which converts .md files from Obsidian to your Kindle/PocketBook
AI Tagger Universe
a year ago by Hu Nie
An intelligent Obsidian plugin that leverages AI to automatically analyze note content and suggest relevant tags, supporting both local and cloud-based LLM services.
NetClip
a year ago by Elhary
this plugin is for Obsidian that allows you to browse the web and clip webpages directly into your vault.
Export To TeX
5 years ago by Zach Raines
export obsidian markdown files in a format that can be pasted into a TeX file
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
Export Graph View
a year ago by Sean McGhee
Plugin to export your vault's graph view.
Media Companion
a year ago by Nick de Bruin
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Linked Note Exporter
9 months ago by the-c0d3r
Obsidian plugin to export a note along with all its attachments and linked notes—cleanly, conveniently, and ready to share.
Time Things
2 years ago by Nick Winters
Show clock, track time spent editing a note, and track the last time a note has been edited.
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Content Cards
a year ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
Fold Properties By Default
a year ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Kanban Status Updater
a year ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
Screwdriver
4 years ago by vorotamoroz
Note aliases
3 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
Metadata Icon
2 years ago by Benature
change metadata entry icon
Import/Export TiddlyWiki
3 years ago by Lucas Bordeau
Import/export TiddlyWiki tiddler files with Obsidian
Additional Icons
2 years ago by Matthew Turk
Add additional iconsets to Obsidian
Image Magician
2 years ago by luxmargos
This is a plugin for Obsidian (https://obsidian.md). Supports viewing and exporting various image formats using ImageMagick.
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
File Title Updater
a year ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
Symbol linking
10 months ago by Evan Bonsignori ; Mara-Li
Adds ability to link with any trigger in Obsidian. Each trigger can limit linking to specific folders or file.
Latex Exporter
a year ago by Matthew S. Scott
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
Strapi Exporter AI
2 years ago by Cinquin Andy
[prod] - 🚀 Strapi Exporter: Supercharge Your Obsidian-to-Strapi Workflow, export an obsidian notes directly to your Strapi API
File Index
2 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
my anime list text exporter
2 years ago by XmoncocoX
a plugin who create an obsidian page for an anime with the data from my anime list.
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Dataview Autocompletion
a year ago by Daniel Bauer
Static Site MD Exporter
2 years ago by Yunfi
Export specific notes to general md for static site generation, such as Hexo, Hugo, or Astro
KoReader Highlight Importer
a year ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Conditional Properties
4 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
Gitlab Wiki Exporter
2 years ago by Josef Rabmer
Tag Tactician
a year ago by Scott Tomaszewski
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
LLM Tagger
a year ago by David Jayatillake
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
WhatsApp export note
a year ago by JoaoEmanuell
Obsidian plugin to export notes for whatsapp
Note Codes
8 months ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Paste Image Into Property
a year ago by Nito
Sentinel
a year ago by Giorgos Sarigiannidis
A plugin for Obsidian that allows you to update properties or run commands based on document visibility changes.
Quarto Exporter
2 years ago by Andreas Varotsis
Export Obsidian notes to Quarto-compatible QMD files.
Yandex Wiki Integration
10 months ago by Pavel Sokolov
Boardgame Search
a year ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Note Favicon
a year ago by mdklab
Obsidian plugin – Show Favicon from Metadata
ExMemo Assistant
a year ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
Current File Tags
a year ago by Trung Tran
Book Clipper
5 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Simple File Info
a year ago by Lukas Capkovic
My Thesaurus
a year ago by Mara-Li
A plugin that auto tags file based on contents and a csv file or a Markdown table (inspired by https://github.com/pmartinolli/MyThesaurus)
Papers
8 months ago by William Liang
An obsidian plugin to retrieve and import research papers.
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.
Another Name
a year ago by Jiyuan Wang
Add a subheading to your note in Obsidian
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Copy Local Graph Paths
a year ago by Amy Z
copy-local-graph-paths is a simple Obsidian plugin that copies the paths of notes linked to your current page.
Discrete
9 months ago by shkarlsson
Frontmatter Metadata Link Classes
10 months ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Frontmatter to HTML Attributes
2 months ago by Tarek Saier
Makes YAML frontmatter available as data-* attributes in HTML, enabling metadata based CSS styling.