Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

YT links

quietbydayquietbyday39 downloads

Clean YouTube links and timestamps: strip notification counts, make timestamp URLs readable, and link bare time notations to a note's source video.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

An Obsidian plugin that makes YouTube links clean and useful — a companion to the official Obsidian Web Clipper, which captures a video's URL into a source property and a transcript full of unlinked time notations.

It does four things, each available as a command and (for functions 1, 2, and 4) on paste:

  1. Strip notification count — removes a leading count like (58) from the title of a YouTube Markdown link.
  2. Readable timestamps — turns a YouTube URL that carries a timestamp into a Markdown link showing the time, e.g. [0:56](…?t=56).
  3. Link time notations — turns a bare 2:34 / 1:02:05 into a link into the note's source video at that moment.
  4. Strip hashtags — removes or defuses hashtags like #music in a YouTube link title, so pasted video titles don't seed the vault with foreign tags.

Each function can be toggled on or off.

Features

1. Strip notification count

A YouTube page title copied from the browser as a Markdown link often starts with a notification count:

[(62) Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster) - YouTube](https://www.youtube.com/watch?v=dQw4w9WgXcQ)

becomes

[Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster) - YouTube](https://www.youtube.com/watch?v=dQw4w9WgXcQ)

Only the leading count is removed — the other parenthesised parts of the title ((Official Video), (4K Remaster)) are kept. And only short counts (up to three digits) are removed, so a title that genuinely starts with a year like (2049) is left alone.

2. Readable timestamps

A YouTube URL with a timestamp becomes a readable link:

https://youtu.be/dQw4w9WgXcQ?list=RDdQw4w9WgXcQ&t=56

becomes

[0:56](https://youtu.be/dQw4w9WgXcQ?list=RDdQw4w9WgXcQ&t=56)

The time is read from t or start, in any of the forms YouTube accepts (56, 56s, 1m30s, 1h2m3s). Under an hour the title is m:ss; an hour or more, h:mm:ss.

3. Link time notations

Turns bare time notations in the note body into links into the note's source video. The video URL is read from a frontmatter property (default source), which may be a raw URL or a Markdown link:

source: https://youtu.be/dQw4w9WgXcQ

Then 2:34 becomes [2:34](https://youtu.be/dQw4w9WgXcQ?t=154).

Only valid clock times are linked (minutes and seconds 0–59), so scores like 75:68, one-digit forms like 1:5, and ISO datetimes are skipped. Notations inside markup are linked while the markup is kept: **2:34** → **[2:34](…)**. Nothing inside frontmatter, code, existing links, wikilinks, or URLs is touched, and running a command twice never double-links.

If the source property is missing or isn't a YouTube URL, or no notations are found, the plugin tells you and stops.

4. Strip hashtags

Creators often pack hashtags into a video title. Copied into a note, they clutter the link and can seed your vault with foreign tags:

[Live at Montreux #jazz #live-set - YouTube](https://youtu.be/dQw4w9WgXcQ)

Two ways to handle them, chosen in settings:

  • Replace # character (default) — swaps only the # for a character of your choice (default -, or leave the field empty to drop just the #), keeping the word: #jazz → -jazz.
  • Remove entire hashtag — drops the whole #jazz and tidies the leftover spacing.

A hashtag is recognised the same way Obsidian recognises a tag: a # at the start of the title or after a space, followed by letters, digits, _, -, or /, with at least one letter. So #4k and #live-set are handled, while C#, a purely numeric #2049, and a lone # are left alone.

How each command decides what to convert

Each command scopes its work to what you're pointing at, with more warning for bigger changes:

  • On paste (functions 1, 2, and 4): converts automatically and shows a notice of what changed.
  • Text selected: converts everything in the selection after a brief confirmation.
  • No selection, cursor inside a target: converts just that one, no confirmation.
  • No selection, cursor elsewhere: offers to convert the whole note after a warning.

Settings

  • Toggles to turn each of the four functions on or off.
  • YouTube URL property — the frontmatter property that holds the video URL for function 3 (default source).
  • Hashtag handling — for function 4, whether to replace only the # (with a character of your choice, default -) or remove the entire hashtag.

Installing from Community Plugins (recommended)

  1. Open Settings → Community plugins and make sure Restricted mode is off.
  2. Click Browse, search for YT links, and click Install.
  3. Click Enable.

Installing with BRAT (for pre-release testing)

BRAT installs and auto-updates in-development builds straight from a GitHub repo:

  1. Install the BRAT plugin from the Obsidian Community Plugins store and enable it.
  2. Go to Settings → Community plugins → BRAT.
  3. Click Add beta plugin.
  4. Paste this repository URL: https://github.com/Quietbyday/obsidian-yt-links
  5. Click Add plugin.
  6. Enable YT links in Settings → Community plugins.

To update later, open BRAT and click Check for updates (or just restart Obsidian).

Installing manually

  1. Build main.js with npm install then npm run build, or download main.js and manifest.json from a release.
  2. Copy main.js and manifest.json into <Vault>/.obsidian/plugins/yt-links/.
  3. Reload Obsidian and enable YT links in Settings → Community plugins.

Changelog

1.0.1

Maintenance release addressing the community-store audit. No user-facing behavior changes: replaced the builtin-modules build dependency with Node's native module.builtinModules, and tightened two any-typed reads (frontmatter property lookup and saved-settings load) to satisfy the type checker.

1.0.0

First public release on the Obsidian community store. No functional changes from 0.3.0-beta — the four commands (strip notification count, readable timestamps, link time notations, strip hashtags) and their paste/selection/cursor/whole-note behavior are unchanged.

0.3.0-beta

Fixes the strip-hashtags notice, which counted a link with several hashtags as just "1 hashtag". It now reports the number of links cleaned — e.g. "Cleaned 1 hashtagged link" — which is accurate however many hashtags a title holds.

Adds an opt-in Debug logging setting (off by default). When on, the paste handler logs to the developer console what it sees — including whether another plugin already handled the paste — which makes conflicts with other paste plugins easy to track down.

0.2.0-beta

Adds strip hashtags (function 4): removes or defuses hashtags like #music in a YouTube link title, using Obsidian's own tag rules so C# and years like #2049 are left alone. Choose between replacing just the # (default -) or removing the whole hashtag. Runs on paste alongside strip-count and as its own command.

0.1.0-beta

Initial beta. Three commands — strip notification count, readable timestamps, link time notations — each with the paste / selection / cursor / whole-note activation cascade. Region-aware safety (skips frontmatter, code, links, wikilinks, URLs), valid-clock-time checking, and idempotent conversions.

HealthExcellent
ReviewSatisfactory
About
Clean YouTube Markdown links by removing leading notification counts and stripping or defusing hashtags from titles. Convert timestamped YouTube URLs into readable time links and turn bare time notations in notes into links to the note's source video.
LinksFormattingAutomation
Details
Current version
1.0.1
Last updated
7 days ago
Created
Last week
Updates
5 releases
Downloads
39
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
quietbydayquietbyday
github.com/quietbyday
GitHubquietbyday
  1. Community
  2. Plugins
  3. Links
  4. YT links

Related plugins

Advanced URI

Control everything with URI.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Waypoint

Easily generate dynamic MOCs in your folder notes using waypoints. Enables folders to show up in the graph view and removes the need for messy tags!

Auto Link Title

Automatically fetches the titles of links from the web.

Link Embed

Convert URLs in your notes into embeded previews.

Note Linker

Automatically find and create new links between notes.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

BRAT

Easily install a beta version of a plugin for testing.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.