Obsidian Web Clipper Templates: 6 Ready-to-Use Examples

The official Obsidian Web Clipper is free, open source and saves straight into your vault. Its real power is templates: one per type of page, picked automatically by a trigger, each deciding the note name, folder, properties and body.

The catch is that a blank template editor tells you nothing. This post is a gallery of six templates you can paste in today, with the syntax checked against the official docs and the clipper’s source code. Then a section on triggers, variables and filters, so you can write your own.

How a template is built

Every template has the same parts:

  • Note name and note location (for example Clippings/Videos)
  • Properties, which become the YAML frontmatter
  • Note content, the Markdown body
  • Triggers, the URL patterns or schema.org types that select the template automatically

All four fields accept variables like {{title}} or {{url}}, and every variable can be piped through filters like {{published|date:"YYYY-MM-DD"}}. To see what a page exposes, open the clipper and click the ... icon: it lists the current page’s variables.

Templates are shared as .json files. To import one, open the clipper settings, go to any template and click Import (or drag the file in). Kepano’s clipper-templates repo on GitHub has a dozen more examples in the same format.

1. YouTube video with transcript

This is the full importable JSON, so you can see the format once. Save it as youtube.json and import it.

{
  "schemaVersion": "0.1.0",
  "name": "YouTube",
  "behavior": "create",
  "noteNameFormat": "{{title|safe_name}}",
  "path": "Clippings/Videos",
  "noteContentFormat": "![{{title}}]({{url}})\n\n{% if transcript %}## Transcript\n\n{{transcript}}{% else %}No transcript available.{% endif %}",
  "properties": [
    { "name": "title", "value": "{{schema:name}}", "type": "text" },
    { "name": "channel", "value": "{{schema:author|wikilink}}", "type": "multitext" },
    { "name": "published", "value": "{{schema:uploadDate|date:YYYY-MM-DD}}", "type": "date" },
    { "name": "duration", "value": "{{schema:duration|duration}}", "type": "text" },
    { "name": "source", "value": "{{url}}", "type": "text" },
    { "name": "tags", "value": "videos", "type": "multitext" }
  ],
  "triggers": ["https://www.youtube.com/watch?v="]
}

Two details worth knowing. The ![...]({{url}}) line embeds the player in your note. And {{transcript}} is not in the docs’ variable table: it comes from the YouTube extractor in Defuddle, the parser inside the clipper, and only exists when the video has captions. That’s why the template wraps it in {% if %}. If you’d rather keep a summary than 10,000 words of captions, enable Interpreter and replace it with a prompt variable such as {{"a five bullet summary of the video"}}.

2. X (Twitter) thread

Recent versions of the clipper recognize X posts and put the thread in {{content}}, so the template is mostly about naming and triggering.

Trigger (a regex, so it only fires on posts, not on your timeline):

/^https:\/\/(x|twitter)\.com\/[^\/]+\/status\/\d+/

Note content:

{{content}}

Source: [{{author}}]({{url}})

