Media Picker for Immich

Description

Adds an “Immich” tab to the WordPress media picker modal and the Media Library grid view. Search and browse your self-hosted Immich photo library, then import selected photos directly into WordPress or proxy them without copying files.

Features:

  • Use or Copy — “Use” proxies media directly from Immich (no files copied); “Copy” downloads the original into the media library
  • Photo and video support — images are proxied with full-resolution originals; videos stream with seeking support
  • Smart search — find media using Immich’s AI-powered search
  • People filter — browse by recognized people from your Immich library
  • Multi-select — use or import multiple items at once with infinite scroll
  • Lightbox — full-resolution lightbox on Immich images in posts
  • Media Library integration — browse and import Immich assets directly from the Media Library grid view
  • Previously added — the Immich tab shows assets you’ve already used, ready to re-select
  • Secure API proxy — all Immich API calls happen server-side; the API key is never exposed to the browser
  • Per-user API keys — each user can configure their own Immich API key
  • Local proxy cache — proxied media is cached on disk after the first request; optional automatic cleanup with configurable lifetime

External services

This plugin connects to a self-hosted Immich server that you configure in Settings > Immich. Immich is a self-hosted photo and video management solution — it runs on your own infrastructure and is not a third-party cloud service, but the connection is disclosed here for transparency.

What data is sent and when

  • Browsing and searching: When a logged-in WordPress user opens the Immich media picker or searches for photos, the plugin sends API requests (search queries, page numbers, and person filter IDs) to your Immich server.
  • Importing or using media: When a user selects an asset to import or use, the plugin fetches the original file or metadata from the Immich server using the asset’s UUID.
  • Proxying media to visitors: When a site visitor views a page containing Immich-proxied images or videos, WordPress fetches the media from your Immich server on their behalf. Visitor data is not sent to Immich — only the stored asset UUID and your API key are used server-side.

All communication uses the API key you configure in WordPress. The API key is never exposed to browsers.

Immich project links

Since Immich is self-hosted, the terms of use and privacy practices are determined by whoever operates the Immich server you connect to.

Installation

  1. Upload the media-picker-for-immich folder to wp-content/plugins/.
  2. Activate the plugin through the “Plugins” menu in WordPress.
  3. Go to Settings > Immich and enter your Immich server URL and API key.
  4. Generate an API key from the Immich web UI under Account Settings > API Keys.

FAQ

What is Immich?

Immich is a self-hosted photo and video management solution, similar to Google Photos. It runs on your own server and provides AI-powered search, facial recognition, and more.

What is the difference between “Use” and “Copy”?

Use Selected creates a virtual attachment that serves images and videos through your WordPress server as a proxy — no files are stored locally. This keeps your WordPress uploads directory lean.

Copy Selected downloads the full original file into wp-content/uploads/ as a standard WordPress attachment. Use this when you want a local copy independent of your Immich server.

Does my Immich server need to be publicly accessible?

Your Immich server must be accessible from your WordPress server, but it does not need to be publicly accessible on the internet. The plugin proxies all media through WordPress, so visitors never connect to Immich directly.

Can different users have their own API keys?

Yes. If no site-wide API key is set in Settings > Immich, each user can add their own key on their Profile page. The proxy serves media using the key of the user who added the asset.

How does the proxy cache work?

When a proxied image or video is requested for the first time, the plugin fetches it from Immich and saves a copy in wp-content/cache/immich/. All subsequent requests are served from the local cache without contacting your Immich server. To enable automatic cleanup, check Cache Cleanup in Settings > Immich and set a lifetime in hours (default 24). When disabled, cached files are kept indefinitely.

Does the lightbox work automatically?

Yes. Posts containing proxied Immich images automatically get a lightbox. Clicking an image opens the full-resolution original in an overlay. Press Escape or click anywhere to close.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Media Picker for Immich” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.1.0

  • Initial release.