Media Fetcher

approved

by Bryan

Download authorized audio and video as vault attachments using a local yt-dlp installation. - This plugin has not been manually reviewed by Obsidian staff.

9 downloadsUpdated 9d agoMIT

Media Fetcher

Media Fetcher is a desktop-only Obsidian plugin for authorized personal archiving, research, education, and knowledge preservation. It uses your local yt-dlp installation to save a lecture, webcast, video, or podcast as a normal attachment inside your vault.

Why this plugin

Existing community plugins either support only Windows, make downloading a secondary feature of a larger player, or focus on transcription and AI. Media Fetcher is intentionally narrow: capture a URL, store the media in the vault, and optionally embed it in the note you are writing.

Features

  • Video or audio-only downloads
  • 480p, 720p, 1080p, or best-available video presets
  • M4A, MP3, and Opus audio presets
  • macOS auto-detection for Homebrew, MacPorts, pip, and local binary installs
  • Configurable vault attachment folder
  • Follows Obsidian's configured attachment location by default
  • Download progress in the status bar
  • Clickable activity panel with live progress, recent diagnostics, and errors
  • A command to cancel the active download
  • Optional attachment embed and source link in the active note
  • Right-click raw URLs and Markdown links to download and replace them
  • No shell interpolation: yt-dlp is invoked directly with an argument array
  • Single-item downloads by default to prevent accidental playlist imports

Media Fetcher does not bundle, download, or update yt-dlp or ffmpeg.

Installation

After the plugin is accepted into the Obsidian Community Plugins directory:

  1. Open Settings → Community plugins → Browse.
  2. Search for Media Fetcher.
  3. Select Install, then Enable.

For beta testing before directory approval, add https://github.com/nonstopdevelopment/media-fetcher through BRAT, or copy the three release assets into <vault>/.obsidian/plugins/media-fetcher/.

Requirements

  • Obsidian desktop 1.7.2 or newer
  • yt-dlp installed locally
  • ffmpeg for merged video streams and audio conversion

On macOS with Homebrew:

brew install yt-dlp ffmpeg

Obsidian applications do not always inherit the same PATH as Terminal. Media Fetcher checks common locations such as /opt/homebrew/bin/yt-dlp and also lets you set the absolute path in settings.

Use

  1. Run Media Fetcher: Download media to vault from the command palette, or click the download icon in the ribbon.
  2. Paste a URL and choose video or audio.
  3. Leave Insert in active note enabled to add the attachment and source link at the cursor when the download finishes.

By default, Media Fetcher follows Settings → Files and links → Default location for new attachments. This supports the vault root, a fixed attachment folder, the current note's folder, and a subfolder beneath the current note's folder. Select Custom media folder in Media Fetcher settings only if you prefer one centralized media library.

Responsible use

Media Fetcher is a general-purpose interface to software installed and controlled by the user. It is not intended to circumvent DRM, paywalls, authentication, access controls, or other technical restrictions.

Use it only for media you own, media whose rights holder has authorized you to download, appropriately licensed or public-domain media, or uses otherwise permitted by applicable law. You are responsible for evaluating copyright, license terms, privacy and publicity rights, and the source platform's terms before downloading, sharing, publishing, or redistributing any media.

The plugin cannot determine whether a particular download or later use is lawful. See Responsible use for examples and additional guidance. This project is not affiliated with or endorsed by yt-dlp, YouTube, or any supported media service.

Development

This repository uses pnpm:

pnpm install
pnpm check

For local testing, copy or symlink main.js, manifest.json, and styles.css to <vault>/.obsidian/plugins/media-fetcher/, then reload Obsidian.

Release

Push a semantic-version tag matching manifest.json, without a v prefix. The release workflow validates the project and publishes main.js, manifest.json, and styles.css as GitHub release assets.

Privacy and security

Media Fetcher does not include telemetry, advertisements, accounts, payments, or a plugin-owned server.

When you start a download, the plugin passes the URL to your configured local yt-dlp executable. yt-dlp and ffmpeg contact the media source and any delivery hosts required by that source. Media Fetcher starts these executables directly with argument arrays and never interpolates the URL into a shell command.

When following Obsidian's attachment settings, the download is staged in a plugin-created operating-system temporary directory, moved into the selected vault attachment folder, and the temporary directory is removed. With a custom media folder, the executable writes directly into that vault folder. Recent diagnostic messages and URLs remain in memory only for the current Obsidian session.

Report security concerns through the repository's issue tracker.

License

MIT

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.