Modern Video Player For WordPress

Modern Video Player For Wordpress



Modern Video Player is a powerful video and audio player that supports all kind of embeddable media, from HTML5 video formats to Youtube videos, playlists, channels, Vimeo videos, albums, channels to reading folders of video, audio or image files, Apple HLS and MPEG DASH live streaming, 360 virtual reality videos and images, embedded iframes like Daily motion, Wistia videos, Google maps and much more.

Player can serve different video quality for both desktop and mobile browers, display video subtitles in multiple langauges, control playback speed, audio languages for live streaming.

Modern Video Player also supports unlimited playlists and each playlist can contain unlimited number of videos. Each playlist can also contain mixed media inside, so we can have self hosted videos, Youtube videos and some images mixed inside the same playlist.

Player is packed with a huge amount of features and customization options from different layouts, skins, color customization, social sharing, external API, video advertisments (pre-roll, mid-roll, end-roll), annotations during video playback, private / password protected videos, Google analytics, Google Adsense.











Features and options:

  • Destop, mobile and tablet support (fully responsive)
  • Responsive layouts
  • Highly customizable with HTML and CSS
  • SVG icons
  • Only mp4 video format required for all browsers and devices
  • Supported content sources:
    • Self hosted video, audio, images
    • Self hosted virtual reality 360 video
    • Self hosted image panorama 360
    • Apple HLS Live Streaming
    • MPEG DASH Live Streaming
    • Youtube content:
      • Single video
      • Playlist
      • Channel
      • 360 video
    • Vimeo content:
      • Single video
      • Showcase (formerly Album)
      • Group
      • Channel
      • Video query (search)
      • 360 video
    • Folder playlist (video, audio)
    • Custom iframe (show any iframe into the player: Daily Motion, Wista, Google Maps…etc)
    • XML playlist
  • Password protected videos
  • Set any frame as poster for self hosted videos
  • Optional poster image for self hosted video, Youtube and Vimeo
  • Option to display poster image on mobile to preserve bandwidth
  • Subtitles support for any media (video, audio, Youtube, Vimeo) (vtt / srt)
  • Google Analytics tracking
  • Adverts support (pre-roll, mid-roll, end-roll). Play video, audio file on demand. Global adverts per playlist or individual per media
  • Annotation support (show / hide HTML elements including iframes over video area during playback). Global annotations per playlist or individual per media
  • AdSense support in player (monetize your video content!)
  • Show video preview on hover like Youtube thumbnails
  • active item and timestamp parameters in url
  • Video Chapters support (seek to specific time with presented seekbar and title)
  • Remember playback position on page reload (active video, current time).
  • Protect media and video urls with url encryption from source page.
  • Support for multiple instances in the same page
  • Option to mix different media types in the same playlist (to have self hosted videos, youtube videos, images etc in same playlist)
  • Stick to bottom on page scroll
  • Up next video feature
  • Load more videos on scroll to playlist bottom
  • Playlist position top / bottom / left / right / lightbox / grid / vertical / horizontal
  • Playlist options:
    • Scroll
    • Buttons
    • Mouse move
    • Wall / Grid layouts
    • None
  • Load more options on total scroll in playlist:
    • load more option for Youtube and Vimeo
    • load more option from WordPress database
  • Playlist is cached in browser to limit API requests For Youtube, Vimeo and other services and fast load on start
  • Playback options:
    • random playback
    • loop playlist
    • playback speed
    • start / end time
    • multiple playback qualities
    • load more videos on page scroll (Youtube, Vimeo)
    • mobile autoplay under certain conditions
    • on media end navigate to url
    • swipe video
    • Picture in picture
  • Breakpoints (hide specific buttons or player elements on small screens)
  • Autoplay when in viewport (full width video mode)
  • Theater mode (full width video mode)
  • Serve player as lightbox
  • Media aspect ratio (original / fit-inside / fit-outside)
  • Media end action (next, loop, rewind)
  • Keyboard navigation
  • Social sharing (facebook, twitter, tumblr… etc)
  • API methods to interact with the player on runtime
  • Callbacks events during video playback
  • Advert callbacks which fire when video ads play

