Nuevo plugin documentation

Player Setup

Video js player with Nuevo plugin setup does not differ much from one described on Video js website. It's a matter of seconds to get the player up and working on your web page.

1. Include the Video.js CSS stylesheet file in the head of your page.

You need to include videojs.css stylesheet file in the head section of your website page.
Code snippet
<link href="//www.domain.com/videojs/skins/nuevo/videojs.min.css" rel="stylesheet">
If you find trouble with correct css styles, you may try to load skin stylesheet in the <body> section of your website page.

2. Setup HTML5 video tag on page

Setup HTML5 video tag to embed your video. You must set unique 'id' attribute for video element, different for each next player instance on same web page. Include/exclude video attributes as you would do for standard HTML5 video element.

Code snippet
<video id="example_video_1" class="video-js" controls preload="auto" playsinline width="640" height="360" poster="//www.domain.com/path/to/poster.jpg">
<source src="//www.domain.com/path/to/video.mp4" type="video/mp4" />
<source src="//www.domain.com/path/to/video.webm" type="video/webm" />
</video>
Keep playsinline attribute to play video inline on Apple phones.
Keep preload="auto" attribute to avoid trouble with Ima, VAST and VPAID ads.

Videojs offers three predefined classes that makes easy to keep video element aspect ratio.
  • vjs-fluid Video keeps original aspect ratio
  • vjs-16-9 - Video keeps 16:9 aspect ratio
  • vjs-4-3 - Video keeps 4:3 aspect ratio
  • vjs-fill - Video fills the parent element
Code snippet
<video id="example_video_1" class="video-js vjs-fluid" controls preload="auto" playsinline width="640" height="360" poster="//www.domain.com/path/to/poster.jpg">

3. Load video.js + nuevo.js javascript files.

Code snippet
<script src="//www.domain.com/videojs/video.min.js"></script>
<script src="//www.domain.com/videojs/nuevo.min.js"></script>
Remember to include both script within website <body> element.
You can use Fastly CDN hosted video.js latest version minimized file.
Code snippet
<script src="//vjs.zencdn.net/8.2.0/video.min.js"></script>
<script src="//www.domain.com/videojs/nuevo.min.js"></script>
You can load player related javascript files below video element or above (faster method).

Once player javascript loaded and video element defined you can initialize player with nuevo plugin, including plugin options.
Code snippet
<script>
var player=videojs("example_video_1");
player.nuevo({
// plugin option1, plugin option2, plugin option3
});
</script>
Remember to keep multiple options coma separated.
You can also define global options javascript array and assign it later for nuevo plugin in short way.
Code snippet
<script>
var player=videojs("example_video_1");
var nuevo_plugin_options = { option1: value, option2: value, option3: value };
player.nuevo( nuevo_plugin_options );
</script>
Another way to initialize the player with nuevo plugin is:
Code snippet
<script>
var nuevo_plugin_options = { option1: value, option2: value, option3: value };
var player=videojs("example_video_1",{plugins: { "nuevo": nuevo_plugin_options } });
</script>

Multiple resolution video

Nuevo plugin has built-in feature to define multiple video sources encoded at different resolution and an option to switch between them later.

Set patameter `default` for video that you want to play first. Videos with resolution 720p or higher are marked with HD small icon.
Code snippet
<video id="example_video_1" class="video-js" controls preload="auto" width="640" height="360" poster="//www.domain.com/path/to/poster.jpg">
<source src="//www.domain.com/path/to/video_240p.mp4" type="video/mp4" res="240" label="240p" />
<source src="//www.domain.com/path/to/video_360p.mp4" type="video/mp4" res="360" label="360p" />
<source src="//www.domain.com/path/to/video_480p.mp4" type="video/mp4" res="480" default label="480p"/>
<source src="//www.domain.com/path/to/video_720p.mp4" type="video/mp4" res="720" label="720p"/>
</video>
If you offer video quality switch between 2 video files only, where one is of some lower quality and second is of HD quality, instead of numeric resolution label you can use "SD" and "HD" labels (see example below.)
Code snippet
<video id="example_video_1" class="video-js" controls preload="auto" width="640" height="360" poster="//www.domain.com/ath/to/poster.jpg">
<source src="//www.domain.com/path/to/video_SD.mp4" type="video/mp4" default res="SD" label="SD" />
<source src="//www.domain.com/path/to/video_HD.mp4" type="video/mp4" res="HD" label="HD" />
</video>

For HTTP Live Streaming (HLS) and MPEG-DASH Nuevo plugin populates quality button and menu automaticallu, if only master playlist (m3u8, mpd) includes reference to multiple, different resolution playlists.

Check Adaptive Bitrate HLS and MPEG-DASH playback examples using videojs and Nuevo plugin.


