Insertar un vídeo de YouTube en tu página web es una de esas tareas que parecen sencillas… hasta que llegan los problemas: tamaños fijos, vídeos que no son responsive, parámetros que nadie explica bien. Si alguna vez te has preguntado cómo insertar un vídeo de YouTube en HTML y que quede perfecto en móviles, tabletas y escritorio, has llegado al lugar correcto.
Cuando yo empecé también caí en esa trampa: copiaba el iframe tal cual y luego me tocaba pelearme con que no se adaptara al móvil o que los controles desaparecieran sin razón. Por eso esta guía reúne todo lo que necesitas, desde lo más básico hasta configuraciones avanzadas, para que puedas poner un vídeo de YouTube en HTML de forma correcta desde el primer intento.
¿Qué significa realmente "insertar un vídeo de YouTube" en HTML?
Cómo funciona el iframe por dentro
Cuando haces clic en Compartir → Insertar, YouTube te entrega un bloque código HTML con un elemento <iframe>. Ese iframe no es más que una "ventana" dentro de tu web que muestra el reproductor de YouTube sin que tengas que alojar el vídeo en tu propio servidor.
Por ejemplo, el código de inserción de YouTube tiene esta forma:
<iframe width="560" height="315" src="https://www.youtube.com/embed/85MppyLJHz0" allowfullscreen></iframe>El atributo src es lo único que necesitas cambiar si quieres incrustar otro vídeo. El resto de atributos controlan las dimensiones y el comportamiento del reproductor.
Ventajas de incrustar un vídeo en vez de subirlo directamente
Usar el vídeo directamente desde YouTube te quita toneladas de trabajo:
- No tienes que convertir el vídeo a múltiples formatos para compatibilidad con distintos navegadores.
- No consumes ancho de banda propio: YouTube absorbe todo el tráfico.
- Te beneficias de las funciones sociales de YouTube (likes, comentarios, suscripciones).
- El reproductor ya viene optimizado y actualizado para la mayoría de navegadores y dispositivos.
- El vídeo sigue disponible en YouTube para quienes lo encuentren desde el buscador.
Cómo obtener el código para insertar vídeo en HTML desde YouTube
El proceso es rápido. Sigue esta ruta en YouTube:
- Abre el vídeo que deseas incrustar.
- Haz clic en el botón Compartir (debajo del reproductor).
- Selecciona la opción Insertar.
- Copia el bloque de
iframeque aparece en el cuadro de diálogo.
Dónde pegar el código HTML en tu página
El iframe debe ir siempre dentro de la etiqueta <body>, nunca en el <head>. Un ejemplo básico y funcional sería:
<body>
<h1>Mi vídeo de YouTube</h1>
<iframe width="560" height="315" src="https://www.youtube.com/embed/TU_ID" allowfullscreen></iframe>
</body>YouTube es una plataforma de contenido digital en la que puedes encontrar toda clase de vídeos. En los últimos años ha crecido en todos los aspectos, ofreciendo opciones muy prácticas para insertar vídeos fácilmente en una página web HTML:

