Estoy trabajando en un website promocional-concurso al que los participantes deben pasar la url de un video de su autoría subido exclusivamente a YouTube.
Con indexOf y substr capturo el ID del video y luego lo paso al API de YouTube para validar usando la siguiente url:
Código HTML:
http://gdata.youtube.com/feeds/api/videos/<VIDEO ID>?v=2&alt=json
Cita:
No tengo forma de darle respuesta al usuario si se presenta tal error en IE8 y por lo visto el API de YouTube no me ayuda. ¿Existe alguna alternativa para evitar que los errores 404 de jQuery no bloqueen mi script?GET http://gdata.youtube.com/feeds/api/v...o?v=2&alt=json 404 (Not Found) jquery.min.js:2
Acá les dejo mi script tal como lo tengo en este momento por si necesitan revisarlo para estar más claros:
Código HTML:
function youtubeData (url,fnt)
{
var ytdta = {};
if (String(url).indexOf('youtube.com') != -1 || String(url).indexOf('youtu.be') != -1)
{
if (String(url).indexOf('?v=') != -1)
{
ytdta['id'] = url.split('?v=')[1].substr(0,11);
};
if (String(url).indexOf('&v=') != -1)
{
ytdta['id'] = url.split('&v=')[1].substr(0,11);
};
if (String(url).indexOf('/v/') != -1)
{
ytdta['id'] = url.split('/v/')[1].substr(0,11);
};
if (String(url).indexOf('youtu.be/') != -1)
{
ytdta['id'] = url.split('youtu.be/')[1].substr(0,11);
};
$.ajax({
url: 'http://gdata.youtube.com/feeds/api/videos/' + ytdta['id'] + '?v=2&alt=json',
dataType: 'json',
success: function(data)
{
var d = data.entry.media$group;
ytdta['title'] = d.media$title.$t;
ytdta['seconds'] = d.yt$duration.seconds;
ytdta['pic0_url'] = d.media$thumbnail[0].url;
ytdta['pic0_width'] = d.media$thumbnail[0].width;
ytdta['pic0_height'] = d.media$thumbnail[0].height;
ytdta['pic1_url'] = d.media$thumbnail[1].url;
ytdta['pic1_width'] = d.media$thumbnail[1].width;
ytdta['pic1_height'] = d.media$thumbnail[1].height;
ytdta['pic2_url'] = d.media$thumbnail[2].url;
ytdta['pic2_width'] = d.media$thumbnail[2].width;
ytdta['pic2_height'] = d.media$thumbnail[2].height;
ytdta['message'] = 200;
fnt(ytdta);
},
error: function(xhr)
{
ytdta['message'] = xhr.status;
fnt(ytdta);
}
});
} else {
ytdta['message'] = 400;
fnt(ytdta);
};
};


