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.