Private Audiobook Beta — installation and setup
Version 2026.10.12.001. Free WordPress plugin from Built Not Begged, developed by Matthew X Murphy. Release owner: Taylor Quinn. License: GPL-2.0-or-later; the complete license and readable runtime source are in the download.
What you need
- WordPress 6.5 or newer and PHP 8.1 or newer.
- HTTPS, PHP OpenSSL with AES-256-GCM, an InnoDB-capable WordPress database and writable WordPress upload storage.
- MP3 recordings you are authorized to share, and enough hosting storage for them.
The normal WordPress installation works independently. It needs no Ryzen server, Tailscale connection, Python service, paid plugin or external account. Recordings stored by this provider count toward your hosting storage. PHP and host upload limits still apply; the plugin defaults to a 256 MiB file limit, adjustable up to 512 MiB within the host's limits. Protected uploads are limited to 10 per administrator or service actor per hour.
Set up your listening room
- In WordPress, open Plugins → Add New Plugin → Upload Plugin, choose the versioned ZIP, install and activate Private Audiobook Beta.
- Open Audiobook Beta in the administrator menu. A normal new installation creates a listening page at
/audio-beta/. If a page already occupies that address, it is preserved. Create your own page with[taylor_audio_beta]when needed. The same shortcode can be used in an Elementor or WPBakery shortcode element. - Under Site appearance, choose Use this WordPress site. The player uses your public site name, site icon, font and a readable theme accent. A missing or unsupported icon uses neutral headphones. Listeners can choose Light, Dark or System mode. The Powered by BuiltNotBegged.com footer credit is enabled by default. You can hide it in the plugin settings; turning display off hides its span with the native hidden attribute and scoped CSS. The complete link remains in page HTML and plugin source.
- Under Add a book, enter a stable book ID, title and author. Under Upload a protected chapter, select that book, enter a stable chapter ID, title and ordering number, and upload its MP3. Repeat for each chapter.
- Under Create a tester invitation, enter the approved tester's name, choose their books and grant Listen and Send feedback. Grant Review other testers' feedback only to a reviewer who should see other people's reports. Invitations expire after 1–30 days. Supplying an approved email restricts registration to that address.
- Copy the private invitation and share it directly with that tester. The plugin does not send it by email. Keep invitation links out of public pages, screenshots and support requests.
MP3s bypass the public Media Library and are stored as encrypted chunks. The plugin inspects format, positive duration and the full file hash. This is not a full decoder or a narrator-quality check: listen to uploaded chapters before sharing invitations.
Returning testers and phone use
A tester accepts their eligible invitation and registers an email. No code or email is sent, and no WordPress account is created. On the same approved browser, entering that email can restore a 24-hour session and the saved chapter, paused position and speed while the original invitation remains eligible. Email alone does not authorize a new browser, device or installed app: keep the original invitation for those contexts. Expired or revoked access cannot be renewed just by returning.
On iPhone or iPad, open your author's listening room in Safari, choose Share → Add to Home Screen, and enable Open as Web App where available. Other browsers may offer an install option. Installation does not grant access. If the installed app asks for access, use the registered email and original invitation.
The app streams online. It caches only public install icons and an offline explanation, not the private library, reports or recordings. Background, lock-screen and Bluetooth playback vary by device and browser; check them on the actual device you will use.
Review issues and replace audio
The player pauses when a tester selects Report an issue at this moment. Reports can identify an audio issue, wrong voice, unwanted narration or missing sound effect, with the recording's exact time, version and hash. Suggestions do not edit the recording automatically.
Review reports in Audiobook Beta. The screen preserves every report and highlights repeated reports in five-second windows. Separate testers reporting the same problem remain separate evidence. You can mark a report open, acknowledged, resolved or dismissed.
Use Replace chapter audio to upload the corrected MP3 for that chapter. The new recording is verified before publication. Earlier feedback retains its original timestamp and recording identity. Eligible old managed audio is removed after replacement only when no current chapter uses it; incomplete cleanup remains available for safe retry. Successful uploads that never become a chapter consume storage until an administrator or integration retires their unused source through the API.
Optional integrations
Under Agent API keys, create one key per approved integration and select only the rights it needs. Copy the key when it appears; it is shown once and only its hash is retained. Keys are separate from tester invitations. See the accompanying public API guide for upload, chapter, invitation, progress, report and notification contracts.
FluentCRM is optional and disabled by default. If you enable it, first create a dedicated beta tag in FluentCRM and enter its exact existing ID and title in the plugin. This organizes invitation-authorized testers; it does not create access rights, subscribe them to marketing, create an automation or send email.
Issue events are queued for a scoped notification integration. The free plugin provides administrator review and the notification API; an external email, messaging or push delivery service is not installed automatically.
Backup, upgrade and recovery
Back up the WordPress database, the plugin's encryption-key option and its encrypted uploads together as private data. Losing the matching key prevents playback even if the recording chunks remain. Protect backups as carefully as the live site.
Retain the current plugin ZIP before an upgrade and test the new version in your WordPress environment. Deactivation preserves grants, recordings and feedback. Restore selected code only after considering newer activity; do not overwrite current reports or progress with a stale full database backup. An older release predating protected WordPress storage cannot read that provider.
Existing explicitly configured external streaming installations keep their current provider and access. They are not automatically migrated. Those recordings still require their selected external service; that optional configuration does not affect an ordinary independent installation.
For a bug report, include the plugin, WordPress, PHP and browser versions, the steps taken, expected and actual behavior, and sanitized screenshots. Never include API keys, private invitations, tester emails, recordings, database exports or server credentials in a public report.
Public samples, private access and player colors
The update leaves existing audio private. In Audiobook Beta, enable public listening when ready, then choose Public or Private for each MP3. Public tracks play for visitors. Private tracks show a locked teaser and offer an email access request. Keep manual approval or explicitly choose automatic approval (a lead gate, not verified email ownership), with 1–30-day access. The protected administrator request list allows approval, denial and revocation. Each approval covers only selected tracks.
“Send me coupons and updates” is optional and unchecked. Its consent record is separate from listening approval and the optional nonmarketing CRM beta group. No campaign or approval email is sent automatically. Honor existing unsubscribe and other suppression states when using your own marketing integration.
Under Site appearance, enable custom colors and choose accent/highlight plus background/text pairs for Light and Dark. Body text must stay readable; invalid hex or low-contrast pairs are rejected. Turning custom colors off restores the site preset. The visitor can still choose Light, Dark or System.
Separate public Music and private Books
Version 2026.10.12.001. Developed by Matthew X Murphy, distributed by Built Not Begged. Release owner: Taylor Quinn. GPL-2.0-or-later.
The same player can present a public music library and an invitation-only audiobook room. Books and albums use stable book IDs in one catalog; use explicit selections to keep each page's library separate.
Public music page
Create albums/books and upload the MP3s through Audiobook Beta. Choose Public for the tracks you intend to share. Enable the public-listening master only when ready. A shortcode never enables it or changes grants.
Place this shortcode on the public page, replacing the example IDs with your real album IDs:
[taylor_audio_beta view="public" books="album-one,album-two"]
It shows only currently available public tracks from those IDs. It uses a public principal even when an invited tester is signed in on the same browser. It omits private chapter titles, private feedback and approval controls. Its playback position and speed are saved locally in that browser, separately from tester progress. Clearing browser storage removes this public resume position.
An explicit valid public page is indexable. Audio and API responses keep no-store/noindex protections. Public music does not register the private audiobook PWA; its existing scope stays unchanged.
Private book room
For a separate private room, select its actual book ID explicitly:
[taylor_audio_beta view="private" books="my-private-book"]
This view requires the original grants even when the public-listening master is enabled. It retains invitation access, tester identity, server progress and feedback. Do not rename its canonical page or PWA scope merely to change navigation text.
Set the optional book field unlisted to true through the scoped Catalog API when its title and locked chapter teasers should be hidden from unauthorized library listings. Actual granted listeners still see it. This is a listing control; it does not grant access or change track visibility. Set it before enabling public listening if the private book's metadata must stay hidden from the default library too.
Existing installations and API
The existing [taylor_audio_beta] shortcode keeps the historical mixed public/private behavior. Missing unlisted remains false, so this release does not silently hide existing teaser listings. No migration, grant reset or automatic public enablement occurs.
Explicit view requests use view=public or view=private and a comma-separated books allowlist on library, session, progress, cover and stream reads. A public selection requires at least one valid book ID. Invalid or unauthorized selections fail closed. Public progress reads return null and public writes are denied; the player uses local resume storage. A legacy view with selected books applies that filter; legacy with no selection keeps its existing request URLs.
WordPress-native recordings use encrypted host storage independently of an external service. Existing explicitly configured external providers remain unchanged and need their own service for those older recordings. Backup the WordPress encryption key and ciphertext together as private data. Free release publication installs nothing on another site and does not change its automatic-update settings.