Videojs 5 - Load Video Dynamically

Videojs 5 - Load Video Dynamically

by fredd man

HTML

<script src="https://vjs.zencdn.net/5.11.9/video.js"></script>
<script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
<script src="https://cdn.rawgit.com/videojs/videojs-youtube/master/src/Youtube.js"></script>
<link rel="stylesheet" href="https://vjs.zencdn.net/5.11.9/video-js.css">
<div
class="contenedor">
<script type="text/javascript" src="https://embed-ssl.wistia.com/deliveries/9b0ed3b4fd7a2eb3049b51cd26b48b9c0300e7b9.bin?disposition=attachment&filename=jwplayer6.10.js"></script>
        <script type="text/javascript">jwplayer.key = "Q1Ft5yFT0nJBlCFnQAvJ7nC+uwr628IgJBzoCAnnn3tGVqUiRjtloYRetCh+EbI0";</script>
<div id="emergencycouplesatu"></div>
<script type="text/javascript">
    jwplayer("emergencycouplesatu").setup({
   playlist: [
<!--0001-->
       {sources: [
{file: "https://www.youtube.com/watch?v=az87rel5RRA"},
    
        { file: "" }],
image: "",
        title: "Workout Mix 2020 #58",
        
tracks: [{file: "",label: "spanish",kind: "captions","default": true},{file: "",label: "English",kind:                 "captions",}]}	      
    ],

autostart: true,
controls: true,
play: false,
  mute: false,
  stretching : "exactfit",
    events:{
        onBufferChange: function(callback) {
              //  console.log(callback.buffer);
               // console.log(jwplayer("emergencycouplesatu").getBuffer());
            }
        },
    width: 600,
	height: 500,
    listbar: {
      position: "right",
      size: 200,
    }
  });
</script>
</div>

  <h2>Load Video:</h2>
  <form id="vsg-loadvideo">
    Video URL:
    <br>
    <input type="text" name="vidurl" id="vsg-vurl" style="width:450px" value="https://www.youtube.com/watch?v=xDMP3i36naA" placeholder="Enter Youtube URL">
    <br>
    <br>
    <input type="submit" value="Load video">
  </form>

CSS

#instructions {
    max-width: 640px;
    text-align: left;
    margin: 0px auto;
  }
  
  #instructions textarea {
    width: 100%;
    height: 100px;
  }
  /* Show the controls (hidden at the start by default) */
  
  .video-js .vjs-control-bar {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  /* Make the demo a little prettier */
  
  body {
    background: #222;
    text-align: center;
    color: #aaa;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    background: radial-gradient(#333, hsl(200, 30%, 6%));
  }
  
  a,
  a:hover,
  a:visited {
    color: #76DAFF;
  }

JavaScript

/* VIDEOJS */
// declare object for video
var emergencycouplesatu, poster;
/*
vgsPlayer = videojs('vid1', {
  techOrder: ['youtube'],
  autoplay: false,
  sources: [{
    type: "video/youtube",
    src: "https://www.youtube.com/watch?v=xjS6SftYQaQ"
  }]
});
*/

vgsPlayer = videojs('vid1', {
  techOrder: ["html5", "flash", "youtube"],
  autoplay: false,
	youtube: { "iv_load_policy": 3 },
  sources: [{
      type: "video/mp4",
      src: "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"
    }]
});

vgsPlayer.poster('https://img.youtube.com/vi/aqz-KE-bpKQ/maxresdefault.jpg');
//vgsPlayer.poster("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")

//videojs("vid1").ready(function() {
//  vgsPlayer = this;
//});

jQuery(function($) {

  // vsgLoadVideo("https://www.youtube.com/watch?v=r1H98REH0c0");
  // Video on page load

  //jQuery(document).ready(function($) {

  $("#vsg-loadvideo").submit(function(e) {
    e.preventDefault();

    var vidURL = $("#vsg-vurl").val();

    vsgLoadVideo(vidURL);

  });

}); // jQuery(function($) END


function emergencycouplesatu(vidURL, poster) {

  if (ytVidId(vidURL) !== false) {
    ext = "youtube"
    console.log('Youtube');

    // alert(getId(vidURL)) // Youtube video ID
    //var yvID = getId(vidURL);
    //vidURL = "https://www.youtube.com/watch?v="+yvID;

  } else {

    //$("#vid1 iframe, #vid1 .vjs-iframe-blocker").remove();

    if (!ext) ext = "mp4";
    var ext = vidURL.split('.').pop();
  }

  console.log(ext);

  vgsPlayer.src({
    //"techOrder": ['youtube'],
    "type": "video/" + ext,
    "src": vidURL
		//"youtube": { "iv_load_policy": 3 }
  });
  if (poster) vgsPlayer.poster(poster);
  vgsPlayer.play();

}


function emergencycouplesatu(url) {
  //var p = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/;
  var p = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
  return (url.match(p)) ? RegExp.$1 : false;
}

/**/
function getId(url) {
  var regExp =...