=== FluentPlayer ===
Contributors: wpmanageninja
Tags: media player, video player, audio player, playlist, youtube
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A powerful and intuitive media player plugin for WordPress, designed to enhance your website's audio and video playback experience.

== Description ==

FluentPlayer is a comprehensive media player solution for WordPress that brings professional-grade audio and video playback capabilities to your website. Whether you're hosting podcasts, educational content, or entertainment videos, FluentPlayer provides the tools you need to deliver an exceptional media experience.

= Key Features =

* 🎵 **Audio Playback** - High-quality audio streaming with advanced controls
* 🎥 **Video Streaming** - Smooth video playback with multiple format support
* 🎨 **Customizable Player Skins** - Match your brand with customizable player designs
* 🔊 **Volume Control** - Full volume control with mute functionality
* 📋 **Playlist Support** - Create and manage playlists for continuous playback
* ⏩ **Playback Speed Control** - Adjust playback speed for better user experience
* 🔗 **Easy Embedding** - Simple shortcodes for quick media embedding
* 📐 **Adjustable Aspect Ratio** - Multiple aspect ratio options for perfect display

= Supported Media Sources =

* YouTube videos
* Vimeo videos
* Self-hosted media files
* External media URLs


= Aspect Ratio Options =

* Default (16:9) - Standard widescreen format
* Original - Maintains the original aspect ratio
* Custom Ratios - 4:3, 1:1, 9:16, 3:2, and more
* Responsive design for all devices

= Easy to Use =

Simply use shortcodes to embed your media:

For single media: `[fluentplayer id="YOUR_MEDIA_ID"]`
For playlists: `[fluentplaylist id="YOUR_PLAYLIST_ID"]`

= Developer Friendly =