Nuevo plugin options

  • logo (undefined) - logo image path
  • logocontrolbar (undefined) - logo image path for small logo in controlbar
  • logourl (undefined) - URL to go on logo click
  • logoposition (LT) - logo position (LT - top left, RT - top right)
  • target (_blank) - set player links target "_self" or "_blank" to open player links in same or new window.
  • relatedMenu (true) enable/disable related option in settings menu (true/false)
  • shareMenu (true) enable/disable sharing/permalink/embed option in settings menu (true/false)
  • rateMenu (true) enable/disable rate (speed) option in settings menu (true/false)
  • zoomMenu (true) enable/disable zoom option in settings menu (true/false)
  • settingsButton (true) set false to disable settings button and settings menus
  • controlbar (true) set false to hide control bar.
  • iosFullscreen ('native') set 'pseudo' to use pseudo fullscreen on iOS devices.
  • androidLock (false) set true to lock landscape fullscreen on Android devices, just like it is on Netflix player.
  • fullscreenButton (true) set this option to false to disable fullscreen on double click and hide fullscreen button in control bar.
  • pipButton (true) set this option to false to hide PictureInPicture button in control bar.
  • ccButton (true) set this option to false to hide Captions button in control bar Read more
  • buttonRewind (true) enable/disable rewind controlbar button. It is showing by default (true)
  • buttonForward (false) enable/disable rewind controlbar button. It is hidden by default (false)
  • mirrorButton (false) enable/disable mirror controlbar button used to switch video view
  • theaterButton (false) enable/disable theater mode button
  • tooltips (true) - set false to disable button tooltips in control bar
  • contextMenu (true) - set this option to false to hide context menu or setup own menu on right click
  • hdicon (true) - by default the player shows HD icon based on video resolution in quality menu. Set this option to false if you prefer not to show HD icon.
  • chapterMarkers (true) - by default shows chapter markers with tooltips if media chapters defined. To hide markers, set this option to false
  • startTime (undefined) start video at any time position
  • resume (false) enable/disable option to resume video playback from last time position it was left
  • endAction (undefined) display sharing related container when video ends (share/related).
  • related (undefined) - javascript array of related videos.
  • video_id (null) - unique ID to identify video for any purpose.
  • title (undefined) - title of video for sharing options
  • url (auto) - website URL with video. If not defined - document URL assigned automatically.
  • embed (N/A) - video embed code to share.
  • videoInfo (false) - set "true" to show overlay video title with optional link
  • zoomWheel (false) - set "true" to enaable ZOOM using mouse wheel on video in desktop browser and eeasy zoom slideron touchscreen
  • zoomInfo (true) - set "false" to hide ZOOM info in top-left corner when video zoomed
  • limit (0) - watch limit
  • limiturl (undefined) - watch limit URL to go on click
  • limitimage (undefined) - watch limit image URL to display over video
  • slideImage - Sprite image URL to display individual video thumbs over player's timeline.
  • target (_self) - Set _blank to open any URL through player in new window. Necessary for "iframed" player.
  • iosFullscreen (native) - Set "pseudo" to use pseudo fullscreen on iOS device instead of native fullscreen.
  • androidLock (false) - Set true to lock Android in landscape mode when fullscreen requested.
  • touchControls (true) - Set false to hide big icon controls (play,rewind,forward) on touch device.
  • touchRewindForward (true) - Set false to hide big frorward and rewind buttons on touch devices.

Nuevo plugin methods and events

Nuevo plugin fires "nuevoReady" event when all controls and plugin functions loaded. Ready method is familiar to anyone who has used jQuery before.
Code snippet
<script>
player.on('nuevoReady', function(){
this.addClass('my-class');
});
</script>
Nuevo plugin fires resolutionchange event on change with resolution label parameter. You can use it for any purpose through javascript code.
Code snippet
<script>
player.on('resolutionchange', function(event, data){
var resolution = data.res;
var video_id = data.id;
);
</script>
One of most valuable Nuevo plugin options is method to change video source programatically. It was described in detail on our blog page change video source and captions.
Code snippet
<script>
player.changeSource( {src: "//www.domain.com/videos.mp4", type: "video/mp4"} );
</script>
Another unique Nuevo plugin options is method to load VTT chapters or captions programatically. Yoy can call this function on video "loadeddata" event.
Code snippet
<script>
player.on('loaadeddata', function(){
player.loadTracks( { kind:"chapters", src:"//www.domain.com/chapters.vtt", srclang:"en"} );
player.loadTracks( {kind:"captions", src:"//www.domain.com/vaptions.vtt"),srclang:"en",label:"English"});
});
</script>

Playlist methods and events.

Playlist media change event with new item ID.
Code snippet
<script>
player.on('playlist_change', function(event,data) {
var new_item = data.id;
});
</script>
  • player.playlist.list(); - method to get playlist list.
  • player.playlist.next(); - method to play next playlist item.
  • player.playlist.previous(); - method to play previous playlist item.
  • player.playlist.first(); - method to paly first playlist media item.
  • player.playlist.last(); - method to paly first playlist media item.
  • player.playlist.currentItem(); - method to get current playlist Index.
  • player.playlist.currentItem(id); - method to set new video with provided playlist Id.

Some other methods charateristic for Nuevo plugin.

  • player.forward(); - method to forward 10 seconds in video time.
  • player.rewind(); - method to rewind 10 seconds in video time.
  • player.share(); - method to toggle sharing container.
  • player.related(); - method to toggle related videos container.
  • player.reconnect(); - method to reload (reconnect) video source.

Player language

Videojs player is available in multiple languages. Since Nuevo plugin includes many new features, you may want to update language tranalations for new text strings.This tutorial shows how to extend certain language file, load and use language localized strings.