{"id":291507,"date":"2026-04-12T14:53:59","date_gmt":"2026-04-12T14:53:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/immich-media-picker\/"},"modified":"2026-04-12T14:54:42","modified_gmt":"2026-04-12T14:54:42","slug":"media-picker-for-immich","status":"publish","type":"plugin","link":"https:\/\/pt-ao.wordpress.org\/plugins\/media-picker-for-immich\/","author":263,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.0","stable_tag":"0.1.0","tested":"6.9.4","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Media Picker for Immich","header_author":"Donncha","header_description":"Use photos and videos from your Immich server in WordPress without copying files, or import them into the media library.","assets_banners_color":"","last_updated":"2026-04-12 14:54:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"donncha","date":"2026-04-12 14:54:42"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Immich tab in the WordPress media picker, showing recent photos with search and people filter.","2":"The Immich settings page where you configure your server URL and API key."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[210,251971,84,205,40192],"plugin_category":[50],"plugin_contributors":[77609],"plugin_business_model":[],"class_list":["post-291507","plugin","type-plugin","status-publish","hentry","plugin_tags-gallery","plugin_tags-immich","plugin_tags-media","plugin_tags-photos","plugin_tags-self-hosted","plugin_category-media","plugin_contributors-donncha","plugin_committers-donncha"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/media-picker-for-immich.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Adds an \"Immich\" tab to the WordPress media picker modal and the Media Library grid view. Search and browse your self-hosted <a href=\"https:\/\/immich.app\/\">Immich<\/a> photo library, then import selected photos directly into WordPress or proxy them without copying files.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Use or Copy<\/strong> \u2014 \"Use\" proxies media directly from Immich (no files copied); \"Copy\" downloads the original into the media library<\/li>\n<li><strong>Photo and video support<\/strong> \u2014 images are proxied with full-resolution originals; videos stream with seeking support<\/li>\n<li><strong>Smart search<\/strong> \u2014 find media using Immich's AI-powered search<\/li>\n<li><strong>People filter<\/strong> \u2014 browse by recognized people from your Immich library<\/li>\n<li><strong>Multi-select<\/strong> \u2014 use or import multiple items at once with infinite scroll<\/li>\n<li><strong>Lightbox<\/strong> \u2014 full-resolution lightbox on Immich images in posts<\/li>\n<li><strong>Media Library integration<\/strong> \u2014 browse and import Immich assets directly from the Media Library grid view<\/li>\n<li><strong>Previously added<\/strong> \u2014 the Immich tab shows assets you've already used, ready to re-select<\/li>\n<li><strong>Secure API proxy<\/strong> \u2014 all Immich API calls happen server-side; the API key is never exposed to the browser<\/li>\n<li><strong>Per-user API keys<\/strong> \u2014 each user can configure their own Immich API key<\/li>\n<li><strong>Local proxy cache<\/strong> \u2014 proxied media is cached on disk after the first request; optional automatic cleanup with configurable lifetime<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to a self-hosted <a href=\"https:\/\/immich.app\/\">Immich<\/a> server that you configure in <strong>Settings &gt; Immich<\/strong>. Immich is a self-hosted photo and video management solution \u2014 it runs on your own infrastructure and is not a third-party cloud service, but the connection is disclosed here for transparency.<\/p>\n\n<h4>What data is sent and when<\/h4>\n\n<ul>\n<li><strong>Browsing and searching:<\/strong> 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.<\/li>\n<li><strong>Importing or using media:<\/strong> 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.<\/li>\n<li><strong>Proxying media to visitors:<\/strong> 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 \u2014 only the stored asset UUID and your API key are used server-side.<\/li>\n<\/ul>\n\n<p>All communication uses the API key you configure in WordPress. The API key is never exposed to browsers.<\/p>\n\n<h4>Immich project links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/immich.app\/\">Immich website<\/a><\/li>\n<li><a href=\"https:\/\/immich.app\/privacy-policy\">Immich privacy policy<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/immich-app\/immich\/blob\/main\/LICENSE\">Immich license (AGPL-3.0)<\/a><\/li>\n<\/ul>\n\n<p>Since Immich is self-hosted, the terms of use and privacy practices are determined by whoever operates the Immich server you connect to.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>media-picker-for-immich<\/code> folder to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to <strong>Settings &gt; Immich<\/strong> and enter your Immich server URL and API key.<\/li>\n<li>Generate an API key from the Immich web UI under <strong>Account Settings &gt; API Keys<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20immich%3F\"><h3>What is Immich?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/immich.app\/\">Immich<\/a> 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.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20%22use%22%20and%20%22copy%22%3F\"><h3>What is the difference between \"Use\" and \"Copy\"?<\/h3><\/dt>\n<dd><p><strong>Use Selected<\/strong> creates a virtual attachment that serves images and videos through your WordPress server as a proxy \u2014 no files are stored locally. This keeps your WordPress uploads directory lean.<\/p>\n\n<p><strong>Copy Selected<\/strong> downloads the full original file into <code>wp-content\/uploads\/<\/code> as a standard WordPress attachment. Use this when you want a local copy independent of your Immich server.<\/p><\/dd>\n<dt id=\"does%20my%20immich%20server%20need%20to%20be%20publicly%20accessible%3F\"><h3>Does my Immich server need to be publicly accessible?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20different%20users%20have%20their%20own%20api%20keys%3F\"><h3>Can different users have their own API keys?<\/h3><\/dt>\n<dd><p>Yes. If no site-wide API key is set in <strong>Settings &gt; Immich<\/strong>, each user can add their own key on their <strong>Profile<\/strong> page. The proxy serves media using the key of the user who added the asset.<\/p><\/dd>\n<dt id=\"how%20does%20the%20proxy%20cache%20work%3F\"><h3>How does the proxy cache work?<\/h3><\/dt>\n<dd><p>When a proxied image or video is requested for the first time, the plugin fetches it from Immich and saves a copy in <code>wp-content\/cache\/immich\/<\/code>. All subsequent requests are served from the local cache without contacting your Immich server. To enable automatic cleanup, check <strong>Cache Cleanup<\/strong> in <strong>Settings &gt; Immich<\/strong> and set a lifetime in hours (default 24). When disabled, cached files are kept indefinitely.<\/p><\/dd>\n<dt id=\"does%20the%20lightbox%20work%20automatically%3F\"><h3>Does the lightbox work automatically?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Use photos and videos from your Immich server in WordPress without copying files, or import them into the media library.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291507"}],"author":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/donncha"}],"wp:attachment":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291507"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291507"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291507"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291507"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291507"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}