# Mensajes de video de WhatsApp

Un mensaje de video lleva una URL pública que WhatsApp obtiene en el momento del envío, con un pie de texto opcional debajo.

## Enviar un video

Establece `video.url`:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  video: { url: "https://cdn.example.com/unboxing.mp4" },
});
console.log(msg.id, msg.status);
```

Examples: [TypeScript](/es-es/documentacion/guides/whatsapp/message-types/video.ts.md) · [Python](/es-es/documentacion/guides/whatsapp/message-types/video.py.md) · [Go](/es-es/documentacion/guides/whatsapp/message-types/video.go.md) · [PHP](/es-es/documentacion/guides/whatsapp/message-types/video.php.md) · [CLI](/es-es/documentacion/guides/whatsapp/message-types/video.cli.md) · [MCP](/es-es/documentacion/guides/whatsapp/message-types/video.mcp.md) · [cURL](/es-es/documentacion/guides/whatsapp/message-types/video.curl.md)

La forma completa agrega un `caption` opcional:

```json
{
  "to": "+16505551234",
  "from": "+13124495648",
  "video": {
    "url": "https://cdn.example.com/unboxing.mp4",
    "caption": "How to set it up"
  }
}
```

`video` no tiene el campo `filename`. `from` es obligatorio en cada mensaje de servicio: un número que tu espacio de trabajo posee, no uno administrado por Bird.

## Límites

| Campo             | Límite                                             | Verificado por                    |
| ----------------- | -------------------------------------------------- | --------------------------------- |
| Tamaño de archivo | 16 MB                                              | Solo WhatsApp, al obtener (async) |
| Formato           | Contenedor MP4, video H.264, audio AAC             | Solo WhatsApp, al obtener (async) |
| `caption`         | hasta 1024 caracteres                              | Bird, al aceptar (`422`)          |
| `url`             | absoluta, `https`, tiene host, sin espacios crudos | Bird, al aceptar (`422`)          |

Bird verifica la forma de la URL y la longitud del pie de texto antes de encolar cualquier cosa. No verifica el tamaño real del archivo, el contenedor ni el códec; solo la obtención propia de WhatsApp en el momento del envío puede hacerlo. Consulta en el hub [enviar medios por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) y [cuando un medio falla](/docs/guides/whatsapp/message-types#when-media-fails).

## Leer un video entrante

Un video entrante lleva el mismo objeto `video`, más un `id` y `mime_type` que Bird obtuvo al descargar el archivo. Ambos están ausentes en una lectura de un mensaje saliente, ya que Bird nunca descargó el archivo que envió. Consulta [Recibir video de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/video) para la lectura entrante completa, el payload de `whatsapp.received` y qué tener en cuenta.

## Límites y modos de fallo

- **La ventana de servicio al cliente debe estar abierta.** Un video es un mensaje de servicio, entregable solo dentro de una ventana abierta; consulta en el hub la [ventana de servicio al cliente](/docs/guides/whatsapp/message-types#the-customer-service-window).
- **Bird rechaza `http`; WhatsApp sí lo obtendría.** Consulta en el hub [enviar medios por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) para la verificación completa de forma.
- **Una obtención rechazada se cobra de todos modos.** Consulta en el hub [cuando un medio falla](/docs/guides/whatsapp/message-types#when-media-fails) para `media_rejected` y el hecho del cobro en caso de fallo. El texto de rechazo propio de video de WhatsApp no se ha medido de forma independiente como el de imagen, así que trata el mapeo como inferido por simetría en lugar de confirmado por causa.
- **WhatsApp almacena en caché una URL obtenida durante unos 10 minutos.** Reenviar la misma URL dentro de esa ventana sirve la primera obtención de nuevo; varía la URL para forzar una nueva.
- **Un GIF animado no es un tipo distinto.** WhatsApp no tiene un tipo de mensaje `gif`; un GIF animado que envías llega al destinatario, y te llegaría de vuelta como entrante, como un `video` ordinario con tipo MIME MP4.

## Próximos pasos

- [Mensajes de servicio de WhatsApp](/docs/guides/whatsapp/message-types): la ventana de servicio al cliente y el modelo que comparten todos los mensajes de servicio
- [Imágenes](/docs/guides/whatsapp/message-types/images): la misma forma para una foto o gráfico
- [Audio](/docs/guides/whatsapp/message-types/audio): para una nota de voz o clip de audio
- [Enviar mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): el sobre de la solicitud, el modelo `202` y reintentos seguros

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