jQuery version available here:

Updates / Changelog

VERSION 7.0 [17.12.2021]

 - [FIX] quickly opening between share / embed / info window could leave video playing in the background
 - [FIX] setting link on video advert pause opens url link twice  
 - [FIX] adsence data not saved in admin
 - [FIX] player description breakpoint not saved
 - [FIX] using search field in playlist scroll to playlist top when videos are filtered
 - [UPDATE] specify video quality for mobile for self hosted videos
 - [UPDATE] include video adverts in custom shortcodes
 - [UPDATE] simplify data-path for adverts
 - [UPDATE] option to load subtitles, chapters cross domain
 - [ADD] video embed screen (embed single video or whole playlist)
 - [ADD] age verification screen for video
 - [ADD] transcript window showing all subtitles (change language + search function)
 - [ADD] chapter window showing all chapters (alternative to chapter menu, + search function)
 - [ADD] statistics add graph for total plays last month
 - [ADD] statistics choose percent of the video watched to count as played
 - [ADD] show top plays statistics per country, show play data for each user 
 - [ADD] option to exclude specific videos from showing in Youtube or Vimeo feed (channel, playlist ..etc)
 - [UPDATE] option to specify midroll adverts start time in percentage 
 - [UPDATE] option to specify adverts skip time in percentage  
 - [ADD] support for IMA, VAST, VMAP, VPAID, SIMID 

VERSION 6.20 [2.11.2021]

 - [ADD] play videos from OneDrive (single or folder)

VERSION 6.16 [29.10.2021]

 - [UPDATE] option to load folder of 360 videos, google drive folder of 360 videos, amazon s3 folder of 360 videos
 - [FIX] watched percentage on runtime not updating

VERSION 6.16 [9.10.2021]

 - [FIX] previous chapter button showing always

VERSION 6.15 [20.9.2021]

 - [FIX] audio ad not showing image poster if set
 - [FIX] Apple IOS remember playback position time
 - [ADD] option to show chapter title in player top left 
 - [ADD] previous chapter button in controls
 - [ADD] Amazon S3 support with private buckets with presigned url 
 - [ADD] translate backend with textdomain  

VERSION 6.11 [13.8.2021]

 - [FIX] changing height of the vertical playlist when its below the player not working
 - [FIX] display poster on mobile active on desktop as well
 - [ADD] AirPlay support 

VERSION 6.1 [30.5.2021]

 - [UPDATE] support for clicktag ads during video playback
 - [FIX] local subtitles for live streaming (hls, dash)
 - [FIX] if autoplay in viewport unmutes video with user page interaction, mute icon is still showing in player controls   
 - [ADD] next chapter button 
 - [UPDATE] clicking chapter menu will auto start video with "show Controls Before Video Start" option 
 - [ADD] Chromecast support 
 - [UPDATE] PHP 8 compatibility 

VERSION 6.05 [28.4.2021]

 - [UPDATE] Show poster on pause works with autoplay true (when poster is not shown on start)
 - [ADD] load Google Drive folder of videos

