Documentation
Everything you need to publish, gate, and sell your audiobooks and audio courses on Storia.
Getting started
Storia is passwordless. Open the publisher console, enter your email, and click the magic link we send you — that signs you in and creates your account in one step. Sessions last 60 days per device. The first time, you'll accept the Terms of Service before you can publish.
Creating & publishing a title
- Create a title from the dashboard (audiobook or audio course).
- Upload files — audio up to
10 GBeach. Large files upload in parts straight to storage, so nothing stalls. We extract duration, chapters, cover art, and tags (author, narrator, description, year, genre, series) and use them to fill any details you left blank. You can also attach an ebook (EPUB/PDF/MOBI). - Or import a package — have a W3C Audiobooks
.lpffile (the standard audiobook distribution format)? Import it and Storia unpacks the manifest to create every chapter, in order, plus the cover, title, author, narrator, and language in one step. - Activate hosting — a flat
$25for10 yearsper title (this is the only fee Storia charges you). - Publish. Your title goes live at
/p/your-slugwith its own installable, offline player and a social-friendly link preview.
moov atom at the
front). Storia relocates it for you in the background; until then the file is download-only.publication.json (the W3C Audiobooks / LPF manifest)
is rewritten to match. It's your book — fix a typo, swap a bad take, add a bonus chapter.Preview before you publish. While you're signed in, you can open your own title's
player at /p/<slug> and play everything — even an unpublished draft or a gated
title — without a device token or purchase. Only you (the owner) see it; everyone else still
needs it published and, for gated titles, an access link.
Free sample (optional). Each title can carry a short audio sample that plays on its paywall before purchase. We try to extract one automatically from your first file during upload; you can also upload or replace it from the console, or remove it. The sample is served openly (even for a gated title), so listeners can try before they buy.
Get discovered (optional). Tick "List in the public catalogue" on a published title and it appears on Discover, where listeners who like the Storia experience can find more content. It's off by default — your title stays unlisted until you opt in.
Public vs. gated access
Each title is either public (anyone with the link can listen) or gated (a listener needs an access link). Gated titles show a paywall page — deliberately not a PWA, so a browser never offers to install an app behind a paywall — with your cover, description, a buy option, and a contact email for lost-access recovery.
Selling access with your own processor
Connect your own payment account so buyers pay you directly — no funds pass through Storia, and there's no revenue share. On a confirmed payment we mint a single-use access link and deliver it to the buyer.
Link mode (recommended — no API key)
- Create a hosted payment link/product in your processor (Polar, Stripe, Square, Lemon Squeezy, or Paddle).
- Add the webhook URL shown in the console to your processor and paste its signing secret back into Storia.
- Paste your payment link and set a price. That's it — buyers go to your checkout and get their access link by email after paying.
Instant unlock (optional). Set your payment link's success / redirect URL to the claim URL shown in the console. Most processors (Polar, Stripe, Lemon Squeezy, Paddle, Square) append their order/checkout id when they send the buyer back, and Storia uses it to unlock the device immediately — no need to open the email. If a processor doesn't redirect, the emailed link still works.
API mode (seamless redirect)
Provide your processor's API key and Storia creates each checkout itself, so buyers are redirected straight back into the player after paying. PayPal uses this mode.
| Processor | Link mode | You provide |
|---|---|---|
| Polar, Stripe, Square, Lemon Squeezy, Paddle | Yes (default) | Payment link + webhook secret |
| PayPal | No (API mode) | Client ID, secret, webhook ID |
Combined "choose your edition" pages (optional)
From the console you can group several of your titles into a collection — one
shareable page at /c/your-slug that lets a buyer choose between them. Each title
shows its own free sample and links to its own separate checkout, so this is ideal for variants
(different narrators, languages, or editions) without merging them into one publication. Your
titles stay completely independent; only published ones appear on the page.
Sharing & device tokens
Access to a gated title is a device token (stored on the listener's device). You can mint single-use share links yourself, and optionally give a recipient a re-share budget so they can pass access on — the budget shrinks as it's delegated, so it can't run away. If a listener runs out of devices they can transfer one to free a slot. Revoke any token anytime from the console.
Where a title can be heard
Audio rights are usually territorial, so each title can be limited to the countries you hold rights in — or made available everywhere except a few. Set it under Where it can be heard in the console: choose the restriction, pick the countries, save.
Listeners outside the allowed set get a short page explaining that the publisher hasn't made the title available in their region (with your contact email, if you've set one) rather than a dead end or a "not found". The restriction covers the player, the audio itself, the ebook and the paywall — there's no point selling access we won't deliver. You, as the owner, can always reach your own title from anywhere, so you can check it while travelling.
Location comes from the network edge, and listeners whose country can't be determined are let through rather than locked out. Treat it as a good-faith boundary that satisfies a rights obligation, not as a lock: anyone using a VPN can route around it.
What listeners get
- An installable, offline player — download once, listen anywhere, no account.
- Resume across devices — optional cloud progress sync within their access tree.
- A built-in ebook reader — add the companion EPUB and listeners can read it in-app (table of contents, font size, saved position). If the EPUB includes Media Overlays (EPUB 3 read-along, the format Apple Books uses — a SMIL track that syncs text to embedded audio), the reader highlights each line as it's narrated.
- Switch between listening and reading — the reader remembers which mode they were last in and reopens there. Read-along stays exactly in sync; for plain listening↔reading, switching offers an estimated, opt-in jump to the matching chapter in whichever direction they switched (matched by chapter name, proportional fallback).
- A free sample — for gated titles, hear a short preview on the paywall before buying.
- Extras & reviews — download the accompanying ebook and leave a rating.
Read-along sync file
Read-along ("word sync") lines your ebook's text up with the narration, so the reader highlights each phrase as it's spoken. Storia gets that alignment in one of three ways, depending on what you upload:
- EPUB with Media Overlays — we generate the sync file for you from the book's SMIL overlays. Nothing to do.
- LPF package — the sync file travels inside the package as a resource.
- M4B (or plain audio files) — an M4B carries chapter marks but no word-level timing, so there's nothing to derive. Upload a sync file yourself if you have one.
The format is plain JSON. Times are in seconds, relative to the start of the
track they reference — not to the whole book — and track is a
1-based position in the reading order:
{
"type": "storia-sync",
"version": 1,
"sections": [
{
"href": "OEBPS/ch01.xhtml",
"track": 1,
"cues": [
{ "id": "w1", "start": 0, "end": 0.42 },
{ "id": "w2", "start": 0.42, "end": 0.98 }
]
}
]
}
href— the spine document inside your EPUB. Matched on the full path, falling back to the filename, so either works.track— which chapter's audio these cues belong to (1 = first chapter in the reading order).id— theidattribute of the element to highlight in that document.start/end— seconds into that chapter's audio. Cues must be in order and must not overlap; touching (endequal to the nextstart) is fine.text— optional, ignored by the player. Handy when authoring by hand.
Granularity is up to you: one cue per word gives a karaoke effect, one per sentence or paragraph is calmer and makes a much smaller file. Anything malformed is rejected on upload with the specific problem, so you can fix it and try again.
FAQ
Does Storia take a cut of my sales?
No. You only pay the flat hosting fee. Sales go to your own processor (you pay only its fees).
Do my buyers need an account?
No. Access is a device token delivered by link or email — no sign-up.
Can I move my files later?
Yes — you upload your own files and can download or delete them anytime.