AnyContent Vault Importer

approved

by Coder4

粘贴抖音 / TikTok / 微信公众号 / YouTube 链接,自动转录/提取/OCR 成 Markdown 并写入 vault。单一插件覆盖多平台,输出 AI-readable 文本。 - This plugin has not been manually reviewed by Obsidian staff.

1 stars749 downloadsUpdated 2mo agoMIT

AnyContent Vault Importer

Paste a Douyin / TikTok / WeChat Official Account / YouTube link, and this plugin sends it to a small local backend that transcribes, scrapes, or OCRs the content into a clean Markdown note inside your vault.

One plugin, four platforms, AI-readable text output. No third-party services are called by the plugin itself — only your local backend.

Features

SourceWhat you get
Douyin / TikTok videoASR transcript + no-watermark MP4 URL (optional local download)
Douyin image post (图文)Per-image OCR'd Markdown + image URLs
WeChat Official Account articleFull article body in Markdown (text + inline image references)
YouTube videoTimestamped transcript + title / channel metadata

Every imported note ships with a YAML frontmatter block (title, source, author, platform, post_type, created, tags, …) so it slots straight into Dataview, Bases, or your own queries.

Architecture

Obsidian ── (HTTP, localhost only) ──> Python backend ── (ASR / OCR / scrape) ──> Markdown ──> vault

This plugin is the Obsidian side only. The backend is a separate FastAPI service that you run locally — see vancoder4-cyber/anycontent-obsidian-backend.

The split keeps the plugin tiny (no Python / no ffmpeg bundled) and lets the heavy lifting (audio extraction, model inference, etc.) live in a dependency stack that's natural for that work.

Install

From the community plugin store (recommended once approved)

Settings → Community plugins → Browse → search AnyContent Vault Importer → Install → Enable.

Manual / BRAT (until approved)

  1. Install BRAT.
  2. BRAT → "Add Beta plugin" → paste https://github.com/vancoder4-cyber/anycontent-obsidian-importer.
  3. Enable the plugin in Settings → Community plugins.

Run the backend

git clone https://github.com/vancoder4-cyber/anycontent-obsidian-backend
cd anycontent-obsidian-backend
uv sync
export API_KEY=sk-your-siliconflow-key   # free signup at https://cloud.siliconflow.cn/
uv run python web/app.py                  # listens on :8080

The API key is required for video ASR and image OCR (SiliconFlow's SenseVoice / Qwen-VL). WeChat articles and YouTube transcripts work without it.

Usage

There are three ways to trigger an import:

  1. Ribbon icon (the download arrow on the left sidebar) → paste link → Import.
  2. Command palette → "Import URL to vault" or "Import URL from clipboard".
  3. Inbox folder — turn on Inbox auto-consume in settings. Anything you write into _anycontent-inbox/<name>.txt is treated as share text and imported automatically. Useful for pairing with shell scripts, automations, or AI assistants that write files into your vault.

Imported notes land in your configured Raw folder (raw/ by default) with a filename pattern you control via {date}-{author}-{platform}-{title}.

Settings

SettingWhat it does
Backend URLWhere the local backend is listening. Defaults to http://127.0.0.1:8080.
API keyOverride the backend's API_KEY per-vault (or leave blank to use the backend's env var). Stored locally only.
Raw folderVault-relative path where imported notes are written.
Filename patternTemplate with {date} {author} {platform} {title} {videoId} tokens.
Save no-watermark video locallyFor Douyin / TikTok, also download the MP4 into raw/<media>/ and embed it.
Media subfolder nameThe subfolder used by the previous option.
Open note after importAuto-open the new note when import finishes.
Inbox folderVault-relative folder watched for new files.
Inbox auto-consumeToggle whether files dropped into the inbox are imported automatically.

Privacy / Network

  • The plugin only makes HTTP calls to your local backend URL. It never connects directly to the internet from Obsidian.
  • The backend, in turn, fetches the source page (e.g. mp.weixin.qq.com), and for video ASR / image OCR it forwards the audio / image to whichever provider you've configured your API key with (SiliconFlow by default).
  • No analytics, telemetry, or remote logging in this plugin.
  • API keys you paste into the settings tab are stored in Obsidian's plugin data file inside the vault. Treat the vault accordingly.

Compatibility

Desktop-only (isDesktopOnly: true). The backend requires Python 3.10+ and runs anywhere uv / pip runs.

Minimum Obsidian: 1.4.0.

Known limitations

  • YouTube transcripts depend on YouTube exposing captions. Videos with captions disabled / blocked will still create a note (title + channel + author), with a clear "no transcript" message in the body.
  • WeChat image hotlinkingmmbiz.qpic.cn images often refuse to load outside of WeChat due to Referer restrictions. The plugin embeds the URL anyway so the text content remains complete; viewing the images may require opening the original article.
  • WeChat articles behind login cannot be extracted (the page returns a login wall).
  • Douyin OCR can take ~5s per image on the default Qwen3-VL model. A 10-slide post takes ~1 minute.

Contributing

Issues and PRs welcome. Source: https://github.com/vancoder4-cyber/anycontent-obsidian-importer.

License

MIT — see LICENSE.

The backend repo carries its own license (Apache 2.0, inheriting from upstream yzfly/douyin-mcp-server).

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.