VERSION 6.0 [14.4.2021]


 - [FIX] live streaming video quality menu duplicating on select
 - [FIX] audio not playing on ios
 - [FIX] audio visualizer disabled on ios and poster is used instead
 - [FIX] apmvp_video shortcode not working
 - [FIX] restrict download button on click scrolling to page top
 - [FIX] up next thumb time not registered
 - [FIX] global (per playlist) lock video time 0 not recognized 
 - [FIX] if main video had poster, poster was shown when main video resumed playing after mirroll ad finished
 - [FIX] thumbnail hover preview using only preview from active video for all playlist items
 - [FIX] watched percentage not updating live with player type lightbox
 - [FIX] prevent custom context menu over player video description

 - [UPDATE] when description over thumbnail is used, playlist position vertical right / bottom will automatically switch style description over thumbnail / description right of thumbnail for best visual appearance
 - [UPDATE] thumbnail hover preview can be gif or a small video
 - [UPDATE] limit playlist description text has been changed to number of lines to show instead of number of characters. 
 - [UPDATE] option to remember last used subtitle
 - [UPDATE] searching for videos in playlist will only play videos found by search
 - [UPDATE] chapter title moved below preview seekbar thumbnail
 - [UPDATE] show video poster before asking for password protected videos
 - [UPDATE] improvements on Sirius skin, gradient added below controls to better emphasize controls above the video
 - [UPDATE] add media type "custom" can now be added as HTML directly in admin (using external file is still available option) 
 - [UPDATE] new keyboard controls selector and keyboard controls only active when cursor above the player (now working with multiple players in page) 
 - [UPDATE] watched percentage now works with anonymous shortcodes
 - [UPDATE] new grid layouts

 - [ADD] mid-roll advert coming in... 123 seconds message
 - [ADD] support for vr stereoscopic videos 
 - [ADD] shortcode generator with all attributes for the player
 - [ADD] quick shortcode generator for video (or multiple videos) 
 - [ADD] when adding video in Playlist manager, option to add video to multiple playlists at once
 - [ADD] option to use PerfectScrollbar instead of mCustomScroll in playlist 
 - [ADD] pagination inside admin Edit playlist section (video list)
 - [ADD] audio slideshow as alternative to audio visualizer while audio plays
 - [ADD] allow only logged in users or specific user roles to view video without ads 
   [ADD] option to prevent user from seeking into not yet watched part of the video

VERSION 5.16 [19.2.2021]

 - [FIX] youtube not autoplay after we click resume screen
 - [FIX] vimeo default player not resume after we click resume screen
 - [FIX] youtube, vimeo single video use without api not saving
 - [FIX] video advert ending causes link to open if set on video

VERSION 5.15 [7.2.2021]

 - [FIX] add url to image ad not working
 - [UPDATE] annotation shown by default on small screen or when player is small in size ( can be adjusted in responsive breakpoints section ). 

VERSION 5.12 [22.12.2020]

 - [ADD] auto generate video thumbnails for videos uploaded in WordPress
 - [FIX] live stream video quality change
 - [FIX] Android click unmute button pauses video 

VERSION 5.11 [03.12.2020]

 - [FIX] vimeo player parameters incorrect
 - [FIX] playing videos from new grid skin not working 

VERSION 5.1 [18.11.2020]

 - [FIX] global settings not detected when standalone shortcode was used
 - [FIX] lock video user roles bug
 - [ADD] live video thumbnails for html5 video
 - [ADD] option to show video title above the player

VERSION 5.07 [26.10.2020]

 - [FIX] swipe not working
 - [FIX] subtitles not visible when video has advert

VERSION 5.06 [20.10.2020]

 - [UPDATE] improvements on embedding multiple players

VERSION 5.05 [18.9.2020]

 - [UPDATE] some database improvements

VERSION 5.02 [28.8.2020]

 - [FIX] navigation type (scroll, buttons, mouse move) missing from admin menu in Edit player section

VERSION 5.02 [13.8.2020]

 - [UPDATE] rename category/tag, prevent duplicate
 - [UPDATE] "Activate When Parent Visible" specify selector
 - [FIX] password field input not working

VERSION 5.01 [18.7.2020]

 - [FIX] statistics finish count not working
 - [UPDATE] play 360 video from hls or dash source

