Configure Speakup Article with Paywall
Introductionβ
If your website uses a paywall to restrict access to premium content, Speakup Article requires specific configuration to:
- Allow our servers to access the full article text for audio generation
- Properly handle the player display based on content type and user subscription status
This guide walks you through both configurations.
Part 1: Enable Full Content Access for Scrapingβ
Since Speakup Article analyzes your content server-side, our servers need access to the complete article textβeven for paywalled content. Without this, we cannot generate audio for premium articles.
Two methods are available:
Method 1: Custom Query String Bypassβ
Agree on a unique query string with your Speakup Account Manager. When our server requests an article with this parameter, your system should return the full content.
Example:
https://www.yoursite.com/premium-article?bypass_token=your_secret_key
If you manage multiple sites with Speakup Article, you can set a different bypass string for each site. Contact your Account Manager to configure this.
Implementation steps:
- Agree on a bypass parameter and value with Speakup (e.g.,
bypass_token=your_secret_key) - Configure your backend/CMS to serve the full article content when this parameter is present
- Ensure this bypass only works for the agreed parameterβdo not expose content publicly
Method 2: User-Agent Whitelistingβ
Configure your server to return full content when requests come from our scraping service.
Our User-Agent: speakup-article
Implementation steps:
- Add
speakup-articleto your server's User-Agent allowlist - Configure your backend to serve full content for requests with this User-Agent
- If you use a WAF, see our WAF Configuration Guide for specific instructions
- Query String: Easier to implement, works with most CMS and CDN configurations
- User-Agent: More flexible for complex architectures, can be combined with WAF rules
Part 2: Script Configuration by Content Typeβ
The Speakup Article player must be configured differently based on two factors:
| Factor | Description |
|---|---|
| Content type | Whether the article is free (prm=false) or premium (prm=true) |
| User status | Whether the visitor is a subscriber (subscriber=true) or not (subscriber=false) |
Even on free articles, knowing if the user is a subscriber is important. Speakup Article includes a playlist feature that can play content from other articles. If the user is a subscriber, the playlist can include premium articles. If not, only free content will be shown.
Configuration Matrixβ
| Content Type | User Status | Script Configuration |
|---|---|---|
| Free | Non-subscriber | data-prm="false" + data-subscriber="false" |
| Free | Subscriber | data-prm="false" + data-subscriber="true" |
| Premium | Subscriber | data-prm="true" + data-subscriber="true" |
| Premium | Non-subscriber | Do NOT include the script |
Scenario 1: Free Content + Non-Subscribed Userβ
For free articles viewed by non-subscribers:
<script
id="speakup-player-script"
src="https://cdn.speakup.ai/loader.speakup.min.js"
data-lang="en"
data-layout="boxed-small"
data-theme="default"
data-site="your-site-id"
data-prm="false"
data-subscriber="false"
async
></script>
<div id="speakup-player"></div>
Since false is the default value for both parameters, they can be omitted in this scenario. However, we recommend including them explicitly for clarity and consistency across all configurations.
Scenario 2: Free Content + Subscribed Userβ
For free articles viewed by subscribers. The playlist will include premium content:
<script
id="speakup-player-script"
src="https://cdn.speakup.ai/loader.speakup.min.js"
data-lang="en"
data-layout="boxed-small"
data-theme="default"
data-site="your-site-id"
data-prm="false"
data-subscriber="true"
async
></script>
<div id="speakup-player"></div>
Scenario 3: Premium Content + Subscribed Userβ
For premium articles viewed by subscribers:
<script
id="speakup-player-script"
src="https://cdn.speakup.ai/loader.speakup.min.js"
data-lang="en"
data-layout="boxed-small"
data-theme="default"
data-site="your-site-id"
data-prm="true"
data-subscriber="true"
async
></script>
<div id="speakup-player"></div>
Scenario 4: Premium Content + Non-Subscribed Userβ
When a non-subscriber visits premium content, do NOT include the Speakup Article script at all.
Since the user cannot access the full article, playing the audio version would bypass your paywall logic.
Your CMS/template logic should prevent the script from being rendered in this scenario.
Example pseudocode:
// Only render player if content is free OR user is subscribed
if (!isPremiumContent || userIsSubscriber) {
renderSpeakupPlayer({
prm: isPremiumContent,
subscriber: userIsSubscriber,
});
}
Implementation Checklistβ
Use this checklist to verify your paywall integration:
- Scraping bypass configured β Speakup servers can access full content via query string or User-Agent
- Free + Non-subscriber β Player loads with
data-prm="false"anddata-subscriber="false" - Free + Subscriber β Player loads with
data-prm="false"anddata-subscriber="true" - Premium + Subscriber β Player loads with
data-prm="true"anddata-subscriber="true" - Premium + Non-subscriber β Player script is NOT present on the page
- Tested all scenarios β Verified player and playlist behavior for each content/user combination
Verificationβ
Once configured, our team can perform test scrapes to verify:
- Full article content is accessible through the bypass method
- Player displays correctly for each scenario
Contact your Account Manager to schedule verification.
Need Help?β
For questions about paywall configuration, contact us at support@audioboost.com with:
- Your site URL(s)
- Current paywall/CMS platform
- Preferred bypass method (query string or User-Agent)