Title: Private Media
Author: Alexandre Froger
Published: <strong>September 1, 2018</strong>
Last modified: January 22, 2019

---

Search plugins

![](https://ps.w.org/private-media/assets/banner-772x250.png?rev=1949121)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/private-media/assets/icon.svg?rev=1934410)

# Private Media

 By [Alexandre Froger](https://profiles.wordpress.org/frogerme/)

[Download](https://downloads.wordpress.org/plugin/private-media.zip)

 * [Details](https://wordpress.org/plugins/private-media/#description)
 * [Reviews](https://wordpress.org/plugins/private-media/#reviews)
 *  [Installation](https://wordpress.org/plugins/private-media/#installation)
 * [Development](https://wordpress.org/plugins/private-media/#developers)

 [Support](https://wordpress.org/support/plugin/private-media/)

## Description

Ever wanted to make your media truely private? Make sure images, videos and other
files are only accessible to chosen roles, or cannot be hotlinked, with permissions
specifically set per item.

This plugin adds the following major features to WordPress:

 * **Media Privacy:** Lock access to items in the Media Library by preventing hotlinks
   only or by limiting access to files to selected user roles.
 * **User-friendly forbidden handler:** Images set to private do not break on the
   frontend. Instead, they are replaced by a simple access denied SVG picture – 
   the forbidden handler can be replaced using the filter hooks `pvtmed_forbidden_response_content`(`
   apply_filters( 'pvtmed_forbidden_response_content', $forbidden_response_content,
   $file );`) and `pvtmed_forbidden_mimetype` (`apply_filters( 'pvtmed_forbidden_mimetype','
   image/svg+xml' );`).
 * **Customizable for more granularity:** Restricted media will be checked for autorization–
   plugin developers can hook into the `pvtmed_is_authorized` filter (`apply_filters('
   pvtmed_is_authorized', $authorized, $attachment_id );`) to apply more complex
   conditions for authorization.
 * **Optimized private media delivery:** Files with access restriction are served
   using streams without loading the file entirely in memory before delivery, and
   WordPress files are loaded as lightly as possible for an optimised server memory
   usage.
 * **Fallbacks:** Restricted files are kept in an alternate `wp-content/pvtmed-uploads`
   folder (or equivalent if `WP_CONTENT_DIR` is not the default) ; fallbacks are
   in place to make sure:
    - moving a media to private does not break previously embedded media (javascript
      dynamic fallback with notice on post edit screen – Classic Editor only).
    - deactivating the plugin does not break previously embedded media (database
      update).
    - deleting the plugin does not break previously embedded media (database update).

A [Must Use Plugin](https://codex.wordpress.org/Must_Use_Plugins) `pvtmed-endpoint-
optimizer.php` is installed automatically to make sure WordPress is loaded as lightly
as possible when requesting restricted media items. Developers can safely edit it
to enable their plugin to execute during such request if necessary.

The media privacy policy is set per media item – therefore, this plugin is not a
replacement for general image hotlink prevention plugins, but is ideal for anyone
looking for preventing direct links to files depending on specific conditions.

## Installation

This section describes how to install the plugin and get it working.

 1. Upload the plugin files to the `/wp-content/plugins/private-media` directory, or
    install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress
 3. Edit Media Privacy Settings on media items in the Media Library

## Reviews

![](https://secure.gravatar.com/avatar/1ae76ec3e21172f261d54d237d46ba7412390dfc0c25e00744d0b5af3f00f983?
s=60&d=retro&r=g)

### 󠀁[zeer goed](https://wordpress.org/support/topic/zeer-goed-2/)󠁿

 [mar tim](https://profiles.wordpress.org/mar-tim/) November 20, 2018 1 reply

goed om je media te beschermen als je ook gebruik maakt van een memberschip plugin,
doet precies wat het doen moet

 [ Read all 1 review ](https://wordpress.org/support/plugin/private-media/reviews/)

## Contributors & Developers

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

Contributors

 *   [ Alexandre Froger ](https://profiles.wordpress.org/frogerme/)

[Translate “Private Media” into your language.](https://translate.wordpress.org/projects/wp-plugins/private-media)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/private-media/), check
out the [SVN repository](https://plugins.svn.wordpress.org/private-media/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/private-media/) 
by [RSS](https://plugins.trac.wordpress.org/log/private-media/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2

 * Add `pvtmed_private_upload_url` and `pvtmed_htaccess_rules` filters (see this
   support request for details)

#### 1.1

 * Bump version – supported by WordPress 5.0 (post edit screen fallbacks only in
   Classic Editor)

#### 1.0

 * First version

## Meta

 *  Version **1.2**
 *  Last updated **7 years ago**
 *  Active installations **40+**
 *  WordPress version ** 4.9.8 or higher **
 *  Tested up to **4.9.29**
 *  PHP version ** 7.0 or higher **
 * Tags
 * [media](https://wordpress.org/plugins/tags/media/)[private](https://wordpress.org/plugins/tags/private/)
   [uploads](https://wordpress.org/plugins/tags/uploads/)
 *  [Advanced View](https://wordpress.org/plugins/private-media/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/private-media/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/private-media/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/private-media/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/private-media/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/private-media/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/private-media/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/private-media/reviews/)

## Contributors

 *   [ Alexandre Froger ](https://profiles.wordpress.org/frogerme/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/private-media/)