cnwenzhihong197 downloadsAuto formats pasted URLs as Markdown links, media embeds, and supported site titles.
Auto Paste Link is an Obsidian plugin that formats a single pasted URL into a Markdown link, image embed, or video embed. For selected supported websites, it can also fill the link title automatically.
中文:这是一个 Obsidian 插件,用于在粘贴单个 URL 时自动生成 Markdown 普通链接、图片嵌入或视频嵌入。对受支持的重要站点,可以自动补全链接标题。
中文:打开演示视频
[](URL) and keeps the cursor inside [].[selected text](URL).[](URL) first, then fills the title when the title request succeeds..<video src="URL" controls muted autoplay loop></video>.Ctrl+Shift+V keeps Obsidian's plain paste behavior and skips plugin processing.Normal link:
[](https://www.baidu.com)
Normal link with selected text:
[百度](https://www.baidu.com)
Image link:

Video link:
<video src="https://example.com/video.mp4" controls muted autoplay loop></video>
Automatic title fetching is intentionally limited to important supported sites:
bilibili, YouTube, Fab, Steam
TMDb, Letterboxd, Rotten Tomatoes, MyAnimeList, Bangumi, Spotify, Dailymotion
GitHub, GitLab, Gitee, Stack Overflow, Stack Exchange
Reddit, Wikipedia
MDN, npm, PyPI, crates.io, Go Packages
Apple Developer, Unity, Next.js, Vue.js, Node.js
Juejin, CSDN, Tencent Cloud Developer, Alibaba Cloud Developer
WeChat Official Accounts, Douban, CNBlogs, SegmentFault, Jianshu
Other websites can use the generic title fetcher when the title looks clean enough.
The following sites were tested and did not expose stable, specific titles to normal plugin requests. They may return verification pages, homepage titles, empty titles, or generic app titles. For these sites, copy the title manually or select the title text before pasting the URL.
IMDb, Netflix, AniList
iQIYI, Youku, Mango TV, Maoyan
NetEase Cloud Music, QQ Music
SoundCloud, Twitch, TikTok
Image detection is deliberately conservative. The plugin does not treat every CDN as an image source.
Detection order:
.jpg, .png, .webp, .gif, .svg, .avif.Built-in trusted image sources include:
images.unsplash.com/i.imgur.com/images.steamusercontent.com/pbs.twimg.com/media/i.ytimg.com/vi/img.youtube.com/vi/i0.hdslb.com/bfs/i1.hdslb.com/bfs/i2.hdslb.com/bfs/Generic CDN domains such as cloudfront.net, akamaihd.net, fastly.net, and googleusercontent.com are not built in, because they can serve images, webpages, scripts, downloads, and many other resource types.
Use custom trusted image sources for hosts or paths that clearly serve images.
Each source has:
images.example.com./media/.Examples:
host: images.example.com
path prefix: /media/
include subdomains: off
This matches:
https://images.example.com/media/abc
It does not match:
https://images.example.com/files/abc
https://sub.images.example.com/media/abc
If include subdomains is enabled, then subdomains such as cdn.images.example.com can also match.
Advanced image URL regular expressions are still available for edge cases, but they should be treated as an escape hatch.
Use trusted image sources first. Use regular expressions only when a source cannot be expressed by host and path prefix.
The default advanced rule recognizes explicit image format query parameters, for example:
https://example.com/resource?id=1&format=jpg
3000ms by default. Fab is usually slower than other supported sites.mp4.main.js, manifest.json, and styles.css from the latest GitHub release..obsidian/plugins/auto-paste-link/.corepack pnpm install
corepack pnpm test
corepack pnpm build
The GitHub release tag must exactly match the version in manifest.json, for example 1.0.4 without a v prefix. Release assets must include main.js, manifest.json, and styles.css.
Only add a site-specific provider when the generic title fetcher returns a bad title and the site has a stable way to produce a cleaner one.
src/core/titleProviders/groups/.TitleProvider with id, displayName, matches, createRequests, and parse.og:title, twitter:title, or <title>.src/core/titleProviders/providers.ts only when no existing group fits.tests/core.test.ts for host matching and title cleanup.node --experimental-default-type=module --test tests/*.test.ts
./node_modules/.bin/tsc.CMD -noEmit -skipLibCheck
node esbuild.config.mjs production