How it works
There are two common ways content reaches BeyondWords from Pugpig. Most publishers use one or both, depending on how their Bolt edition is configured.| Path | How content flows | BeyondWords setup |
|---|---|---|
| Pugpig feed (most common) | BeyondWords polls your Pugpig edition feed and imports articles | RSS Feed Importer → JSON (Pugpig) |
| Pugpig Express API | Pugpig calls the BeyondWords API whenever a post is created or updated | Text-to-Speech plugin in Pugpig Express + webhook |
How Pugpig uses your audio
Once audio is available, the Pugpig Bolt Text-to-Speech plugin (via Pugpig Express) distributes it as follows—see Pugpig’s integration doc for full detail:narration_url—added to thecontent.htmlpage in the app editionaudio_meta_data—title and image URL added to the atom feed
audio array from the response. It uses the entry with content_type: audio/mpeg (the .mp3 file) and ignores the application/x-mpegURL stream (.m3u8).
If audio has not finished generating when Pugpig first fetches the player API, the
audio array may be empty. Pugpig can fetch again when the article is subsequently updated, or once the audio.updated webhook fires and Pugpig re-queries the API.Choose your integration path
Pugpig feed path
Use this when your Pugpig edition exposes a JSON (Pugpig) feed—the most common setup for Bolt clients.- Set up the RSS Feed Importer with feed type JSON (Pugpig)
- Configure page extraction and field mapping as needed
- Optionally enable Restrict to articles marked for audio in Bolt CMS to import only stories with
BeyondwordsCreateAudioset incustom_analytics - Configure the webhook so Pugpig apps receive audio when generation completes
Pugpig Express API path
Use this when Pugpig sends content directly to BeyondWords through the Text-to-Speech plugin in Pugpig Express—rather than (or in addition to) the feed importer. Follow the steps below, then configure the webhook.Pugpig Express API path
Copy your project ID
Go to Settings → Integrations → API in your project dashboard and copy the Project ID.
Share your project ID with Pugpig
Open the Text-to-Speech plugin in Pugpig Express and paste your BeyondWords Project ID into the relevant field.Pugpig will call the BeyondWords API each time a post is created or updated. See Pugpig’s setup guide for plugin-specific steps.
Configure the webhook
See Configure the webhook below — required for Pugpig to know when audio generation is complete.
Configure the webhook
Pugpig Express exposes a webhook endpoint that listens for BeyondWords notifications and updates app content once audio is ready.Get your Pugpig webhook URL
Your Pugpig Express site provides a webhook URL in this format:Replace
{your-site} with your Express site subdomain. Pugpig documents this endpoint in their webhook configuration guide.Add the webhook in BeyondWords
Go to Settings → Webhooks in your BeyondWords project dashboard.Click + Webhook and paste your Pugpig webhook URL into Webhook URL.Toggle Enabled on, then click Save changes.BeyondWords sends an
audio.updated event when generation completes successfully.Add request headers (optional)
If Pugpig’s webhook endpoint requires authentication, add the required Header name and Header value pairs in the webhook settings.
Fine-tuning
- Content extraction—when using the Pugpig feed path, content filters apply to imported HTML
- Data attributes—per-article metadata and segment control in HTML
- Voices and player settings—project defaults in the BeyondWords dashboard
- Web player—install separately on your website if you want web playback in addition to the Pugpig app
FAQs
Should I use the Pugpig feed or the Express API?
Should I use the Pugpig feed or the Express API?
Pugpig feed (via the RSS Feed Importer) is the most common path for Bolt edition clients. Pugpig Express API (Text-to-Speech plugin) is used when Pugpig pushes content directly on post create/update. Some publishers use both. Either way, configure a webhook for native app distribution.
Does audio appear immediately after publishing?
Does audio appear immediately after publishing?
Not always. Generation typically takes a few minutes. If Pugpig queries the player API before audio is ready, the
audio array may be empty — a known behaviour documented by Pugpig. Once the webhook fires or the article is updated again, Pugpig can fetch the completed audio.Can I restrict which articles get audio?
Can I restrict which articles get audio?
Yes. For the Pugpig feed path, enable Restrict to articles marked for audio in Bolt CMS in the RSS Feed Importer page extraction settings. BeyondWords only imports stories where
custom_analytics.BeyondwordsCreateAudio is set in the Pugpig feed.