=== Ant Media Secure Video ===
Contributors: balajant
Tags: ant media server, video, hls, streaming, vod
Requires at least: 5.6
Tested up to: 6.9
Stable tag: 1.0.0
Requires PHP: 7.0
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Embed secure video tags for Ant Media Server VOD access with HLS.js support. Currently supports JWT authentication.

== Description ==

A WordPress plugin for embedding JWT token secured video content from Ant Media Server.
Uses raw video tag for mp4 videos and HLS.js for .m3u8 manifests.

The JWT tokens are generated in the browser.

### Features

*   **HLS.js Integration**: Uses HLS.js library to play m3u8 HLS streams in all browsers
*   **JWT Authentication**: Secure token-based authentication for video streams
*   **WordPress Shortcode**: Easy integration using `[amsv_video]` shortcode
*   **Responsive Design**: Videos automatically scale to fit container width

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Configure the plugin settings at **Settings > Ant Media Secure Video**.
4. Enter your Ant Media Server URL, Port, App Name, and Shared Secret.

== Frequently Asked Questions ==

= How do I use the shortcode? =

Use the `[amsv_video]` shortcode in any post or page. The only required parameter is `streamId`.

Basic example:
`[amsv_video streamId="lesson1"]`

Advanced example:
`[amsv_video streamId="lesson1" poster="https://example.com/poster.jpg" autoplay="0" controls="1" preload="metadata" ttl="1800" width="640" height="360"]`

= What parameters are available? =

*   `streamId` (required): The stream ID from Ant Media Server. Can include .mp4 or .m3u8 extension
*   `poster` (optional): URL to poster image
*   `autoplay` (optional): Set to "1" to autoplay (default: "0")
*   `controls` (optional): Set to "1" to show controls (default: "1")
*   `preload` (optional): Preload behavior - "none", "metadata", "auto" (default: "metadata")
*   `ttl` (optional): Custom token TTL in seconds (overrides global setting)
*   `width` (optional): Video width - numeric value in pixels, or with unit like "100%", "50em", "640px" (default: "100%")
*   `height` (optional): Video height - numeric value in pixels, or with unit like "50%", "30em", "360px" (default: auto)

= How does the authentication work? =

The plugin generates a JWT token using your configured Secret Key. This token is appended to the HLS stream URL
and all subsequent segment requests, ensuring that only authorized viewers can access the content.

== External Services ==

This plugin relies on the HLS.js library to play HLS streams.

* Library: hls.js (v1.6.15 from https://github.com/video-dev/hls.js/releases/tag/v1.6.15)
* Source: https://github.com/video-dev/hls.js
* License: Apache 2.0
* License URI: https://github.com/video-dev/hls.js/blob/master/LICENSE

The plugin's purpose is to load video streams as HLS manifests or direct mp4 files into the page,
so as such it relies on the external video service provided by Ant Media Server. Where and how
Ant Media Server is running is up to the user of the plugin, the installation instructions for that
software can be found in its public documentation.

== Changelog ==

= 1.0.0 =
* Release version with HLS.js integration
* Support for JWT authentication
