Obtener CódigoDemo

Hoy, aprenderemos de una manera fácil y sencilla, a bloquear un video de youtube hasta que el usuario lo comparta en su perfil de Facebook para poder verlo.

La idea es básica:

1. Creamos un javascript que tendrá la función «youtube()», la cuál hará que ésto funcione bien.
2. Creamos los estilos de el reproductor.
3. Adicionamos los js y css creados a nuestro HTML.

Ahora, teniendo la idea planteada, vamos a realizar nuestro archivo JavaScript que tendrá lo siguiente:

blocker.js

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/es_LA/all.js#xfbml=1&appId=586538018131285";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function() {
FB.init({
appId: '586538018131285', 
status: true,
xfbml: true
});
};

function bloquear_youtube() { 
FB.ui({
method: '../sharer.php?u='+document.URL+'&t',
},
function(response) {
if (response) {
$("#image, #play, #play-button, #sharebox").fadeOut('slow');
} else {
alert('Debes compartir para ver el video');
}
}
);
}

function sharebox(){

$("#sharebox").show();
}

function youtube (IDyoutube) {

var output1 = '<div id="bloquear_youtube"><div id="image" style="background-image: url(http://img.youtube.com/vi/' + IDyoutube + '/0.jpg)"><div id="play"><div id="play-button" onclick="sharebox();"></div></div><div id="sharebox" onclick="bloquear_youtube();"></div></div><iframe width="480" height="360" src="http://www.youtube.com/embed/'+IDyoutube+'?autoplay=0" frameborder="0" allowfullscreen></iframe></div>';
document.write (output1);
}

Como podemos ver, tenemos la función «youtube()» que su trabajo es crear el div contenedor del video, el iframe del video y la vista previa.
Luego, podemos observar que tenemos otra función llamada «bloquear_youtube()», la cuál se activará al hacer click en la vista previa y nos pedirá compartir. Si no lo compartimos, nos muestra una alerta de que debemos compartir para verlo.

Y por último, podemos vemos que se agrega el sdk de Facebook para que funcione correctamente.

blocker.css

.top_separacion
{
margin-top:20px;
}

#bloquear_youtube {
position:relative;
margin:0px auto;
cursor:;
overflow: hidden;
border:0px solid #000;
width:480px;
height:360px;
}

#bloquear_youtube iframe {
display:;
}
#bloquear_youtube #image {
width:100%;
height:100%;
background-size:100% 100%;
}
#bloquear_youtube #play {
position:absolute;
top:0;
left:0;
display:block;
width:480px;
height:360px;
background: url('play.png');
border:0px solid #000;
z-index:1;
}
#bloquear_youtube #play-button {
position:absolute;
cursor:pointer;
top:0;
left:0;
display:block;
width:480px;
height:360px;
}
#bloquear_youtube #play-button:hover {
    position:absolute;
    cursor:pointer;
    top:0;
    left:0;
    display:block;
    width:480px;
    height:360px;
    background: url('play-2.png');
}

#bloquear_youtube #sharebox {
    display:none;
    cursor: pointer;
position: absolute;
top: 0;
left: 0px;
width: 480px;
height: 360px;
background: transparent url("compartir_fb.png") no-repeat scroll center center;
border: 0px solid #000;
z-index: 2;
}


Él archivo de los estilos, no requiere mucha explicación, ya que sólo son los estilos de cada div para darle una bonita apariencia.

index.html

<html>
<head>

    <title>Tutoriales: Youtube Compartir Facebook</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta property="og:image" content="http://img.youtube.com/vi/GNF3KI7Po_o/default.jpg" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <link rel='stylesheet' href='blocker.css' type='text/css' media='all' />
    <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css' type='text/css' media='all' />
   <script src="blocker.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row">
<div class="col-md-12 top_separacion">
    <a href="" class="btn btn-danger">Regresar al Post</a>
    </div>

    <div class="col-md-12 top_separacion">
    <script>
    var video = "aHjpOzsQ9YI";
        youtube(video);
    </script>
    </div>
</div>
</div>
</body>
</html>

 

En nuestro index, añadimos el css y js creados además de usar la librería de jQuery 1.8+. Como podemos ver, tenemos un script que se ejecuta llamando a la función «youtube()». En var video = ‘aHjpOzsQ9YI’ debemos ingresar el id de nuestro video a compartir y éso sería todo. Se ha adicionado Bootstrap para los estilos de la demostración.

Obtener CódigoDemo

Williams Azabache Sarmiento

Que puedo decir...