Built with modern technologies including Vue.js 3, Vite, and VidStack for optimal performance and extensibility.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/fluent-player` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Navigate to the FluentPlayer settings page to configure your media player.
4. Start creating media items and playlists from the admin dashboard.

== Frequently Asked Questions ==

= How do I add a media player to my post or page? =

Use the shortcode `[fluentplayer id="YOUR_MEDIA_ID"]` where YOUR_MEDIA_ID is the ID of the media item you created in the admin panel.

= Can I create playlists? =

Yes! Create playlists in the admin panel and embed them using `[fluentplaylist id="YOUR_PLAYLIST_ID"]`.

= What media formats are supported? =

FluentPlayer supports YouTube videos, Vimeo videos, and self-hosted media files in common formats (MP4, WebM, MP3, etc.).

= Can I customize the player appearance? =

Yes, FluentPlayer offers customizable skins and settings to match your website's design.

= Is the player responsive? =

Absolutely! The player is fully responsive and works great on all devices and screen sizes.




== Changelog ==

= 1.0.5 (Date: April 24, 2026) =
Feature: Ambient preset layers
Feature: Fluent Community block apiVersion 3 support
Feature: Support for CRM shortcodes in timed content and dynamic layers
Feature: Presto Player migration tooling for importing media, presets, playlists, settings, analytics, and content rewrites
Improvement: Preset template consistency
Improvement: Default preset slug resolution, fluent_player embed alignment, and media list table widths
Security: Hardening and package safety across plugin directories
Fix: YouTube Shorts zoom and crop issues on the frontend
Fix: Audio player volume controls on mobile devices
Fix: Iframe permission guarding and YouTube cross-player message race conditions
Fix: Original aspect ratio fallback to 16:9 when source dimensions are unavailable
Fix: Provider config redaction, unpublished language media filtering, and media settings cache invalidation
Fix: Auto-draft cleanup bounds, PHP 8.4  compatibility

= 1.0.4 (Date: March 17, 2026) =
- Feature: Mux live streaming and VOD provider support
- Feature: playlist overlay mode setting to playlist block
- Feature: FluentCRM smart code inserter to timed content
- Feature: configurable thumbnail aspect ratio for all playlist layouts
- Feature: dynamic overlay positioning
- Improvement: audio player layout and flash prevention
- Improvement: settings menu mobile responsiveness
- Improvement: scroll performance and YouTube HD thumbnails
- Improvement: admin UX and block enhancements
- Fix: settings menu showing duplicate Playback and Accessibility items
- Fix: settings menu item styling broken by skin-standard size constraint
- Fix: JS-PHP connection issues and PHP 8.x compatibility
- Fix: grid playlist thumbnails display override from Kadence slider
- Fix: mute icon not updating when volume slider reaches zero
- Fix: stuck autoplay detection
- Fix: playlist overlay and modal playback bugs

= 1.0.3 (Date: March 10, 2026) =
- Feature: keyboard action bezel animations with accessibility controls
- Feature: settings menu with Playback and Accessibility submenus
- Feature: ambient preset for looping background video with no controls
- Feature: shortcode and Fluent ecosystem blocks support in timed content
- Feature: text color support and makes title optional for form layer
- Improvement: video duration column in admin media list
- Improvement: seamless loop for muted autoplay instead of countdown
- Improvement: Gutenberg block UI polish and CSS cleanup
- Improvement: lazy-load for better performance
- Fix: prevent auto-scroll to second video on page load
- Fix: autoplay on chapter modal and time input glitch
- Fix: ambient loop restart timing for YouTube embeds

= 1.0.2 (Date: February 28, 2026) =
- Fix: PHP 8.x compatibility
- Fix: YouTube replay buffering and iframe visibility
- Refactor: Code refactored for better maintainability

= 1.0.1 (Date: February 24, 2026) =
- Fix: apiVersion 3 YouTube block and iframe issue
- Fix: handleEmailSubmit signature mismatch

= 1.0.0 (Date: September 22, 2025) =
- Initial release of FluentPlayer
- Feature: video player powered by Vidstack with HLS support
- Feature: audio player with dedicated audio layout
- Feature: YouTube and Vimeo embed support with auto poster and title sync
- Feature: self-hosted media file support (MP4, WebM, MP3, etc.)
- Feature: Gutenberg blocks for media player and playlist
- Feature: shortcodes: `[fluentplayer]` and `[fluentplaylist]`
- Feature: playlist support with sidebar and grid layouts
- Feature: drag-and-drop admin dashboard built with Vue 3
- Feature: player presets (Standard, Floating, Simple, Minimal) with customizable colors
- Feature: configurable aspect ratios (16:9, 4:3, 1:1, 9:16, 3:2, original)
- Feature: playback speed control
- Feature: chapter support with custom time markers
- Feature: subtitle/caption support
- Feature: overlay layers system (CTA, email capture, custom HTML)
- Feature: email capture with FluentCRM integration
- Feature: timed content for showing overlays at specific timestamps
- Feature: autoplay with browser mute policy handling
- Feature: global control bar color and brand color settings
- Feature: Google Analytics integration (optional)
- Feature: live preview in admin editor
- Feature: copy shortcode from media list
- Feature: media search with collapsible header and debounce

== External Services ==

This plugin connects to external services to provide enhanced video functionality. Below are the services used and when they are contacted:

= Video Hosting Providers =
**YouTube Video Streaming and CDN Services**
This plugin connects to YouTube's servers and CDN services when users embed YouTube videos. It connects to multiple YouTube/Google domains including www.youtube.com, www.youtube-nocookie.com (privacy-enhanced mode), i.ytimg.com (thumbnails), and img.youtube.com (video thumbnails). It sends video IDs, user IP addresses, and requests video thumbnails and metadata every time a YouTube video is played or displayed. This service is provided by Google: Terms of Service (https://www.youtube.com/t/terms), Privacy Policy (https://policies.google.com/privacy).

**Vimeo Video Streaming and CDN Services**
This plugin connects to Vimeo's servers and CDN services when users embed Vimeo videos. It connects to multiple Vimeo domains including player.vimeo.com (video player), vimeo.com/api/oembed.json (metadata), f.vimeocdn.com, fresnel.vimeocdn.com, and i.vimeocdn.com (thumbnails and video assets). It sends video IDs, user IP addresses, and requests video thumbnails and metadata every time a Vimeo video is played or displayed. This service is provided by Vimeo: Terms of Service (https://vimeo.com/terms), Privacy Policy (https://vimeo.com/privacy).

= Optional Services (Disabled by Default) =
**Google Analytics**
This plugin can connect to Google Tag Manager (https://www.googletagmanager.com/gtag/js) to provide video analytics functionality. It sends video viewing events, user interactions, and measurement ID data when Google Analytics integration is explicitly enabled in plugin settings. This feature is disabled by default and requires manual configuration with a Google Analytics measurement ID. This service is provided by Google: Terms of Service (https://marketingplatform.google.com/about/analytics/terms/), Privacy Policy (https://policies.google.com/privacy).

**BunnyCDN Storage and Streaming**
This plugin can connect to BunnyCDN's services including bunny.net (API) and video.bunnycdn.com (video streaming) to host and deliver video content via CDN. It sends API keys, video files, metadata, user IP addresses, and streaming requests when BunnyCDN integration is configured with API keys. This feature is disabled by default and requires manual API key configuration. This service is provided by BunnyWay d.o.o.: Terms of Service (https://bunny.net/terms/), Privacy Policy (https://bunny.net/privacy/).

**Mailchimp Email Marketing**
This plugin can connect to Mailchimp's services including [server].api.mailchimp.com/3.0/ (API) and [server].admin.mailchimp.com (admin interface) to collect email addresses for marketing campaigns. It sends email addresses, subscriber data, list information, and API authentication data when Mailchimp integration is configured with API keys and users submit emails through video overlays. This feature is disabled by default and requires manual API key configuration. This service is provided by Mailchimp (Intuit): Terms of Service (https://mailchimp.com/legal/terms/), Privacy Policy (https://mailchimp.com/legal/privacy/).

**FluentCRM Integration**
This plugin can integrate with FluentCRM (a WordPress plugin) to manage email subscribers locally within WordPress. It sends email addresses and subscriber data to FluentCRM lists and tags when FluentCRM integration is enabled and users submit emails through video overlays. This feature is disabled by default and only works when FluentCRM plugin is installed and configured. This is a local WordPress integration - no external service connection.

= Admin-Only Services =

**Custom Webhook Integration**
This plugin can send collected email addresses to user-configured webhook endpoints for email capture functionality. It sends email addresses, media IDs, and timestamps when users submit emails through video overlays and webhook integration is configured. The destination service depends on user configuration - no default external service is used.

**Configured Subtitle Import Service (Beta)**
This plugin can connect to a user-configured subtitle import service when an administrator or editor imports YouTube subtitles or hover-preview storyboards from the media editor. It sends the YouTube video ID and authenticated API requests to the configured service, and that service may contact YouTube to retrieve caption or storyboard metadata. This feature is disabled by default, depends on site-owner configuration, and is intended for admin-side import only; site visitors do not call the subtitle service directly after import. The destination service depends on user configuration, so site owners are responsible for reviewing their privacy notice, processor terms, and any transfer requirements that apply to their setup.

For questions about data processing or privacy, please contact the Fluent Team.

== Support ==

For support, feature requests, or bug reports, please visit our support forum or contact the Fluent Team.

Made with ❤️ by Fluent Team