VERSION 5.0 [10.7.2020]

 - [FIX] javascript to footer not working with multiple players in page
 - [FIX] vimeo download video not working  
 - [FIX] playlist position grid / wall description style below thumbnail not working
 - [FIX] youtube playback rate not working 
 - [FIX] annotation close not removing correct annotation when showAnnotationsOnlyOnce 
 - [FIX] create tables on multisite
 - [FIX] create playlist from video statistics not working
 - [FIX] image ads not detect duration
 - [REMOVE] removed Youtube deprecated playback quality menu
 - [UPDATE] set poster for custom HTML
 - [UPDATE] ad_id can now be used with custom shortcode
 - [UPDATE] video statistics now working when no visible playlist is used 
 - [UPDATE] video statistics track video finish and download
 - [UPDATE] preloader visible before player loads
 - [UPDATE] if duration is used in playlist item thumbnail, duration is set after metadata if not available previously
 - [UPDATE] google analytics moved to callbacks
 - [UPDATE] redirect user to custom url on restricted videos 
 - [UPDATE] social sharing url for multiple players in page 
 - [ADD] support for shortcodes in annotations 
 - [ADD] sort videos by title in player
 - [ADD] display video percentage played in thumbnail
 - [ADD] attach category / tags to videos and filter videos with category / tags in frontend
 - [ADD] option to show video poster on pause   
 - [ADD] option to hide player until playlist starts loading
 - [ADD] option to prevent Vimeo player from tracking session data, including cookies
 - [ADD] custom javascript section (add your own custom javascript to player)
 - [ADD] new skins and templates (grid and lists of thumbnails, separated playlists from player)
 - [ADD] option to show multiple playlists in page at once 
 - [ADD] thumbnail grid pagination 

VERSION 4.57 [22.5.2020]

 - [FIX] javascript to footer not working with multiple players in page
 - [FIX] duration not saved with image ads

VERSION 4.56 [21.4.2020]

 - [FIX] mvp_ad, mvp_annotation table doesnt exist during installation
 - [FIX] few other admin fixes

VERSION 4.55 [18.4.2020]

 - [UPDATE] restrict video view / download for specific user roles
 - [FIX] global per playlist video password not working

VERSION 4.5 [12.4.2020]

 - [FIX] mediaEndAction poster keeps duplicating posters
 - [FIX] seekbar wrong calculation
 - [FIX] duration field not saved for image ads
 - [FIX] "spaced" layout having next / previous playlist buttons in wrong position
 - [FIX] video preloader hidden when resume screen is shown (so its now seen behind transparent resume screen)
 - [FIX] IOS require double tap on unmute button if controls hidden
 - [ADD] option to set custom image loader
 - [REMOVE] option to disable adverts
 - [CHANGE] video poster is always shown (if exist) regardless of autoplay
 - [UPDATE] remember playback position now works with adverts (it remembers main video position, adverts are always played if exist) 
 - [UPDATE] lock video time is now available as global playlist option
 - [ADD] player custom classes
 - [UPDATE] support for unlimited number of ads before and after main video
 - [ADD] option to randomize ads
 - [ADD] option to show video duration in thumbnail and upnext
 - [FIX] up next thumbnail not showing correctly with random play
 - [ADD] up next / watched thumbnail over next and previous buttons
 - [ADD] coming next screen between videos (new mediaEndAction)
 - [ADD] related videos screen after video ends (new mediaEndAction). Show related videos from other playlists and load playlist on demand. 
 - [ADD] video play statistics with backend (count plays and time played), display statistics in frontend
 - [ADD] chapters menu list and button in controls to show chapter menu
 - [UPDATE] option to display video controls before video starts including chapter selector (requires video duration on self hosted video) 
 - [UPDATE] menu items bigger padding for better mobile usability
 - [ADD] display thumbnail list of playlists in frontend and on playlist select, load selected playlist in player
 - [ADD] player settings can now be passes with query string (parameters begins with "mvp-")
 - [ADD] create playlist from query string parameters 
 - [UPDATE] share specific video in playlist when used with social networking (direct link to video and current time)
 - [UPDATE] right click context menu update, share url to specific video in playlist
 - [UPDATE] option to provide multiple youtube api keys
 - [ADD] cache playlist in browser to limit api requests for Youtube and Vimeo services

