Videojs playlist test

The playlist can be included in any other separate container, e.g., under the player.
Demo HERE
Nuevo plugin includes built in unique option to show and play a playlist of videos. Nuevo playlist differs in layout from playlists offered by other players or other videojs plugins. By default, before video playback, the playlist is visible; however, you can order to hide it and show only the playlist icon. You can even hide the playlist container completely and show only playlist navigation arrows to play the next or previous video from the list.

The Nuevo playlist is advanced enough to support multiple video formats, including standard MP4 in multiple resolutions, HLS/m3u8, HLS/fragmented MP4, mpeg/DASH, audio, or even live video.
Videos from the playlist are played in auto-advance mode. One of the useful playlist functions is to set the repeat option. This will force the player to restart playback from the first playlist item once the last video is finished. If one of the videos from the playlist throws a media error (not supported, not connecting), the playlist will play the next video from the playlist seamlessly.

Example player and video playlist setup.

Code snippet
// Load player skin css stylesheet inside <head> section of your webite
href="//www.domain.com/videojs/css/videojs.min.css" rel="stylesheet">

// Load videojs and nuevo plugin javascript files on website
<script src="//www.domain.com/videojs/video.min.js"></script>
<script src="//www.domain.com/videojs/nuevo.min.js"></script>

// Setup video element on website
video id="video_1" class="video-js vjs-fluid" controls preload="auto" width="640" height="360" poster="//www.domain.com/poster.jpg"></video>

// Initialize player, nuevo plugin with playlist options
<script>
var player=videojs("video_1");
player.nuevo({
playlistUI: false, // set to disable playlist UI completely
playlistShow: false, // set to hide playlist UI on start
playlistAutoHide: false, // Disable playlist UI autohide on video play event
playlistNavigation: true , // set to show playlist navigation arrows
playlistRepeat: false, // set to repeat playlist playback
});
// Setup playlist media files
player.playlist([{
sources: [{
src: 'http://domain.com/video1.mp4',
type: 'video/mp4'
}],
title: 'video 1 title',
thumb: 'http://domain.com/video1_thumb.jpg', // Suggested size 80x45 px
duration: '03:40'
}, {
// Multiple resolutions mp4 video
sources: [{
src: '//domain.com/video2_720p.mp4',
type: 'video/mp4', res: '720', label: '720p'
}, {
src: '//domain.com/video2_360p.mp4',
type: 'video/mp4', res: '360', label: '360p', default
}, {
src: '//domain.com/video2_240p.mp4',
type: 'video/mp4', res: '240', label: '240p'
}],
tracks: [{
src: '//domain.com/captions_en.vtt',kind: 'captions', srclang:"en", label:"English", default:true
} , {
src: '//domain.com/captions_de.vtt',kind: 'captions', srclang:"de", label:"German"
} , {
src: '//domain.com/captions_es.vtt', kind: 'captions', srclang:"es", label:"Spanish"
}],
title: 'video 2 title',
thumb: 'http://domain.com/video2_thumb.jpg', // Suggested size 80x45 px
duration: '05:20',
slideImage: 'http://domain.com/video2_slide.jpg', // Optional progressbar thumbs slide image
}, {
// HLS m3u8 playlist file
sources: [{
src: 'http://domain.com/playlist.m3u8',
type: 'application/x-mpegURL'
}],
title: 'video 3 title',
thumb: 'http://domain.com/video4_thumb.jpg',
track:{kind: "metadata" ,src: "//domain.com/progressthumbs.vtt"},
duration: '03:40'
}
]);
</script>

Public functions available to interact with the playlist

There are several functions that you can use to control playlist programmatically on the run.
The available functions were described and tested on Playlist SDK demo page.