haotiencheng6 downloadsPaste a YouTube link and choose to embed it, paste an iframe, or add its title. Supports Shorts and playlists.
Paste a YouTube, Instagram, or TikTok link into a note and choose how to show it, Notion style.

Requires Obsidian 1.13 or later.
haotiencheng/obsidian-video-embed in the BRAT plugin.main.js, manifest.json, and styles.css from the latest release into <vault>/.obsidian/plugins/youtube-embed/, then enable Video Embed in Settings → Community plugins.Paste a link on its own. A small card asks how to show it:
| Link | Choices |
|---|---|
| YouTube | Embed video, Title link, Plain link |
| Embed reel (or Embed post), Plain link | |
| TikTok | Embed video, Plain link |
Title link turns the URL into [Video title](url).
↑ ↓ to choose, Enter to apply, Esc or a click elsewhere keeps the plain link. If you just keep typing, the card closes and nothing is lost.
The plugin never reads your clipboard on its own. It only looks at what you paste, at the moment you paste it.
width: 480px. Double-click the handle to go back to the default width.Videos, Shorts, live streams, and playlists. Shorts render vertical (9:16), everything else 16:9. Videos load from youtube-nocookie.com, YouTube's privacy-enhanced domain.
```youtube
https://www.youtube.com/watch?v=jNQXAC9IVRw
start: 0:05
end: 1:30
caption: Text under the video
```
Accepted URLs: youtube.com/watch?v=, youtu.be/, /shorts/, /embed/, /live/, m.youtube.com, playlists (?list=), and bare 11-character video ids.
Posts and reels, shown as a clean card: the media with the Instagram badge top-left and the creator's @handle bottom-left. It uses Instagram's official embed, which usually sends you to Instagram to play a reel.
```instagram
https://www.instagram.com/reel/DZWGtwrRPIC/
author: petitvisual
```
The handle is read from links like instagram.com/<user>/reel/…. For other links, add author: with the pencil. Instagram cards can be 326px to 540px wide.
Videos, using TikTok's official embed player. Short links (vm.tiktok.com/…, vt.tiktok.com/…, tiktok.com/t/…) work too.
```tiktok
https://www.tiktok.com/@scout2015/video/6718335390845095173
```
The first time, TikTok may ask about cookies inside the player. Answer once and it won't ask again.
The first line without a key: prefix is the URL. Every option is optional.
| Option | Example | Applies to | Notes |
|---|---|---|---|
url |
url: TfTAB6F-kW0 |
all | Same as a bare URL line |
width |
480px, 60% |
all | Set by dragging; overrides the default width |
caption |
any text | all | Shown under the embed |
start |
90, 1:30, 1m30s |
YouTube | Overrides t= in the URL |
end |
2:00 |
YouTube | Stop time |
vertical |
true / false |
YouTube | Force 9:16 or 16:9 |
author |
@petitvisual |
Handle shown bottom-left |
youtube block at the cursor, ready for a link.100%).360px).
npm install
npm run dev # watch build
npm run build # type-check + production build
npm run lint # eslint-plugin-obsidianmd
npm test # parser unit tests (Node 22+)