=== Minute Video === Contributors: minutemedia Tags: video, voltax, minute, sendtonews, stnvideo Stable tag: 2.0.3 Requires at least: 5.0.3 Tested up to: 7.1 Requires PHP: 7.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Embed Minute Platform OVP videos and playlists in WordPress, with full sendtonews shortcode and oEmbed support. == Description == The Minute Video plugin connects WordPress to [Minute's Online Video Platform (OVP)](https://www.minutegroup.com/). Use it to embed OVP videos and playlists in posts, sidebars, and theme templates, set featured video, and serve sendtonews embeds already in your content. [Download the user guide (PDF)](https://plugins.trac.wordpress.org/browser/voltax-video-player/tags/2.0.3/assets/pdf/guide.pdf?format=raw) = What you can do = * Configure OVP credentials under **Settings > Minute Video** * Search and insert videos from the **Video Library** in the post editor (classic editor or Minute Video block) * Insert playlists or shortcodes from the embed modal in widgets and the customizer * Embed with the `[voltax]` shortcode (or legacy `[mm-video]` where already in use) * Embed sendtonews content with the `[sendtonews]` shortcode or `embed.sendtonews.com` oEmbed URLs * Set a featured video per post and render it with the `MinuteMedia\Ovp\Player` theme API * Paste Minute Video URLs for oEmbed on `*.minutemediaservices.com` * Serve AMP pages with Minute Platform and sendtonews `amp-video-iframe` output (legacy `[mm-video]` uses `amp-minute-media-player`) = Account = A Minute Platform OVP account is required for new Minute Video embeds. Contact [sales@minutegroup.com](mailto:sales@minutegroup.com) for access. == Installation == 1. Install or update through the **Plugins** menu in WordPress. 2. Open **Settings > Minute Video** and enter the OVP credentials from Minute. 3. If your site uses sendtonews embeds, confirm the legacy Company ID and authentication code on **Settings > Minute Video** (shown when present). 4. Embed from the editor, widget, or shortcodes (see FAQ). 5. Optional — Featured video: select a video in the post metabox, or use `MinuteMedia\Ovp\Player::create()` in your theme. == Frequently Asked Questions == = Do I need a paid account? = Yes. New Minute Video embeds require a Minute Platform OVP account. Sendtonews embeds use the Company ID and keys stored in your WordPress settings. = Where is the Video Library available? = The **Video Library** tab appears in the embed modal on the **post editor** only (classic editor and block editor when editing posts). It is not available in the widget screen, customizer, or site editor. On those screens, use the **Playlists** tab or paste a shortcode in the **ShortCode** tab. = How do I embed a video or playlist? = On the **post editor**, open the embed modal from **Add Video** / **Add Playlist** (classic editor) or the **Minute Video** block, search the **Video Library**, and insert. The plugin adds a `[voltax]` shortcode for you. In the **widget** or **customizer**, open the embed modal and use the **Playlists** tab, or paste a shortcode in the **ShortCode** tab. You can also paste a shortcode directly anywhere: `[voltax id="CONTENT_ID"]` Optional: `playbackmethod` (`autoplay` or `clicktoplay`). When omitted, the player uses its own default. Organization and property are taken from **Settings > Minute Video**. = How do I attach a playlist? = Pick a playlist from the **Playlists** tab in the embed modal, or pass the playlist content ID in `[voltax id="PLAYLIST_ID"]`. New `[voltax]` embeds only need the content ID. = I have existing `[mm-video]` shortcodes. Do they still work? = Yes. Legacy `[mm-video]` shortcodes continue to render. New embeds should use the Video Library and `[voltax]`: `[mm-video id="CONTENT_ID" type="video"]` `[mm-video id="CONTENT_ID" type="playlist" playlist="PLAYLIST_ID"]` Optional legacy attributes: `player`, `playlist_id`, `player_id`, and `image` (preview thumbnail). A **Default Player ID** for legacy embeds appears under **Legacy Minute Platform Settings** on the settings page when one is already configured. = How do I embed sendtonews content? = Use the `[sendtonews]` shortcode or paste an `embed.sendtonews.com` oEmbed URL. Supported types: `single`, `float`, `player`, `full`, `barker`, `amp`, and `amplist`. `[sendtonews key="YOUR_KEY" type="player" cid="OPTIONAL_CID"]` = Does the plugin support AMP? = Yes. New `[voltax]` embeds and sendtonews content render as `amp-video-iframe` on AMP pages. Legacy `[mm-video]` shortcodes that use the player.js embed path render as `amp-minute-media-player`. = I have two video plugins active. Which should I keep? = Keep **Minute Video** (this plugin) and deactivate any legacy Minute video plugin shown in the admin notice. = How do featured videos work? = Pick a video in the **Featured Video Player** metabox on the post edit screen, or integrate the theme API. `MinuteMedia\Ovp\Player::create()` renders the player; the featured image area can also show the embed when configured. Hide the metabox via **Screen Options**, or limit which post types show it with the `voltax_featured_video_screens` filter. Sites still using the legacy `stnvideo_featured_video_screens` hook continue to work unless `voltax_featured_video_screens` is also in use. = Can I disable automatic AMP embed switching? = Yes. In `wp-config.php`, define `DISABLE_VOLTAX_AMP_SWITCH` as `true` before the plugin loads. This affects `[voltax]` and `[sendtonews]` embeds only. The legacy constant `DISABLE_S2N_AMP_SWITCH` is also honored. Legacy `[mm-video]` embeds always follow AMP detection. = How do I use a branded or no-ads property for one embed? = Add optional attributes on `[voltax]`. They override **Settings → Minute Video** for that embed only: `[voltax id="CONTENT_ID" property="BRANDED_PROPERTY"]` `[voltax id="CONTENT_ID" organization="ORG_ID" property="BRANDED_PROPERTY"]` To show an **Override Property** field on Featured Video, the Minute Video block, and the Minute Video widget (single videos), define `VOLTAX_ENABLE_OVERRIDE_PROPERTY` as `true` in `wp-config.php` before the plugin loads. Organization override is shortcode-only. = I am upgrading from the STN Video Player Selector plugin. What still works? = Existing STN and Minute Platform content continues to render without re-embedding: * `[sendtonews]` shortcodes and `embed.sendtonews.com` oEmbed URLs * Legacy `[mm-video]` shortcodes * Legacy **STN Video** block (`sendtonews/playerselector`) — loads in the editor; use **Replace with Minute Video** to upgrade to the `voltax/video` block * Legacy **STN Video** widget (`sendtonews`) — keeps rendering Smart Match and other STN players in sidebars/templates; use **Replace with Minute Video** to upgrade that widget instance * Legacy featured video meta from STN or Minute Video * New embeds use **Minute Video** block (`voltax/video`) and **Minute Video** widget (`voltax_video`) Deactivate the old STN or Minute Video plugins when prompted by the admin notice. OVP credentials under **Settings > Minute Video** are required for new Minute Video picker UI; legacy sendtonews embeds only need Company ID settings when already configured. = What embed types does the plugin render? = | Embed | Standard (non-AMP) | AMP | |-------|-------------------|-----| | `[voltax]` | Minute Video script from `players.voltaxservices.io` | `amp-video-iframe` → `mp.mmvideocdn.com/mini-player/amp/` | | `[mm-video]` (legacy) | `vms-players.minutemediaservices.com/{playerId}.js` | `amp-minute-media-player` (legacy sanitizer path) | | `[sendtonews]` `float`, `single`* | `embed.sendtonews.com/player3/embedcode.js` | `amp-video-iframe` → `amp.stnvideo.com/avi/` | | `[sendtonews]` `player` | `embed.sendtonews.com/player3/embedcode.js` | `amp-video-iframe` → `amp.stnvideo.com/avi/` | | `[sendtonews]` `full`, `barker` | `embed.sendtonews.com/player2/embedcode.php` | `amp-video-iframe` → `amp.stnvideo.com/avi/` | | `[sendtonews]` `amp`, `amplist` | n/a (AMP-only types) | `amp.stnvideo.com/avi/` | *`single` is treated as `float` for legacy compatibility. oEmbed: `embed.sendtonews.com` (STN) and `*.minutemediaservices.com` (Voltax). = Will minify plugins break embeds? = If you use JavaScript minification or combination plugins, exclude third-party player scripts from minify/combine/defer handling. Minute Video player and legacy STN player scripts are loaded asynchronously by design; minifying them often breaks playback. **Minute Video (`[voltax]`, Voltax block/widget)** * `players.voltaxservices.io/players/` **Legacy Minute Platform (`[mm-video]`)** * `vms-players.minutemediaservices.com/` (and other `*.minutemediaservices.com` player script hosts in use on your site) **sendtonews / STN (`[sendtonews]`, legacy STN block/widget, oEmbed)** * `embed.sendtonews.com/player1/responsive.js` * `embed.sendtonews.com/player2/embedcode.php` * `embed.sendtonews.com/player3/embedcode.js` * `embed.sendtonews.com/player4/embedcode.js` * `embed.stnvideo.com/player1/responsive.js` * `embed.stnvideo.com/player2/embedcode.php` * `embed.stnvideo.com/player3/embedcode.js` * `embed.stnvideo.com/player4/embedcode.js` Some older embeds or oEmbed responses may still reference `embed.stnvideo.com` mirror URLs even when the plugin outputs `embed.sendtonews.com`. Exclude both hostnames if minify issues persist. AMP embeds use `amp-video-iframe` (`mp.mmvideocdn.com`, `amp.stnvideo.com`) or `amp-minute-media-player` for legacy `[mm-video]`; these are not JavaScript files and do not need minify exclusions. = Where can I get help? = Contact your Minute account team or [sales@minutegroup.com](mailto:sales@minutegroup.com). == Developer reference == = wp-config constants = * `VOLTAX_DEBUG` — Enable admin/modal debug logging. Default false. * `DISABLE_VOLTAX_AMP_SWITCH` — When true, disables automatic AMP switching for `[voltax]` and `[sendtonews]` embeds. * `DISABLE_S2N_AMP_SWITCH` — Legacy STN constant; same behavior as `DISABLE_VOLTAX_AMP_SWITCH`. * `VOLTAX_ENABLE_OVERRIDE_PROPERTY` — When true, shows **Override Property** on Featured Video, the Voltax block, and the Voltax widget for single-video selections. `[voltax]` `property` and `organization` attributes always work without this constant. = Filters = Featured Video metabox post types (default: post, page). Use `voltax_featured_video_screens` for new integrations. `stnvideo_featured_video_screens` is a legacy fallback used only when the voltax filter has no callbacks. * `voltax_featured_video_screens` — `( $screens )` * `stnvideo_featured_video_screens` — legacy fallback; `( $screens )` Embed playback and extension hooks: * `voltax_embed_playbackmethod` — `( $playbackmethod, $content_id, $record, $options )` — `autoplay`, `clicktoplay`, or empty (omit override) * `voltax_amp_iframe_query_args` — `( $args, $content_id )` — AMP iframe query args * `voltax_oembed_request_params` — `( $params, $parsed, $url, $args )` — oEmbed request params * `voltax_oembed_parsed_url` — `( $result, $query_params, $url )` — parsed source URL fields Voltax oEmbed also forwards allowlisted optional query params from the pasted URL (for example `playbackmethod`) when present; use the filters above to inject or override. Extra HTML attributes on player embed divs (standard/non-AMP only). Return a space-separated attribute string. * `voltax_extra_player_div_attributes` — `( $attributes, $content_id, $post )` for `[voltax]` * `stnvideo_extra_player_div_attributes` — `( $attributes, $player_type, $key, $cid, $post )` for `[sendtonews]`; `$player_type` is always `single` Legacy `[mm-video]` AMP. Use `voltax_video_amp_attributes` for new integrations. `mm_video_amp_attributes` is a legacy fallback used only when the voltax filter has no callbacks. * `voltax_video_amp_attributes` — `( $attributes, $node )` * `mm_video_amp_attributes` — legacy fallback; `( $attributes )` only * `voltax_amp_force_sanitizer_placeholder` — `( $default, $record, $options )` * `voltax_amp_use_sanitizer_path` — `( $default, $record, $options )` oEmbed: * `voltax_oembed_base` — `( $default )` Voltax oEmbed service base URL (`/oembed/player`) = Embeds and third-party scripts = The plugin outputs shortcodes, player `