FAQ / Help

Quick answers to common questions

Are there limits on storage, viewers, or chat participants?
No built‑in limits. Capacity depends on your server resources (disk, CPU, memory) and configuration.
How many people can watch at the same time?
There is no fixed limit. Concurrency depends only on your server bandwidth and setup (unlike many WebRTC solutions that cap concurrent viewers).
Purchase license policy
One license = one domain name. A single license permits activation on one production domain. If you need to use the plugin on multiple domains, please purchase additional licenses.
What browsers can stream?
Streaming requires MediaStreamTrackProcessor and WebCodecs H.264 encoder. Use Chrome/Edge desktop or Android Chrome. iOS Safari and Firefox cannot stream.
Can viewers watch on iOS?
Yes. Viewing works on all modern browsers including iOS Safari.
Where are stream files stored?
Under wp-content/uploads/wpsl/{stream_id}. Enable "Save recording" to keep files and auto-generate a replay playlist.
How does password protection work?
Viewers enter a password; a signed cookie grants access for 24 hours.
How does Stripe paywall work?
Uses Stripe Checkout for one-time payment, then verifies the session on return to unlock access.
Where are Sale Reports?
Open Stream Live → Sale Reports to see per-stream sales.
  • Filter by date range using Start/End selectors.
  • Totals banner shows overall sales count and gross by currency.
  • Each stream row shows configured price, sales, gross, buyers (emails), and last sale time.
  • Data fetches the latest 100 Stripe Checkout sessions in the range. Click Refresh to update.

Numbers exclude Stripe fees; use the Stripe Dashboard for fee-inclusive totals.

Integrate Stripe – Step by Step
  1. Go to Stripe Dashboard → Developers → API keys.
  2. Copy your Publishable key (starts with pk_) and Secret key (starts with sk_).
  3. In WordPress, open Stream Live → Settings and paste keys into the fields.
  4. Optionally set the default currency (ISO code like usd, eur).
  5. On the stream admin page, choose Video access → Paywall and set price/currency.
  6. Share the viewer URL. Viewers pay via Stripe Checkout and are redirected back with access unlocked.
??How do email invitations work?
  1. On the Stream Live page, check Invite by email.
  2. Click Add users to be invited to open the picker. Select existing users or add emails manually, then Save Selection.
  3. Optionally click Send Preview to Me from the modal to test the email.
  4. Click Start to begin streaming; invites send in the background to selected recipients.

Customize the subject and HTML template under Stream Live → Settings → Invitation Email. Available placeholders: {{viewer_url}}, {{stream_id}}, {{stream_title}}, {{start_time}}.

Chat rate limits
Server-side anti-flood is enabled: minimum interval between messages per IP per stream and a burst window cap. If users report blocked messages, slow the typing rate or reduce burstiness.
Reset chat table
Use WP-CLI: wp db query "TRUNCATE TABLE $(wp db prefix)wpsl_chat;". Back up first; this permanently deletes all chat history.
Stripe payment issues
  • Ensure Stream Live → Settings has valid pk_ and sk_ keys (test vs live).
  • Price must be set on the stream when Paywall is selected.
  • Viewer returns with ?session_id=...; the plugin verifies status and unlocks access. If not redirecting, check site HTTPS and that the return URL loads publicly.
  • Use Stripe Dashboard logs to inspect Checkout Session creation and status.
Tips
  • Use 2–4s latency for a good balance of quality and stability.
  • Toggle "Save recording" to publish a VOD playlist when stopping.
  • Auto-create a Viewer page for easy sharing and permalinks.
??Where are Recorded Videos?
Open Stream Live → Recorded Videos to browse replays. You can search by name/ID, preview HLS, rename the title inline, and bulk delete old sessions. Replays are stored under uploads/wpsl/{id} as vod.m3u8.
??How do I create a Viewer page?
On the Stream Live page, click Auto-create Viewer Page after creating a stream. Alternatively, embed manually with [wpsl_viewer stream="123"]. Options: chat="0|1", poll="1.5". You can also open an on-the-fly viewer at /?wpsl_viewer=1&stream=123.
??Online users (Presence)
The viewer reports presence periodically. Admins can query /wp-json/wpsl/v1/presence/list?stream_id=123 and charts in the UI use this data. When Other users can see user list is enabled, a public list of names is exposed via /wp-json/wpsl/v1/presence/public?stream_id=123.
⏱️Live vs Replay
Replay is created when "Save recording" is enabled before starting. The recordings page lists both replay (vod.m3u8) and live playlists (index.m3u8). Viewer opens replay automatically when the URL ends with #replay.
Troubleshooting playback
If video doesn’t start: verify the playlist URL loads, confirm server serves correct MIME types (m3u8: application/vnd.apple.mpegurl, m4s/mp4: video/mp4). For non-Safari browsers, hls.js is loaded automatically for previews.
Storage and cleanup
Use bulk delete on the recordings page to remove old sessions. Consider using a CDN if footprint grows. Only files under uploads/wpsl/{id} are touched by delete.
Security & privacy
Admin-only endpoints enforce capability checks and nonces. Password/paywall gate viewer access via signed cookies. Upload writes are restricted to per-stream folders only.
Logged-in Access
Enable Only logged-in users can access video on the Stream Live admin page to require viewers to sign in before watching. If WordPress registration is disabled, you can also check Allow new users to register to enable sign-ups site‑wide so new viewers can create accounts.