Title: Neutrope Protected Audio Player
Author: Neutrope Inc.
Published: <strong>September 13, 2026</strong>
Last modified: September 13, 2026

---

Search plugins

![](https://ps.w.org/neutrope-protected-audio-player/assets/banner-772x250.png?rev
=3693657)

![](https://ps.w.org/neutrope-protected-audio-player/assets/icon-256x256.png?rev
=3693657)

# Neutrope Protected Audio Player

 By [Neutrope Inc.](https://profiles.wordpress.org/neutropeinc/)

[Download](https://downloads.wordpress.org/plugin/neutrope-protected-audio-player.0.1.2.zip)

 * [Details](https://wordpress.org/plugins/neutrope-protected-audio-player/#description)
 * [Reviews](https://wordpress.org/plugins/neutrope-protected-audio-player/#reviews)
 *  [Installation](https://wordpress.org/plugins/neutrope-protected-audio-player/#installation)
 * [Development](https://wordpress.org/plugins/neutrope-protected-audio-player/#developers)

 [Support](https://wordpress.org/support/plugin/neutrope-protected-audio-player/)

## Description

Neutrope Protected Audio Player lets you publish MP3 audio on your WordPress site
without exposing the real file URL in your page source. Files are stored in a protected
uploads folder that denies direct access, and the player streams audio through a
short-lived, signed playback URL instead of a permanent, guessable link.

**This is not DRM.** It makes casual downloading harder, but it cannot provide DRM
or perfect copy protection. If audio can be played in a browser, it can potentially
be captured by determined users. The goal is simply to stop ordinary visitors from
finding and saving the MP3 with a right-click or a quick look at the page source.

#### What it does

 * Adds a “Protected Audio” item type where you upload an MP3 and get a shortcode.
 * Stores uploads in `wp-content/uploads/neutrope-protected-audio-player/`, protected
   by an `.htaccess` file.
 * Serves audio through a signed URL such as `/npap-stream/123/.../.../` that expires
   after 10 minutes.
 * Outputs an `<audio>` player with `controlslist="nodownload"` so the browser’s
   download button is hidden.
 * Keeps an anonymous play count per item.

### What this plugin can and cannot do

This is not DRM.
 This plugin makes casual downloading harder, but cannot provide
DRM or perfect copy protection. If users can play audio in a browser, advanced users
may still capture it. No external services. No tracking. No cookies. No personal
data stored by default. Apache/LiteSpeed uses .htaccess protection. Nginx may require
additional server configuration.

#### Privacy

 * No external services, CDNs, scripts or APIs are used. Everything runs on your
   own server.
 * No tracking.
 * No cookies are set.
 * No personal data is stored by default. The plugin records only an aggregate play
   count per item. It never stores IP addresses and never sets cookies.

#### Server requirements

 * On Apache and LiteSpeed, direct access to the protected folder is blocked automatically
   with the `.htaccess` file the plugin creates.
 * On Nginx, `.htaccess` files are ignored. You will need to add server configuration
   to deny direct access to the protected uploads folder. The admin screen shows
   a reminder when it detects Nginx.
 * On some Nginx or reverse proxy configurations, byte-range responses may be buffered
   or altered by the server. Audio playback can still work, but seeking behavior
   may depend on server configuration.
 * Pretty permalinks are recommended. When they are disabled, the plugin falls back
   to a query-string playback URL.

## Screenshots

[⌊Manage protected audio files from the WordPress admin.⌉⌊Manage protected audio
files from the WordPress admin.⌉[

Manage protected audio files from the WordPress admin.

[⌊Upload an MP3 file and copy the shortcode from the audio edit screen.⌉⌊Upload 
an MP3 file and copy the shortcode from the audio edit screen.⌉[

Upload an MP3 file and copy the shortcode from the audio edit screen.

[⌊Display a simple audio player on the front end with a shortcode.⌉⌊Display a simple
audio player on the front end with a shortcode.⌉[

Display a simple audio player on the front end with a shortcode.

[⌊Choose whether plugin data should be removed on uninstall.⌉⌊Choose whether plugin
data should be removed on uninstall.⌉[

Choose whether plugin data should be removed on uninstall.

[⌊Clear notes explain that this is not DRM and that server configuration may affect
protection.⌉⌊Clear notes explain that this is not DRM and that server configuration
may affect protection.⌉[

Clear notes explain that this is not DRM and that server configuration may affect
protection.

## Installation

 1. Upload the `neutrope-protected-audio-player` folder to the `/wp-content/plugins/`
    directory, or install the plugin through the Plugins screen in WordPress.
 2. Activate the plugin through the “Plugins” screen in WordPress. Activation creates
    the protected uploads folder.
 3. Open the new “Protected Audio” menu, add an item, upload an MP3, and publish it.
 4. Copy the shortcode shown on the edit screen, for example `[npap_audio id="123"]`,
    and paste it into any post or page.

## FAQ

### Does this stop people from downloading my audio?

No tool can fully prevent that. This plugin removes the easy ways to grab a file(
visible URLs, the browser download button, predictable links) so casual users cannot
simply save it. Anyone able to play the audio could still capture it with the right
tools.

### Is this DRM?

No. It is an obfuscation and access-control layer, not digital rights management.

### Which file types are supported?

MP3 only in this version. Uploads are checked by extension and by their real MIME
type (`audio/mpeg`).

### I use Nginx. Is the folder still protected?

Nginx ignores `.htaccess`, so you must add a server rule that denies direct access
to `wp-content/uploads/neutrope-protected-audio-player/`. Until you do, the folder
may be reachable directly.

### Does the plugin delete my files when I uninstall it?

No. By default nothing is deleted on uninstall. Data is only removed when the `protected_audio_player_delete_data`
option is set to a truthy value, which you can enable under Settings → Neutrope 
Protected Audio Player.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Neutrope Protected Audio Player” is open source software. The following people 
have contributed to this plugin.

Contributors

 *   [ Neutrope Inc. ](https://profiles.wordpress.org/neutropeinc/)

[Translate “Neutrope Protected Audio Player” into your language.](https://translate.wordpress.org/projects/wp-plugins/neutrope-protected-audio-player)

### Interested in development?

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

## Changelog

#### 0.1.2

 * Polished the admin audio edit screen, settings page, and front-end player styling.
 * Improved the shortcode display (with a copy button) and explanatory notices without
   changing playback behavior.
 * Added Shortcode, File and Plays columns to the Protected Audio list screen.

#### 0.1.1

 * Added clearly documented `phpcs:ignore` annotations for the byte-range streaming
   file handle (fopen/fread/fclose).
 * Removed `suppress_filters` from the uninstall cleanup query.
 * Removed the explicit `load_plugin_textdomain()` call; WordPress loads the translations
   automatically.
 * Hardened the streaming response headers and added `X-Accel-Buffering: no` to 
   reduce reverse-proxy buffering.
 * Documented reverse-proxy/Nginx byte-range behavior in the readme and the admin
   screen.
 * Updated “Tested up to”.

#### 0.1.0

 * Initial release.
 * Protected Audio post type with MP3 upload and per-item shortcode.
 * Protected uploads folder with `.htaccess` and `index.html`.
 * Short-lived, HMAC-signed streaming endpoint with HTTP Range support.
 * Anonymous play counter.

## Meta

 *  Version **0.1.2**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [audio](https://wordpress.org/plugins/tags/audio/)[audio player](https://wordpress.org/plugins/tags/audio-player/)
   [download protection](https://wordpress.org/plugins/tags/download-protection/)
   [mp3](https://wordpress.org/plugins/tags/mp3/)[protected](https://wordpress.org/plugins/tags/protected/)
 *  [Advanced View](https://wordpress.org/plugins/neutrope-protected-audio-player/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/neutrope-protected-audio-player/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/neutrope-protected-audio-player/reviews/)

## Contributors

 *   [ Neutrope Inc. ](https://profiles.wordpress.org/neutropeinc/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/neutrope-protected-audio-player/)