Title: BitSplit Media Delivery
Author: frolpaxa
Published: <strong>අගෝස්තු 5, 2026</strong>
Last modified: අගෝස්තු 31, 2026

---

Search plugins

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

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

# BitSplit Media Delivery

 By [frolpaxa](https://profiles.wordpress.org/frolpaxa/)

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

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

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

## Description

BitSplit changes how WordPress delivers public media. Instead of keeping a
 complete
file at a stable public URL, it stores the original and generated sizes as incomplete
blocks and reconstructs each file in the visitor’s browser through a short-lived
session.

It is a media-protection layer for photography portfolios, publishers, member
 sites,
and other WordPress sites where making direct downloads and bulk collection harder
is valuable.

#### Why use BitSplit?

 * **No stable ready-to-download media URL** – public paths serve incomplete
    blocks
   rather than finished files.
 * **Images, video, and audio** – every supported media type is handled by the
    
   same delivery flow.
 * **Normal WordPress workflow** – use the Media Library, Gutenberg Image, Gallery,
   
   Video and Audio blocks, featured images, and responsive `srcset` markup as usual.
 * **Two access modes** – keep media public while adding download friction, or
    
   require visitors to sign in before reconstruction.
 * **No external service** – reconstruction runs on your WordPress site and in the
   
   visitor’s browser, with no SaaS account, license key, quota, or payment.
 * **Backup and recovery tools** – export a recovery manifest before site changes
   
   and restore attachment mappings when needed.

BitSplit is **not encryption, DRM, or a promise that downloading is impossible**.

A determined viewer can inspect the browser flow, automate reconstruction, or capture
rendered content. Use it when raising the cost of casual downloading is valuable;
use established encryption and access control when confidentiality is required.

#### Included functionality

The plugin protects any number of image, video, and audio attachments.
 Every feature
is free: there is no paid tier, license key, trial, add-on, or usage quota, and 
the plugin contacts no external service.

It includes public or logged-in-only access, Gutenberg image, gallery, video and

audio support, featured-image and `srcset` handling, and backup/recovery tools.

#### Delivery flow

 1. WordPress stores each file as an incomplete BitSplit block, with reconstruction
    
    data stored separately in attachment metadata.
 2. Front-end markup receives a placeholder instead of the original media URL.
 3. The browser establishes an ephemeral P-256 ECDH session.
 4. Reconstruction data is transported with HKDF and AES-256-GCM.
 5. Block bytes require a short-lived, session-bound signed token.
 6. The browser reconstructs the file into a temporary Blob URL. Video and audio
     are
    streamed through a Service Worker so playback can seek.

The transport encryption protects reconstruction data in transit; the BitSplit
 
block itself is not encrypted and contains most source bytes.

#### Access modes

 * **Public visitors** – public media remains viewable; BitSplit adds download and
   
   scraping friction.
 * **Logged-in users only** – anonymous visitors cannot obtain reconstruction data
   
   or block bytes.

#### WordPress coverage

BitSplit handles normal attachment images, Gutenberg Image, Gallery, Video and
 
Audio blocks, featured images, `srcset`, classic content containing `wp-image-ID`,
and the `[bitsplit id="123"]` shortcode.

#### Storage

Incomplete blocks are stored in a plugin-owned directory resolved through
 wp_upload_dir(),
while reconstruction data stays in WordPress post metadata. The plugin does not 
write web-server configuration files or require users to edit server configuration.

#### Requirements

 * PHP 7.4 or newer
 * GMP extension
 * OpenSSL with ECDH support

## Screenshots

[⌊Enable split media delivery and choose whether public or logged-in visitors may
reconstruct media.⌉⌊Enable split media delivery and choose whether public or logged-
in visitors may reconstruct media.⌉[

Enable split media delivery and choose whether public or logged-in visitors may 
reconstruct media.

[⌊See how BitSplit replaces a stable media file URL with incomplete storage and 
on-demand browser reconstruction.⌉⌊See how BitSplit replaces a stable media file
URL with incomplete storage and on-demand browser reconstruction.⌉[

See how BitSplit replaces a stable media file URL with incomplete storage and on-
demand browser reconstruction.

## Installation

 1. Upload the `bitsplit-media-delivery` folder to `/wp-content/plugins/`.
 2. Activate **BitSplit Media Delivery**.
 3. Open **Tools -> BitSplit**.
 4. Choose an access mode.
 5. Enable split media delivery.
 6. Export the recovery manifest and store it safely.

## FAQ

### Does BitSplit make downloading impossible?

No. Public content must reach the viewer’s browser. BitSplit removes the simple

ready-file URL and makes downloaders reproduce the reconstruction protocol.

### Is BitSplit encryption?

No. The reconstruction-data transport uses standard cryptography, but the stored

BitSplit block is an incomplete, unencrypted representation of the source.

### Is any functionality locked behind payment?

No. The plugin is entirely free: every feature and all executable code ship in this

package, with no paid tier, license, trial, or quota.

### What happens when I deactivate or delete the plugin?

The plugin attempts to restore protected attachments to their normal public
 paths
before removing its metadata. Keep a current exported manifest and filesystem backup
before bulk operations.

### Does it need Python?

No. The codec is implemented in PHP with GMP and in browser JavaScript.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ frolpaxa ](https://profiles.wordpress.org/frolpaxa/)

[Translate “BitSplit Media Delivery” into your language.](https://translate.wordpress.org/projects/wp-plugins/bitsplit-media-delivery)

### Interested in development?

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

## Changelog

#### 1.3.0

 * Make the plugin fully free: image, video, and audio delivery ship in one package.
 * Remove the licensing runtime and the separate paid package.

#### 1.2.4

 * Make the directory package a self-contained image plugin with no locked functionality.
 * Move separately distributed media-type integrations out of the directory package.
 * Store images only as keyless blocks and do not write web-server configuration.

#### 1.2.3

 * Store images as keyless blocks and migrate records created by earlier versions.

#### 1.2.2

 * Improve activation and deactivation recovery.

#### 1.2.1

 * Preserve protected image settings during updates.

#### 1.2.0

 * Add unlimited image attachment protection.

#### 1.1.0

 * Add public and logged-in-only access policies.
 * Add short-lived session-bound tokens and same-origin checks.
 * Add Gutenberg Image/Gallery, featured-image, classic-content, and srcset coverage.
 * Stream block creation for large image files.

#### 1.0.0

 * Initial image delivery prototype with ECDH key transport, browser reconstruction,
   
   and recovery manifests.

## Meta

 *  Version **1.3.0**
 *  Last updated **11 පැය ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/bitsplit-media-delivery/)
 * Tags
 * [hotlinking](https://si.wordpress.org/plugins/tags/hotlinking/)[images](https://si.wordpress.org/plugins/tags/images/)
   [media protection](https://si.wordpress.org/plugins/tags/media-protection/)[scraping](https://si.wordpress.org/plugins/tags/scraping/)
   [video](https://si.wordpress.org/plugins/tags/video/)
 *  [Advanced View](https://si.wordpress.org/plugins/bitsplit-media-delivery/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ frolpaxa ](https://profiles.wordpress.org/frolpaxa/)

## Support

Got something to say? Need help?

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