Selecciona un vídeo de YouTube → clic en "Compartir" → clic en la pestaña "Insertar".
Una vez que tengas el código del vídeo que deseas incrustar en tu página web, obtendrás algo similar a esto:
<iframe width="560" height="315" src="https://www.youtube.com/embed/85MppyLJHz0" allowfullscreen></iframe>Empleando directamente los vídeos de YouTube puedes ahorrar mucho trabajo; por ejemplo, evitar convertir vídeos a distintos formatos para soportar distintos navegadores, aprovechar las opciones sociales de YouTube para compartir y difundir el contenido, y olvidarte de los costes de almacenamiento y ancho de banda.
Errores más comunes al copiar el embed de YouTube
- Pegar el
iframedentro de<head>en lugar de<body>. - Romper la URL al añadir parámetros con el signo
?dos veces (solo se usa uno, el resto se encadenan con&). - Borrar accidentalmente el atributo
allowfullscreen, lo que impide el modo pantalla completa. - Confundir la URL estándar de YouTube (
https://www.youtube.com/watch?v=ID) con la URL de embed (https://www.youtube.com/embed/ID): debes usar siempre la versión/embed/.
Analizando los atributos del iframe de YouTube
El código que obtienes desde YouTube no es más que un iframe HTML estándar con una serie de atributos que conviene conocer bien:
- Los atributos
widthyheightespecifican las dimensiones iniciales del vídeo en píxeles. YouTube usa por defecto560y315(proporción 16:9), pero puedes cambiarlos o eliminarlos si usas CSS responsive. - El atributo
allowfullscreenhabilita el modo pantalla completa (full screen). Sin él, el botón de pantalla completa desaparece. - El atributo
srccontiene la URL del vídeo en formato embed. Es el único valor que debes cambiar para incrustar un vídeo diferente. Además, en esa URL puedes añadir parámetros adicionales para personalizar el comportamiento del reproductor, como veremos a continuación.
Personalizar el iframe: parámetros de la URL de los vídeos de YouTube
Una de las partes más potentes —y menos documentadas en tutoriales básicos— es la posibilidad de añadir parámetros a la URL del src para controlar el comportamiento del reproductor. Aquí tienes los más importantes:
autohide — Controla cuándo se ocultan los controles del vídeo: |
|
autoplay — Define si el vídeo se reproduce automáticamente al cargar: |
|
controls — Controla la visibilidad de los botones del reproductor: |
|
loop — Especifica si el vídeo debe repetirse en bucle al terminar: |
|
playlist — Permite crear una lista de reproducción encadenada. Separa los IDs de los vídeos con comas (,). | También es necesario para que loop=1 funcione correctamente en el modo embed. |
showinfo — Controla si se muestra el título del vídeo (obsoleto en la API moderna, pero útil en embeds antiguos): | <iframe src="https://www.youtube.com/embed/85MppyLJHz0?showinfo=1" allowfullscreen></iframe> |
disablekb — Desactiva (1) o activa (0) los atajos de teclado del reproductor: | <iframe src="https://www.youtube.com/embed/85MppyLJHz0?disablekb=1" allowfullscreen></iframe> |
start — Especifica (en segundos) el punto de inicio del vídeo. Útil para destacar una parte concreta: | <iframe src="https://www.youtube.com/embed/85MppyLJHz0?start=5" allowfullscreen></iframe> |
end — Especifica (en segundos) el punto en el que el reproductor se detiene: | <iframe src="https://www.youtube.com/embed/85MppyLJHz0?end=60" allowfullscreen></iframe> |
rel — Controla los vídeos sugeridos al finalizar la reproducción: | rel=0: muestra solo vídeos del mismo canal (desde 2018, no es posible ocultarlos del todo).<iframe src="https://www.youtube.com/embed/85MppyLJHz0?rel=0" allowfullscreen></iframe> |
mute — Silencia el audio del vídeo al cargarse: | mute=1: imprescindible cuando usas autoplay=1, ya que los navegadores bloquean el autoplay con sonido.<iframe src="https://www.youtube.com/embed/85MppyLJHz0?autoplay=1&mute=1" allowfullscreen></iframe> |
Puedes encontrar la documentación oficial y completa en: Reproductores incorporados de YouTube y parámetros del reproductor.
Resumen: ajustes de visualización más usados
autohideautohide=0→ Controles siempre visiblesautohide=1→ Se esconden al reproducirautohide=2→ Comportamiento según proporción del vídeo (valor por defecto)
Ejemplo:
<iframe src="https://www.youtube.com/embed/ID?autohide=1" allowfullscreen></iframe>controlscontrols=0→ Sin controles visiblescontrols=1→ Visibles (valor por defecto)controls=2→ Solo se muestran cuando el usuario interactúa
showinfo(obsoleto en embeds modernos, pero funcional en algunos casos):showinfo=0→ Quita el título del vídeoshowinfo=1→ Muestra el título
Resumen: parámetros de reproducción (autoplay, loop, start, end)
Autoplay:
<iframe src="https://www.youtube.com/embed/ID?autoplay=1&mute=1" allowfullscreen></iframe>loop— Para que funcione en embed debes añadir también el parámetroplaylistcon el mismo ID:<iframe src="https://www.youtube.com/embed/ID?loop=1&playlist=ID" allowfullscreen></iframe>start/end— Perfectos si quieres destacar un fragmento concreto del vídeo:<iframe src="https://www.youtube.com/embed/ID?start=5&end=20"></iframe>Combinación avanzada — Autoplay, sin controles y en bucle:
<iframe src="https://www.youtube.com/embed/ID?autoplay=1&mute=1&controls=0&loop=1&playlist=ID" allowfullscreen></iframe>
Cómo hacer el vídeo responsive: que se adapte a móviles y pantallas grandes

YouTube permite insertar vídeos en HTML fácilmente, pero lo que no resulta tan evidente es conseguir que ese vídeo se comporte de manera responsive: es decir, que se adapte automáticamente al ancho del contenedor según el tamaño de la pantalla del dispositivo.
Cuando inserté mis primeros vídeos, YouTube me los entregaba con medidas fijas como
width="560"yheight="315".
El resultado en móviles era desastroso: se salían del contenedor o quedaban enmarcados con barras negras.Aquí tienes dos soluciones probadas para solucionarlo definitivamente.
El problema de raíz es que el código HTML para insertar vídeo de YouTube viene con un tamaño predefinido indicado por los atributos height y width. Esto hace que el vídeo ignore completamente el diseño responsive de tu web. A continuación veremos dos soluciones que puedes aplicar por separado o en conjunto.
Primera solución: vídeo responsive con CSS (rápida y sencilla)
La técnica clásica consiste en envolver el iframe en un contenedor div y utilizar el truco del padding-bottom proporcional para mantener la relación de aspecto:
.v-container {
position: relative;
padding-bottom: 56.25%; /* Proporción 16:9 */
padding-top: 25px;
height: 0;
}
.v-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}El valor 56.25% corresponde a la proporción 16:9 (9 / 16 = 0.5625). El contenedor tiene height: 0 y crece únicamente a través del padding-bottom, lo que permite que el iframe posicionado de forma absoluta rellene ese espacio manteniendo siempre la proporción correcta, independientemente del ancho disponible.
HTML necesario para el vídeo responsive con CSS
Puedes eliminar (o no) los atributos width y height que YouTube añade al iframe, ya que el CSS se encargará de las dimensiones. El resultado final sería:
<div class="v-container">
<iframe
src="https://www.youtube.com/embed/Me2aXBodqnA"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen>
</iframe>
</div>Y este es el resultado:

