=== VoiceThisText ===
Author URI: https://vanrossum.dev
Plugin URI: https://vanrossum.dev
Contributors: jeffreyvr
Requires at least: 6.0
Tested up to: 6.9
Stable Tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Integrate VoiceThisText with WordPress to automatically generate audio versions of your posts.

== Description ==

VTT for WordPress allows you to easily integrate [VoiceThisText](https://voicethistext.com) with your WordPress site. Automatically generate high-quality AI-powered audio versions of your blog posts, giving your readers the option to listen instead of read.

== Privacy ==

This plugin connects to the VoiceThisText service to generate and manage audio.

When you generate or regenerate audio, the plugin sends post content and selected generation settings (such as provider, voice, and model identifiers) to VoiceThisText.

When front-end playback is enabled for a post, the plugin loads the player embed script from the VoiceThisText domain.

Data is sent only after a site administrator configures an API key and enables plugin features.

For details on how VoiceThisText handles data, please review the VoiceThisText privacy policy and terms on voicethistext.com.

= Features =

* Generate audio versions of your posts using VoiceThisText
* Choose your own TTS Provider
* Assign generations to a VoiceThisText project (one per site)
* Exclude blocks or phrases from narration in the block editor
* Customizable JavaScript player (variant, theme, accent color)
* Toggle mode for "Listen to article" button
* Automatically insert the audio player at the top or bottom of posts
* Built-in transcript display with word highlighting
* Optional synchronized transcript highlighting on post content
* Regenerate audio when content changes

= Requirements =

* A [VoiceThisText](https://voicethistext.com) account with API access
* PHP 8.0 or higher
* WordPress 6.0 or higher

== Installation ==

1. Install the plugin from your WordPress admin, or upload and install the plugin folder to your plugins directory (e.g. /wp-content/plugins/)
2. Activate the plugin
3. Go to Settings > VoiceThisText and enter your API key
4. Configure your preferred voice and player settings
5. Edit a post and use the VoiceThisText metabox to generate audio

== Frequently Asked Questions ==

= Where do I find my API key? =

You can find your API key in your VoiceThisText account settings.

= Can I use synchronized transcripts? =

Yes, you can enable transcript synchronization in the plugin settings. This will highlight your content as the audio plays.

= How do I regenerate audio after updating a post? =

Simply click the "Regenerate" button in the VoiceThisText metabox when editing your post.

== Changelog ==

= 1.1.0 =
* Added: exclude content from audio narration in the block editor (block toolbar, sidebar toggle, and inline format) via the `audio-skip` class.
* Added: global Project setting — select an existing VoiceThisText project or create one for this site so generations are attributed via `project_id`.
* Changed: plugin updates are served from GitHub releases via plugin-update-checker (release zip assets including vendor/).
* Fixed: TTS content transform preserves `audio-skip` / `data-audio-skip` markers (including on wrappers like images/figures) so excluded regions reach VoiceThisText correctly.
* Improved: if a configured project was deleted in VoiceThisText, clear it, retry generation without a project, and show an admin notice to re-select.

= 1.0.1 =
* Added: self-hosted plugin update mechanism so sites receive updates from voicethistext.com.
* Improved: metabox polling now stops after 3 minutes with a "Still working..." message instead of surfacing spurious errors when background jobs run long.
* Changed: generation completion and failure are shown inline with an explicit "Reload" button — the metabox no longer refreshes the page automatically.
* Fixed: removed a broken template reference in the generation/regeneration AJAX response.

= 1.0.0 =
* First stable release

== External services ==

This plugin connects to the [VoiceThisText](https://voicethistext.com) external service to generate and manage text-to-speech audio for your WordPress posts.

= What data is sent and when =

* When an administrator generates or regenerates audio for a post, the plugin sends the post content along with selected generation settings (such as provider, voice, and model identifiers) to the VoiceThisText API at `https://voicethistext.com/api/v1/`.
* When a webhook is registered or unregistered (on plugin activation/deactivation or settings change), the plugin communicates with the VoiceThisText API to manage webhook endpoints.
* When front-end playback is enabled for a post, the plugin loads the JavaScript player embed script from `https://voicethistext.com/js/embed.min.js`.

Data is only sent after a site administrator has configured an API key and enabled the relevant plugin features.

* [VoiceThisText Terms of Service](https://voicethistext.com/terms)
* [VoiceThisText Privacy Policy](https://voicethistext.com/privacy)