VERSION 4.0 [1.3.2020]

 - [ADD] unmute button to unmute the video 
 - [ADD] optional search field in playlist
 - [UPDATE] use your own input search field for playlist items and specify dom selector 
 - [ADD] optional closed caption button in controls to toggle caption state
 - [UPDATE] autoplay in viewport multiple players like facebook
 - [ADD] open player in lightbox (with or without playlist)
 - [ADD] init player on dom selector click (and open specific video)
 - [ADD] optional button to close player minimize
 - [ADD] display collections from Vimeo (on demand), Vimeo user videos, Vimeo folders
 - [ADD] LIVE indicator in controls for live streams (auto or manual)
 - [ADD] option to disable seekbar to prevent skipping video
 - [ADD] only logged in users can download video (non logged in users are presented with login or register message)
 - [ADD] lock some videos, only logged in users can watch specific videos (or partial watch, for example first 15 seconds)
 - [ADD] callback beforeLoginScreen called before login screen opens 
 - [ADD] optional resume playback position prompt - ask user to continue watching where left off or start from the beginning
 - [FIX] parse vtt with multiline of text

VERSION 3.71 [16.2.2020]

 - [FIX] admin css tabs not working
 - [FIX] video quality change not working when Encrypt media paths is used

VERSION 3.71 [31.1.2020]

 - [UPDATE] cleaned double autoPlay setting (no more forceMutedAutoplay), autoPlay settings is now reponsible for muted autoplay

VERSION 3.71 [21.1.2020]

 - [UPDATE] player now retains layout in page while minimize on scroll 
 - [UPDATE] Google Analytics update
 - [UPDATE] new setting: combinePlayerRatio (boolean) keeps video ratio same when playlist is opened / closed in vlb, vrb layouts
 - [ADD] option to hide playlist on player minimize 
 - [ADD] restrict player width on minimize
 - [ADD] option to sort media loaded from folder
 - [ADD] set playback rate values
 - [ADD] load json playlist
 - [ADD] load any HTML into the player (ex. Facebook videos, Google maps etc..)

VERSION 3.56 [3.1.2020]

 - [ADD] option to activate the player when parent visible 
 - [UPDATE] retrieve media from database in ASC / DESC order

VERSION 3.55 [26.12.2019]

 - [ADD] video widget
 - [ADD] gutenberg block

VERSION 3.52 [5.12.2019]

 - [UPDATE] build multiple videos using shortcode

VERSION 3.51 [1.12.2019]

 - [FIX] duplicate player, playlist function jquery not defined

VERSION 3.51 [25.11.2019]

 - [FIX] hide player controls after image start with no duration, and after iframe shown in player

VERSION 3.51 [16.11.2019]

 - [UPDATE] toggle subtitle font size with keyboard controls (+/-)

VERSION 3.5 [16.11.2019]

 - [FIX] lightbox not opening when poster set
 - [FIX] truncate playlist description not working if playlist is closed on start
 - [UPDATE] updates to player resizing (player never larger than viewport)
 - [UPDATE] replace wordpress default video (html5, youtube, vimeo) 
 - [ADD] theater mode

VERSION 3.42 [4.11.2019]

 - [UPDATE] new import playlist / player option now works without LOAD DATA

VERSION 3.4 [24.10.2019]

 - [ADD] option to show poster after video end screen (self hosted, youtube, vimeo)
 - [ADD] option to skip poster 
 - [ADD] export / import player to csv (requires user FILE permission in database)

VERSION 3.3 [14.10.2019]

 - [ADD] new optional buttons in controls (rewind, skip backward, skip forward)
 - [ADD] new buttons in advert (volume, fullscreen)
 - [UPDATE] set default video quality on mobile
 - [ADD] more global playlist options (active subtitle, playback rate, start / end time)
 - [ADD] load more option for self hosted media
 - [ADD] option to choose Youtube and Vimeo thumbnail size
 - [ADD] audio visualizer as alternative to poster showing while audio plays
 - [ADD] image support
 - [FIX] Vimeo sort order

VERSION 3.15 [18.9.2019]

 - [UPDATE] Youtube api quota optimization

VERSION 3.1 [16.9.2019]

 - [UPDATE] admin updates

VERSION 3.01 [2.9.2019]

 - [UPDATE] small code improvements

VERSION 3.0 [28.8.2019]

 - [UPDATE] all new skins
 - [ADD] change css colors in backend 
 - [UPDATE] code improvements

