oEmbed devuelve los datos en formato JSON o XML. Eso está bien con los lenguajes del lado del servidor como PHP y Python. Pero para Javascript este es un problema. Si hay un problema, por lo general se encuentra una solución, y me encontré con Embedly un servicio por desgracia no es gratis .
Con la intención de invertir dinero, y por otra aplicación de Google AppEngine Python, se vio una oportunidad. Para hacer un servicio que resulta oEmbed de YouTube a formato de Javascript (JSONP). Y todo ello con la memoria caché, etc por lo que debe ser capaz de manejar algo de tráfico. Después de algunos códigos que estaba listo y trabajando http:// oembed-js. Appspot.com /? Url = [URL de YouTube para incrustar] [& callback = foo]...
En los blogs de Wordpress, al comentar un artículo, el usuario sólo puede escribir / pega el URL de YouTube en el texto del comentario, y se convirtió en un vídeo incrustado. Sorpresa, no en Blogger. En algunos blogs se trata de un rollo. Ahora con el nuevo, javascript libre, / servicio de jQuery compatibles GAE oembed js-esto fue posible en Blogger.
(Por MS-potilas)
VER BLOG DE EJEMPLO
Con la intención de invertir dinero, y por otra aplicación de Google AppEngine Python, se vio una oportunidad. Para hacer un servicio que resulta oEmbed de YouTube a formato de Javascript (JSONP). Y todo ello con la memoria caché, etc por lo que debe ser capaz de manejar algo de tráfico. Después de algunos códigos que estaba listo y trabajando http:// oembed-js. Appspot.com /? Url = [URL de YouTube para incrustar] [& callback = foo]...
En los blogs de Wordpress, al comentar un artículo, el usuario sólo puede escribir / pega el URL de YouTube en el texto del comentario, y se convirtió en un vídeo incrustado. Sorpresa, no en Blogger. En algunos blogs se trata de un rollo. Ahora con el nuevo, javascript libre, / servicio de jQuery compatibles GAE oembed js-esto fue posible en Blogger.
(Por MS-potilas)
VER BLOG DE EJEMPLO
- Para que el video quede incrustado en el comentario solo se debe agregar la url del video de la siguiente forma
http://www.youtube.com/watch?v=KagvExF-ijc
o
[video=http://www.youtube.com/watch?v=KagvExF-ijc]
http://youtu.be/KagvExF-ijc
o
[video=http://youtu.be/KagvExF-ijc]
- Ve a Plantilla, y das click en Edicion de HTML.
- Luego antes de </head> pega lo siguiente.
<script src='http://code.jquery.com/jquery-latest.js' type='text/javascript'></script>
<script type='text/javascript'>
//<![CDATA[
// Embed youtube videos in Blogspot comments by MS-potilas 2012. al español por FUTUdownloads 2012
// See http://yabtb.blogspot.com/2012/03/embed-youtube-in-blogger-comments.html
//
// if oetag=0, just use video urls like:
// http://www.youtube.com/watch?v=12345678901
// surrounded by white space (video tag can be used, too)
// if oetag=1 (for nerdy blogs?), use syntax:
// [video=http://www.youtube.com/watch?v=12345678901]
// config:
var oetag = 0; // see above
var oetagname = "video"; // [video=zzz], maybe you like "embed" or "youtube" more?
var oelazy = -1; // -1 detect, 0 = normal, 1 = lazy (needs lazy load hack)
//
function oe_loadscript(filename) {
var scr=document.createElement('script');
scr.setAttribute("type","text/javascript");
scr.setAttribute("src",filename);
document.getElementsByTagName("head")[0].appendChild(scr);
}
function oe_jumptohash() { // reposition to anchor
window.scrollTo(0, $("#"+window.location.hash.replace(/^#/, "")).offset().top);
}
var oe_tid;
var oe_elems = {};
//
function oembed_callback(response) {
var resp = response;
revurl = resp.url.split("").reverse().join("");
html = oe_elems[response.callID].html();
ee = $(resp.html);
w = parseInt(ee.attr("width"));
h = parseInt(ee.attr("height"));
if(oelazy==1) { // convert to lazy load
src = ee.attr("src");
src += ((src.indexOf("?")==-1) ? "?" : "&") + "autoplay=1";
ee.attr("src", src);
ee.attr("style", "vertical-align:top;");
htm = $("<div/>").append(ee).html();
htm = $('<div/>').text(htm).html().replace(/"/g,'"');
resp.html = '<a href="'+resp.url+'" class="youtube-lazy-link" style="width: '+w+'px; height: '+h+'px; background: #000 url('+resp.thumbnail_url+') center center no-repeat;" onclick="$(this).replaceWith(\''+htm+'\');return false;"><div style="width:'+(w-4)+'px;height:'+(h-4)+'px;" class="youtube-lazy-link-div"></div><div class="youtube-lazy-link-info"><b>'+resp.title+(resp.playlist ? '</b> [playlist]' : '</b>')+'<br /><small>by '+resp.author_name+'</small></div></a>';
}
htmlx = html.replace("[" + oetagname + "="+resp.url+"]", " " + resp.url + " ");
htmlx = htmlx.replace("[" + oetagname + "="+resp.url+" ]", " " + resp.url + " ");
htmlx = htmlx.replace('"'+resp.url+'"', '"'+revurl+'"'); // trick to preserve href="url"
htmlx = htmlx.replace(resp.url, '<div style="height:'+h+'px;" class="oembed youtube">'+resp.html+'</div>')
htmlx = htmlx.replace('"'+revurl+'"', '"'+resp.url+'"'); // trick to preserve href="url"
if(html != htmlx) {
oe_elems[response.callID].html(htmlx);
if(window.location.hash.replace(/^#/, "").length > 0) {
if(oe_tid) window.clearTimeout(oe_tid);
oe_tid = window.setTimeout("oe_jumptohash()", 1000);
}
}
}
function oembed_yt(url, width, callID) {
src = "http://oembed-js.appspot.com/?url=" + encodeURIComponent(url) + "&callback=oembed_callback&callID=" + encodeURIComponent(callID);
if(width) src = src + "&maxwidth=" + width + "&maxheight=" + width;
oe_loadscript(src);
}
$(document).ready(function() {
det=$('<div class="youtube-lazy-link-div" />');
$("body").append(det);
if(det.css("position")=="absolute") {
if(oelazy != 0) oelazy=1;
}
else oelazy = 0;
det.remove();
window.setTimeout(function() {
var callID=0;
$(".comment-content,.comment-body,.comment-body-author").each(function() {
html = " " + $(this).html() + " ";
if(oetag)
matches = html.match(new RegExp("\\["+oetagname+"=(https?:\\/\\/[^\\s<\\/]*youtu\\.*be[^\\]]+)", "g"));
else
matches = html.match(/([>\s^]|\[\w+=)(https?:\/\/[^\s<\/]*youtu\.*be[^\s<\]]+)/g);
if(matches && matches.length) {
for(var i=0;i<matches.length;i++) {
url = matches[i].match(/https?:\/\/[^\s<\/]*youtu\.*be[^\s<\]]+/);
oe_elems[callID] = $(this);
oembed_yt(url, $(this).width(), callID++);
}
}
});
}, 500);
});
//]]>
</script>
- Para los que quieren cambiar el ancho predeterminado de los videos solo cambia lo que esta en rojo por un numero.
- Para lo que quieren cambiar el alto predeterminado de los videos solo cambia lo que esta en Purpura por un numero.
- listo eso es todo, cuando alguien agrege un enlace de video de youtube este automaticamente cambia a la insercion de dicho video.