Search code examples
javascriptiframeyoutubeyoutube-apiyoutube-javascript-api

Black borders in YouTube player - Javascript API


I am adding a youtube video using YouTube Player API , based on the example provided from Getting Started.

Black borders(top and bottom) are my problem. And on YouTube Player Parameters I didn't find a parameter which can solve my problem.

Is there a way to hide the black borders, without CSS?

This is the code that I use(I only added playerVars in new YT.Player):

<!--1.The <iframe> (and video player)will replace this <div> tag.-->
<div id = "player">  <  div>

 <script>
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
        height : '390',
        width : '640',
        videoId : 'St_dIV8NIoc',
        //
        // here is where youtube player parameters are placed
        //
        playerVars : {
            controls : 0,
            cc_load_policy : 0,
            loop : 1,
            autoplay: 1,
            modestbranding: 0,
            rel: 0,
            showinfo: 0
        },
        events : {
            'onReady' : onPlayerReady,
            'onStateChange' : onPlayerStateChange
        }
    });
}

// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
    event.target.playVideo();
}

// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING && !done) {
        setTimeout(stopVideo, 6000);
        done = true;
    }
}
function stopVideo() {
    player.stopVideo();
}
    </script>

Solution

  • The example adds 30px to the standard-height(for the controls).

    When you don't show the controls use the standard-size(640x360)

    The standard-sizes are listed at https://developers.google.com/youtube/iframe_api_reference#Playback_quality