VERSION 2.65 [14.6.2019]

 - [ADD] seek to chapter start option (when chapters are used) 
 - [UPDATE] improved mouse inactiving over player
 - [FIX] adverts not working with youtube, vimeo videos without data-noapi attribute
 - [ADD] option to set sticky video only if video is playing 

VERSION 2.61 [13.4.2019]

 - [FIX] click on playlist item cancels load more on total scroll

VERSION 2.6 [23.3.2019]

 - [FIX] fixed youtube single video list direct shortcode

VERSION 2.59 [15.3.2019]

 - [ADD] playlist is stored in browser to limit API requests for Youtube, Vimeo and other services

VERSION 2.58 [6.2.2019]

 - [ADD] support for Vimeo private unlisted videos
 - [UPDATE] improved embedding of multiple players in same page

VERSION 2.57 [27.1.2019]

 - [ADD] load Youtube channel by username, load Vimeo album by username

VERSION 2.56 [3.12.2018]

 - [ADD] set any frame as poster for self hosted video 
 - [UPDATE] some controls layout improvements

VERSION 2.55 [1.12.2018]

 - [ADD] picture in picture option 
 - [ADD] mpeg dash support
 - [ADD] new controls style
 - [ADD] chapter markers in seekbar for adverts
 - [UPDATE] small code improvements

VERSION 2.5 [20.11.2018]

 - [UPDATE] direction RTL compatibility
 - [ADD] hover preview for playlist thumbnails (gif)
 - [ADD] new player skins
 - [ADD] option to change any player icon with svg icons
 - [ADD] custom right click context menu
 - [ADD] option to show any playlists in page with shortcode so they can be loaded with api on runtime
 - [UPDATE] auto sort break points from low to high
 - [UPDATE] seekbar and time auto hide for Youtube live stream videos
 - [FIX] small bug fixes

VERSION 2.46 [18.10.2018]

 - [UPDATE] dynamic subtitle font size 
 - [UPDATE] option to encrypt media url directly in shortcode
 - [ADD] overwrite default wordpress mp4 video shortcode 

VERSION 2.45 [4.10.2018]

 - [ADD] new playlist positions (vertical left, horizontal top)
 - [ADD] new sharing sites (reddit, pinterest, digg, linkedin)
 - [ADD] optional published date in playlist items for Youtube and Vimeo (with title and description)
 - [FIX] wrong tooltip position in lightbox mode
 - [FIX] wrong grid gutter calculation

VERSION 2.42 [29.9.2018]

 - [FIX] first track not displayed in playlist with playlist_id shortcode
 - [FIX] having global playlist ads/annotations enabled (but not defined) prevented media ads/annotations to show
 - [FIX] having pre roll advert preventing annotations to show on main media

VERSION 2.41 [27.9.2018]

 - [ADD] Player quick demo importer with shortcodes

VERSION 2.4 [26.9.2018]

 - [ADD] AdSense support in player 
 - [ADD] automatically generate Vimeo download links
 - [ADD] export / import playlist to csv (requires FILE priviledge or local-infile=1)
 - [ADD] load playlists based on post categories and tags (taxonomy)
 - [ADD] password protected content (global per playlist or individual)
 - [ADD] Auxiliary shortcodes for creating players and playlists on the fly
 - [ADD] added Player API methods and Events section in admin
 - [ADD] custom annotation positions and margins over player, default annotation inactive opacity and close button positions
 - [ADD] option to minimize player to page bottom on scroll (limited to one player in page)
 - [ADD] option to copy & move tracks between playlists and filter tracks in playlist admin
 - [ADD] active item and timestamp parameters in url
 - [ADD] option to enable/disable adverts/annotations individually
 - [ADD] optional poster image for Youtube and Vimeo
 - [ADD] option to display poster image on mobile to preserve bandwidth
 - [ADD] WhatsApp share button
 - [UPDATE] added optional scrollbar for description and embed area instead of browser default one
 - [UPDATE] improved iframe loading in annotations
 - [FIX] small bug fixes in frontend and backend

tags: video gallery, audio, fullscreen video, html5, image, video player, responsive, video streaming, vimeo, youtube