Useful properties: author = {{author|wikilink}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = threads.

3. Recipe

Recipe sites publish schema.org data, which makes this the cleanest template of the lot: no CSS selectors, works on almost every recipe site.

Trigger:

schema:@Recipe

Note content:

![{{title}}]({{image}})

{{description}}

## Ingredients

{{schema:@Recipe:recipeIngredient|list:task}}

## Steps

{{schema:@Recipe:recipeInstructions[*].text|list:numbered}}

Properties: cuisine = {{schema:@Recipe:recipeCuisine}}, total_time = {{schema:@Recipe:totalTime|duration}}, source = {{url}}. Ingredients become a checklist you can tick while cooking. Some sites group steps into sections; there, recipeInstructions[*].text can come back empty and you’ll need to adjust the path.

4. ChatGPT or Claude conversation

The clipper’s parser has extractors for chatgpt.com and claude.ai, so {{content}} holds the conversation turns in recent versions. Older guides use a long selectorHtml chain for ChatGPT; you shouldn’t need it anymore.

Triggers (one per line):

https://chatgpt.com/c/
https://chatgpt.com/share/
https://claude.ai/chat/

Note content:

{{content}}

Properties: title = {{title}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = ai/conversation. More on keeping chats portable: save ChatGPT conversations as Markdown.

5. Wikipedia article

Wikipedia’s generic extraction keeps navboxes and footers. This template targets the article body directly and strips the noise.

Trigger:

/^https:\/\/[a-z-.]+\.wikipedia\.org\/wiki\/.*$/

Note content:

{{selectorHtml:#mw-content-text|remove_html:(".navbox,.printfooter,.side-box,.mw-editsection")|markdown}}

Properties: title = {{title}}, author = [[Wikipedia]], source = {{url}}, tags = wikipedia. For regular blog posts and news, a plain {{content}} template at the top of your list works as the fallback.

6. Academic paper (arXiv)

arXiv abstract pages expose citation_* meta tags, which give you clean metadata without guessing.

Trigger:

https://arxiv.org/abs/

Note content:

## Abstract

{{selector:blockquote.abstract|replace:"Abstract\:":""|trim}}

## Key contributions

{{"three key contributions of this paper, as a bullet list"}}

Properties: title = {{meta:name:citation_title}}, authors = {{selector:.authors a|wikilink|join}}, published = {{meta:name:citation_date|date:("YYYY-MM-DD", "YYYY/MM/DD")}}, pdf = {{meta:name:citation_pdf_url}}. The “key contributions” line is a prompt variable: it needs Interpreter enabled with a model (an API key or a local Ollama model). Delete it if you don’t use Interpreter.

Template triggers, explained

Triggers come in three flavors, one rule per line:

TypeExampleMatches
Simplehttps://www.youtube.com/watch?v=Any URL that starts with this text
Regex/^https:\/\/arxiv\.org\/abs\//URLs matching the pattern (escape . and /)
Schemaschema:@RecipePages whose schema.org type is Recipe

Schema triggers can also test a field (schema:@Recipe.name) or a value (schema:@Recipe.name=Cookie).

Order matters: the first matching template in your list wins, and a page that matches nothing uses the first template. Drag your generic article template to the top so it acts as the fallback.

Variables and filters cheat sheet

The five variable types:

  • Preset: {{title}}, {{url}}, {{author}}, {{published}}, {{content}}, {{highlights}}, {{date}}
  • Prompt (Interpreter): {{"a summary of the page"}}
  • Meta: {{meta:name:description}}, {{meta:property:og:title}}
  • Selector: {{selector:h1}}, {{selectorHtml:#main|markdown}}
  • Schema.org: {{schema:@Recipe:recipeIngredient}}, {{schema:author.name}}

Filters you’ll reach for most: date, duration, wikilink, list (with task or numbered), join, replace, safe_name, markdown, remove_html, blockquote and callout. Template logic ({% if %}, {% for %}, {% set %}, and the ?? fallback) handles missing data.

Or skip the template maintenance

Templates have one cost the docs don’t mention: upkeep. Sites change their markup, selectors break silently, and you find out weeks later when a note comes in empty. If you clip from dozens of sites, you end up maintaining a small codebase.

Minibase takes the other route. Instead of a template per site, it ships site-specific handling for hundreds of sites (X threads, Reddit, GitHub, ChatGPT and Claude conversations, documentation pages) and returns clean Markdown with frontmatter, without any configuration. The .md files land in a Minibase Vault folder that you can point Obsidian at, so they show up in your vault like any other note.

The free plan gives you 20 saves a month, no account needed. Minibase+ ($5.99/month or $34.99/year) adds 20+ AI templates (Obsidian, Academic, Recipe, Cornell notes, Flashcards and more) and video transcription for YouTube, Reels and TikTok. Here’s how the YouTube transcripts work.

To be fair to Obsidian: if you clip from a handful of sites and enjoy tuning your notes, the official clipper with the templates above is excellent and costs nothing. If you’d rather not debug CSS selectors, Minibase is the low-maintenance option, and nothing stops you from using both. We compared them side by side in Obsidian Web Clipper vs Minibase.

FAQ

Where do I find more Obsidian Web Clipper templates? Kepano’s clipper-templates repo on GitHub has templates for YouTube, Wikipedia, recipes, IMDb, Goodreads, arXiv and more. The Obsidian forum and Discord have many community templates.

Can the Web Clipper save YouTube transcripts? Yes, when the video has captions: recent versions expose a {{transcript}} variable on YouTube pages. Videos without captions have no transcript to grab.

Why does my template not trigger? Usually order: another template higher in the list matched first. Also check that simple triggers match the start of the URL exactly (https://www. versus https://).

Do prompt variables cost money? They run on the model you configure in Interpreter. Cloud providers bill your API key; a local model through Ollama is free.

Continue reading

Ready to save smarter?

Convert any webpage to Markdown with one click.

Add to Chrome