

Organize WordPress uploads with unlimited virtual media folders, nested subfolders, colours, and drag and drop.
Stop scrolling through thousands of WordPress uploads. MediaPilot AI adds drag-and-drop folders to the native Media Library, then helps you find unused files, remove duplicates safely, replace attachments, optimize images and understand where your storage goes.
Already using FileBird, Real Media Library, Wicked Folders or HappyFiles? Import your existing folders and assignments without changing the other plugin’s data.
Folders are virtual by default, so organizing an attachment does not move the file on disk or change its URL. An opt-in Real Filesystem Mode moves files into matching directories instead.
All core media management runs on your own server — no account, no quota, no telemetry. The three optional integrations (AI, Google Drive, CDN) stay off until you configure them.
Create unlimited folders and subfolders and move files by drag and drop, singly or in bulk. New uploads land in the folder you have open.
MediaPilot indexes where each attachment is used: post content, featured images, shortcodes (including [gallery], WPBakery and Divi), every post meta value, widgets, term and user meta, site options, the Site Icon and the Custom Logo. Because it reads all post meta rather than a fixed list of keys, references stored by Elementor, Beaver Builder, Bricks, ACF and WooCommerce galleries are picked up too.
Indexing starts on activation and runs in background batches. Cleanup stays unavailable until the index reports ready, so no decision is made from a partial scan.
The workflow, in order:
No reference scanner can be exhaustive. A URL hard-coded in a theme template, built at runtime by custom PHP, or held only in an external system cannot be detected by any tool that reads the database. Review what is proposed, keep a current backup, and treat cleanup as assisted judgement rather than an authority.
The duplicate image finder uses the same restorable workflow, with two cancellable background scans: exact, by MD5 hash, and visually similar, comparing a 64-bit perceptual signature within an adjustable distance (this needs the GD extension). Configure the scan scope, batch size and image filters before starting. Images already in use are preferred as the primary copy, and you can choose another. Supported references are reassigned to the selected primary before duplicates move to Trash; files with unresolved references are retained.
Replace an image, PDF, video or any other attachment and the attachment ID always stays the same. Keep the same filename and the public URL is unchanged too — nothing anywhere needs updating, which is the safest way.
Change the filename and the URL necessarily changes with it. MediaPilot then rewrites the references it can reach: post content and post meta in your database. It cannot rewrite a URL that lives outside the database — hard-coded in a theme or plugin file, built at runtime by code, cached by a CDN, or held in an external system — so on a site with hard-coded media URLs, keep the filename.
Thumbnails are regenerated and attachment metadata preserved either way. Identical files are caught by SHA-256 and rejected rather than written twice. The previous file is archived under uploads/mediapilot-versions/ so you can roll back, and old versions can be pruned to a keep limit.
Local optimization on your own server, with no monthly allowance.
loading="lazy" to content images that lack itTotal storage, and storage by folder and file type. Upload activity over time. Most-used and never-used attachments. Insert and download counts, recorded in your own database from the admin only — no front-end tracker, no visitor tracking. CSV export of the data.
For metadata and accessibility work: a Smart View listing every image with no alt text, bulk editing of alt text, title, caption and description across many attachments, and media tags backed by the same local index that powers the search.
Every feature above works without AI. The assistant stays dormant — no outbound request of any kind — until an administrator switches it on, records consent, and saves their own OpenAI or Google Gemini API key. There is no MediaPilot account and no credit system.
It drafts alt text, a title, a caption, a description and tags for one image at a time. You choose the fields, and the plugin shows you what will leave your server first: provider, model, whether the full image or a smaller copy is sent, and any context you opted in to.
Nothing is saved automatically. Suggestions arrive in editable fields; you accept, edit, regenerate or discard each one, and only what you approve is written. Existing metadata is never replaced without confirmation, and alt text that looks too long, too vague, keyword-stuffed or identical to the caption is flagged. Requests are rate-limited; the provider bills you directly.
A generated description is a draft, not an accessibility guarantee. A model describes what it sees; only you know what the image does on the page.
Import and export as CSV, build folder galleries and document libraries with blocks, shortcodes and page-builder modules, and drive it all from WP-CLI or the REST API. The FAQ covers this in detail.
Nothing is sent to BrainStudioz: no account, no licence check, no usage reporting, no telemetry. The AI assistant contacts OpenAI or Google Gemini, Drive sync contacts Google, and CDN rewriting points visitors at your CDN — each only after you configure it. External services below states what each receives and when. Uninstalling removes the plugin’s tables, options, post meta, scheduled events and capabilities, on every site of a multisite network.
MediaPilot AI Pro is a separate paid add-on requiring this plugin; everything above works without Pro. Pro adds cloud storage beyond Google Drive, offloading, backup and migration, cloud optimization, storage cost analytics, a brandable client portal, and approval and audit workflows. Full comparison in the FAQ; details at portal.brainstudioz.com.
MediaPilot AI Free processes every core feature locally and sends nothing to BrainStudioz. Three optional integrations can contact a third party, and all three are inert until an administrator configures them — with nothing saved, no request is made at all.
Used only by the optional AI Metadata Assistant. Disabled until an administrator configures it: an administrator must enter their own OpenAI API key, enable the assistant, and accept the consent notice before any image can be sent.
What is sent: the image (by default a smaller generated copy, not the original), the instruction text built from your settings, and — only if you switch these options on — the file’s existing title, caption, description and alt text, and the title of the post it is attached to. Your API key travels as an authorization header.
When: only when a logged-in user with permission to edit that file presses Generate. Never on upload, never in the background, never on a schedule. Test connection also contacts the provider to verify the key, and sends none of your media.
Provided by OpenAI, L.L.C. Requests go to https://api.openai.com.
Terms of use: https://openai.com/policies/terms-of-use — Privacy policy: https://openai.com/policies/privacy-policy
Used only by the optional AI Metadata Assistant, on the same terms as OpenAI above. Disabled until an administrator configures it: no key saved means no request is ever made, and the same steps apply — enter a key, enable the assistant, accept the consent notice.
What is sent: the same data described for OpenAI, with your API key as a request header. When: identical to OpenAI — only on an explicit, per-image request by a permitted user.
Provided by Google LLC. Requests go to https://generativelanguage.googleapis.com.
Terms of service: https://ai.google.dev/gemini-api/terms — Privacy policy: https://policies.google.com/privacy
Whichever provider you choose bills you directly. Generated text can be inaccurate, so nothing is saved automatically — every suggestion is shown for review first.
Used only by the optional Drive backup and synchronisation feature, and only after an administrator has created their own Google OAuth client, saved it, and connected an account.
What is sent: the media files you choose to back up or synchronise, with their filenames, MIME types and sizes; folder names when mirroring is enabled; and your OAuth credentials, to obtain and refresh access tokens.
What is not sent: your database, users, passwords, posts, settings, or any site data beyond those files and their attachment mapping.
When: during transfers you start — a synced upload, a bulk sync, a restore — and when refreshing an expired token. Never on a schedule you have not configured.
Access requested: the drive.file scope only, so MediaPilot sees just the files and folders it creates, not the rest of your Drive. Your site connects to Google directly with your own OAuth client — no relay, no proxy.
Provided by Google LLC. Requests go to https://accounts.google.com, https://oauth2.googleapis.com and https://www.googleapis.com.
Off by default. If you enter a CDN base URL in the optimization settings, MediaPilot rewrites eligible media URLs so visitors’ browsers request those files from your CDN. The rewrite happens locally: the plugin sends no data to the CDN and uploads nothing to it. That provider’s own terms and privacy policy govern the requests your visitors’ browsers make.