mainamirh167 downloadsFetches URL metadata and displays it as rich embed cards in your notes.
An Obsidian plugin that fetches metadata from supported URLs and displays them as rich embed cards directly inside your notes.

| Provider | Purpose |
|---|---|
| YouTube Data API | YouTube video metadata |
| OMDb API | Movies and TV shows |
| OpenGraph | General website metadata |
More providers may be added in the future.
Paste a supported URL into an Obsidian note:
https://www.youtube.com/watch?v=...
Link Cards detects the URL and provides an option to create an embed.
The URL is then replaced with an embed code block:
```embed
title: "Learn English with Movies"
image: "https://example.com/image.jpg"
description: "A description of the content."
url: "https://www.youtube.com/watch?v=..."
favicon: "https://www.youtube.com/favicon.ico"
aspectRatio: auto
```
Obsidian renders the block as an embed card.
The plugin is currently under development.
Download the latest release.
Extract the plugin files into:
YourVault/.obsidian/plugins/obsidian-meta-embed/
Enable Link Cards from Settings → Community plugins.
Open Settings → Link Cards
Configure the API keys for the providers you want to use.
Each provider can be configured independently, and API keys are stored using Obsidian's Secret Storage.
You only need API keys for the providers you enable:
API keys should be entered through the plugin settings rather than stored directly in your notes or source code.
Clone the repository:
git clone https://github.com/mainamirh/obsidian-meta-embed.git
cd obsidian-meta-embed
Install dependencies:
npm install
Start development mode:
npm run dev
Build the plugin:
npm run build
Link Cards uses a provider-based architecture.
URL
│
▼
Provider Detection
│
├── YouTube ────────► YouTube Data API
│
├── Movie / TV ─────► OMDb API
│
└── Other URLs ─────► OpenGraph
│
▼
Normalized Metadata
│
▼
Embed Code Block
│
▼
Embed Card
Each provider is responsible for determining whether it supports a URL and fetching metadata in a common format.
export type Metadata = {
title: string;
description: string;
image: string;
url: string;
favicon: string;
aspectRatio: "video" | "auto";
};
This makes it possible to add additional providers without changing the core embed rendering system.
This project is licensed under the MIT License.