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); }; };