Puedes consultar el ejemplo en:
Segunda solución: vídeo responsive con JavaScript (ideal si tienes varios vídeos en la misma página)
La solución con CSS es rápida, pero puede dar problemas si los vídeos tienen proporciones distintas a 16:9. La alternativa con JavaScript es más robusta: detecta la proporción real de cada vídeo y lo reescala dinámicamente cada vez que el usuario redimensiona la ventana.
El primer paso es seleccionar todos los iframe de YouTube presentes en la página. Lo hacemos usando el selector de contención *= sobre el atributo src:
var $videosYoutube = $("iframe[src*='www.youtube.com']")En el ejemplo usamos jQuery, pero puedes traducirlo fácilmente a JavaScript puro si prefieres no depender de librerías externas. A continuación, seleccionamos el contenedor padre de los vídeos:
$v_container = $("body section")Después, calculamos y almacenamos la proporción (aspect ratio) de cada vídeo como un atributo personalizado, y eliminamos las dimensiones fijas que añade YouTube. Este bloque se ejecuta solo una vez, al cargar la página:
$videosYoutube.each(function () {
$(this)
.attr('proportion', this.height / this.width)
// Eliminamos las dimensiones fijas
.removeAttr('height')
.removeAttr('width');
});Por último, definimos el callback para el evento resize de la ventana, que reescalará cada vídeo según su proporción y el ancho actual del contenedor:
$(window).resize(function () {
$videosYoutube.each(function () {
var $el = $(this);
$el
.width(container_width)
.height(container_width * $el.attr('proportion'));
});
})El código completo y listo para usar es el siguiente:
// Seleccionamos todos los iframes de YouTube
var $videosYoutube = $("iframe[src*='www.youtube.com']"),
// Contenedor padre de los vídeos
$v_container = $("body section");
// Guardamos las proporciones y eliminamos las dimensiones fijas
$videosYoutube.each(function () {
$(this)
.attr('proportion', this.height / this.width)
.removeAttr('height')
.removeAttr('width');
});
// Cada vez que se redimensiona la ventana, reescalamos los vídeos
$(window).resize(function () {
var container_width = $v_container.width();
$videosYoutube.each(function () {
var $el = $(this);
$el
.width(container_width)
.height(container_width * $el.attr('proportion'));
});
}).resize(); // Ejecutamos también al cargarPuedes ver el ejemplo final en:
Ejemplo responsive con JavaScript
Estos mismos códigos funcionan perfectamente con otras plataformas de vídeo como Vimeo, ya que la lógica se basa en los atributos del iframe, no en la URL de YouTube específicamente.
Descargar ambos ejemplos (.rar)
Buenas prácticas para insertar vídeos de YouTube en HTML
- Dimensiones recomendadas según dispositivo:
- Escritorio: entre 560 y 800 px de ancho (siempre con proporción 16:9).
- Móvil y tablet: usa siempre la técnica responsive (CSS o JS) para evitar desbordamientos.
- Optimización de rendimiento:
- Usa el atributo
loading="lazy"en eliframepara que el navegador solo cargue el reproductor cuando el usuario se acerque a él. Esto mejora el tiempo de carga inicial, especialmente en páginas con varios vídeos: <iframe loading="lazy" src="https://www.youtube.com/embed/ID" allowfullscreen></iframe>
- Usa el atributo
- SEO y experiencia de usuario:
- Usa un encabezado
<h2>o<h3>descriptivo justo antes del vídeo para que Google entienda su contexto. - Añade texto antes y después del vídeo para contextualizarlo: Google no puede "ver" vídeos, pero sí el texto que los rodea.
- Añade el atributo
titlealiframepara mejorar la accesibilidad y el rastreo por parte de los buscadores:<iframe title="Título descriptivo del vídeo" src="https://www.youtube.com/embed/ID" allowfullscreen></iframe>
- Usa un encabezado
Privacidad mejorada: YouTube ofrece el dominio
youtube-nocookie.compara embeds. Al usarlo, YouTube no almacena cookies en el navegador del visitante hasta que este reproduzca el vídeo:<iframe src="https://www.youtube-nocookie.com/embed/ID" allowfullscreen></iframe>
Ejemplos completos listos para copiar
Embed básico — el mínimo imprescindible:
<iframe src="https://www.youtube.com/embed/ID" allowfullscreen></iframe>Embed personalizado — con autoplay (silenciado), controles y punto de inicio:
<iframe src="https://www.youtube.com/embed/ID?autoplay=1&mute=1&controls=1&start=10" allowfullscreen></iframe>Embed responsive con CSS:
<div class="v-container"> <iframe src="https://www.youtube.com/embed/ID" allowfullscreen loading="lazy"></iframe> </div>Embed con privacidad mejorada (sin cookies hasta que el usuario reproduzca):
<iframe src="https://www.youtube-nocookie.com/embed/ID" allowfullscreen loading="lazy"></iframe>
Extra: Cómo poner un vídeo de YouTube como audio de fondo
Si lo que necesitas no es mostrar el vídeo, sino reproducir su audio de fondo de forma continua, puedes ocultar el iframe con CSS y combinar los parámetros autoplay, loop y mute=0:
<div style="display:none;">
<iframe
width="0"
height="0"
src="https://www.youtube.com/embed/VIDEO_ID?autoplay=1&loop=1&playlist=VIDEO_ID&mute=0"
allow="autoplay">
</iframe>
</div>Ten en cuenta que los navegadores modernos bloquean el autoplay con sonido si el usuario no ha interactuado previamente con la página. Si el audio no arranca solo, es probable que sea una restricción del navegador, no un error de tu código. En ese caso, puedes activarlo mediante un botón que dispare la reproducción con JavaScript.
También es importante saber que aunque el elemento tenga height="0" y width="0", el iframe sigue existiendo en el DOM. Asegúrate de que el contenedor padre tenga display: none o visibility: hidden para evitar que el navegador reserve espacios en blanco extraños, especialmente en versiones móviles.
Preguntas frecuentes sobre cómo insertar vídeos de YouTube en HTML
- ¿Por qué mi
iframede YouTube no es responsive?- Porque YouTube entrega el código con dimensiones fijas (
widthyheight) codificadas directamente en eliframe. Para solucionarlo, necesitas un contenedor con proporción definida por CSS o un sistema JavaScript de reescalado dinámico, como los explicados en esta guía.
- Porque YouTube entrega el código con dimensiones fijas (
- ¿Cómo quitar los controles del reproductor de YouTube?
- Añade el parámetro
controls=0a la URL delsrc:<iframe src="https://www.youtube.com/embed/ID?controls=0" allowfullscreen></iframe>
- Añade el parámetro
- ¿Cómo evitar que YouTube muestre vídeos sugeridos al terminar?
- Añade
rel=0a la URL. Desde 2018, YouTube ya no permite ocultar completamente los vídeos sugeridos, pero conrel=0solo mostrará vídeos del mismo canal en lugar de vídeos de terceros:<iframe src="https://www.youtube.com/embed/ID?rel=0" allowfullscreen></iframe>
- Añade
- ¿Cómo incrustar un vídeo de YouTube sin anuncios?
- No es posible eliminar los anuncios de YouTube desde el
iframeembed. Los anuncios que aparecen están controlados por la configuración de monetización del canal. Lo más cercano a reducirlos es usar el dominioyoutube-nocookie.com, que limita las cookies de seguimiento, aunque no elimina la publicidad.
- No es posible eliminar los anuncios de YouTube desde el
- ¿Cuál es la diferencia entre la URL normal y la URL embed de YouTube?
- La URL normal de YouTube es
https://www.youtube.com/watch?v=IDy sirve para ver el vídeo en la plataforma. La URL embed eshttps://www.youtube.com/embed/IDy es la que debes usar en el atributosrcdeliframepara incrustarlo en tu web.
- La URL normal de YouTube es
✅ Conclusión
Insertar un vídeo de YouTube en HTML no es solo copiar un iframe: es entender cómo personalizarlo con parámetros, cómo hacerlo responsive para que se vea bien en cualquier dispositivo y cómo adaptarlo a la experiencia que quieres ofrecer en tu web.
Con los parámetros correctos en la URL y un buen sistema responsive —ya sea con CSS o con JavaScript— no solo mejoras la estética de tu página: también mejoras la retención de los visitantes, el SEO y la claridad de tus contenidos. El vídeo deja de ser un elemento que "simplemente está ahí" y se convierte en una pieza integrada y funcional de tu diseño.