clientSideEnabled.
How it works
Magic Embed is a client-side integration. The script runs in the visitor’s browser each time an article page loads, but content ingestion works differently on the first visit versus later ones.- First visit: When an article hasn’t been ingested before, the script triggers content extraction from the live page and starts audio/video generation. The player appears once generation is complete.
- Later visits: The player loads existing audio/video straight away. BeyondWords periodically re-checks the live page for updates, but not on every visit. If you’ve edited the article on your website, changes are picked up automatically over time.
window.location.href) is used by default. This works out of the box, but we recommend passing a sourceId—your CMS article ID—in the embed code wherever you can. Magic Embed will use it as the content’s source_id, which lets you search for content by source ID in the dashboard, embed the player on other surfaces using the same ID, and take advantage of platform features such as webhooks and syndicated content that key off source_id.
On the first visit, the player won’t appear until audio/video generation is complete. If a domain isn’t in your allowed domains list, content won’t be ingested and the player won’t load.
Install Magic Embed
Enable Magic Embed
Go to Settings → Integrations → Magic Embed in your project dashboard and switch the toggle on.
Add allowed domains
In the Allowed domains field, enter each domain where Magic Embed should work, then click Add.Include production, staging, preview environments, and any subdomains (e.g.,
www.example.com and staging.example.com are separate entries). If a page’s domain isn’t on this list, BeyondWords won’t ingest content from it.Copy the embed code
In the Embed code dropdown, select what type of content you want to embed: , , , or .Click the copy icon alongside the embed code—you’ll need this in step 6.Then, click Save changes.
Set request headers (optional)
For paywalled or protected content, configure authentication headers so BeyondWords can access your pages. These are project-level extraction settings, shared with the RSS Feed Importer and URL imports.
- Go to Settings → Extraction in your project dashboard
- Add a Header name and Header value
- Click + to add additional headers if needed
- Click Save changes
Requests will be made with
User-Agent: BeyondWords ImporterEnable static IP (optional)
If your website requires IP allowlisting, enable static IP in your extraction settings.
- Go to Settings → Extraction in your project dashboard
- Switch the Static IP toggle on
- Allowlist the displayed IP addresses within your firewall, CDN, or server configuration
- Click Save changes
Requests will be sent from
20.234.8.180Add the embed code to your website
Paste the script into your article template where you want the player to appear. The player is inserted immediately after the script tag.A typical embed code looks like this. Pass your CMS article ID as Copy the base snippet from your dashboard—it will include your project ID and the correct settings for your chosen content type—then add
sourceId if your template has access to it:sourceId in your article template.Content filters
Magic Embed uses automatic extraction by default, which identifies editorial content on your page and ignores most non-article elements. In practice, most publishers also set up content filters to fine-tune what gets included or excluded—for example:- Exclude newsletter sign-ups, related-article blocks, social embeds, or author bios that shouldn’t be read aloud
- Include only a specific container when automatic extraction picks up more than you need
Fine-tuning your integration
Beyond filters, you can further refine how Magic Embed processes your pages:- Content extraction—extraction modes and advanced filter configuration
- Data attributes—explicitly define title, author, publish date, and other fields in your HTML
- Player settings—customize player appearance and behavior
- Segment detection—Magic Embed automatically retrieves segment markers from your page for text highlighting
FAQs
What happens if I update my live article?
What happens if I update my live article?
BeyondWords periodically re-checks your live article for changes and regenerates audio/video when it detects an update—it doesn’t re-ingest the page on every visit. This happens automatically unless you’ve disabled automatic updates in the Editor (see below).
What happens if I make changes in the Editor?
What happens if I make changes in the Editor?
If you make changes to content generated via Magic Embed in the Editor, the content will be regenerated accordingly. However, any future changes to your live article may trigger regeneration, which will overwrite changes you made in the Editor.To preserve your edits, go to the Info tab in the Editor and disable API updates. This stops automatic sync from your website—future changes on your live article will no longer be picked up.If you want article updates to continue syncing automatically, use content filters to control what gets included or excluded from audio generation instead of editing articles manually in the Editor.
Will the player appear before audio/video is generated?
Will the player appear before audio/video is generated?
No. The player only appears once content has been generated and is ready to play.
How does Magic Embed extract content?
How does Magic Embed extract content?
Magic Embed uses automatic extraction by default. If the extracted content is incorrect, use content filters or data attributes to control what BeyondWords includes or excludes.