Files
whatsappNucleo/docs/baileys-media-messaging.md
josedario87 9cf4faedec
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
Fix: Corregir UModal en MessageContact usando v-model:open
El modal de contacto usaba v-model en lugar de v-model:open según
la documentación de Nuxt UI 4. También se actualizó la estructura
para usar los slots correctos del UModal (#header, #body, #footer).
2025-12-04 09:45:25 -06:00

1118 lines
33 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Baileys Media Messaging API Documentation
> Documentación auto-generada para el desarrollo de mensajes multimedia en WhatsApp Nucleo
> Fuente: https://baileys.wiki
> Generado: 2025-12-03T17:18:54.553Z
Esta documentación contiene la API de Baileys relevante para enviar diferentes tipos de mensajes multimedia:
- Imágenes y Videos
- Documentos
- Audio y Notas de Voz
- Contactos
- Ubicación
- Encuestas (Polls)
- Eventos
## Tabla de Contenidos
### Type Aliases
- [AnyMediaMessageContent](#typeAliase-anymediamessagecontent)
- [AnyMessageContent](#typeAliase-anymessagecontent)
- [AnyRegularMessageContent](#typeAliase-anyregularmessagecontent)
- [WAContactMessage](#typeAliase-wacontactmessage)
- [WAContactsArrayMessage](#typeAliase-wacontactsarraymessage)
- [WALocationMessage](#typeAliase-walocationmessage)
- [WAGenericMediaMessage](#typeAliase-wagenericmediamessage)
- [PollMessageOptions](#typeAliase-pollmessageoptions)
- [EventMessageOptions](#typeAliase-eventmessageoptions)
- [MediaType](#typeAliase-mediatype)
- [MediaGenerationOptions](#typeAliase-mediagenerationoptions)
- [MiscMessageGenerationOptions](#typeAliase-miscmessagegenerationoptions)
- [MessageGenerationOptions](#typeAliase-messagegenerationoptions)
- [MessageContentGenerationOptions](#typeAliase-messagecontentgenerationoptions)
- [WAMediaUpload](#typeAliase-wamediaupload)
- [DownloadableMessage](#typeAliase-downloadablemessage)
- [WAContextInfo](#typeAliase-wacontextinfo)
- [MessageWithContextInfo](#typeAliase-messagewithcontextinfo)
### Funciones
- [prepareWAMessageMedia](#function-preparewamessagemedia)
- [generateWAMessage](#function-generatewamessage)
- [generateWAMessageContent](#function-generatewamessagecontent)
- [generateWAMessageFromContent](#function-generatewamessagefromcontent)
- [getContentType](#function-getcontenttype)
- [extensionForMediaMessage](#function-extensionformediamessage)
- [downloadMediaMessage](#function-downloadmediamessage)
- [downloadContentFromMessage](#function-downloadcontentfrommessage)
- [encryptedStream](#function-encryptedstream)
- [getMediaKeys](#function-getmediakeys)
### Variables
- [MEDIA_KEYS](#variable-media_keys)
- [MEDIA_PATH_MAP](#variable-media_path_map)
- [MEDIA_HKDF_KEY_MAPPING](#variable-media_hkdf_key_mapping)
### Interfaces
- [WAUrlInfo](#interface-waurlinfo)
---
# Type Aliases
---
## type Aliase: AnyMediaMessageContent
**Fuente:** https://baileys.wiki/docs/api/type-aliases/AnyMediaMessageContent
On this page
**AnyMediaMessageContent**: `object` & `Mentionable` & `Contextable` & `WithDimensions` | `object` & `Mentionable` & `Contextable` & `WithDimensions` | { `audio`: [`WAMediaUpload`](/docs/api/type-aliases/WAMediaUpload); `ptt`: `boolean`; `seconds`: `number`; } | `object` & `WithDimensions` | `object` & `Contextable` & `object` & `Editable`
Defined in: [src/Types/Message.ts:163](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L163)
## Type declaration[](#type-declaration)
### mimetype?[](#mimetype)
`optional` **mimetype**: `string`
---
## type Aliase: AnyMessageContent
**Fuente:** https://baileys.wiki/docs/api/type-aliases/AnyMessageContent
On this page
**AnyMessageContent**: [`AnyRegularMessageContent`](/docs/api/type-aliases/AnyRegularMessageContent) | { `force`: `boolean`; `forward`: [`WAMessage`](/docs/api/type-aliases/WAMessage); } | { `delete`: [`WAMessageKey`](/docs/api/type-aliases/WAMessageKey); } | { `disappearingMessagesInChat`: `boolean` | `number`; } | { `limitSharing`: `boolean`; }
Defined in: [src/Types/Message.ts:271](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L271)
## Type declaration[](#type-declaration)
[`AnyRegularMessageContent`](/docs/api/type-aliases/AnyRegularMessageContent)
{ `force`: `boolean`; `forward`: [`WAMessage`](/docs/api/type-aliases/WAMessage); }
### force?[](#force)
`optional` **force**: `boolean`
### forward[](#forward)
**forward**: [`WAMessage`](/docs/api/type-aliases/WAMessage)
{ `delete`: [`WAMessageKey`](/docs/api/type-aliases/WAMessageKey); }
### delete[](#delete)
**delete**: [`WAMessageKey`](/docs/api/type-aliases/WAMessageKey)
Delete your message or anyone's message in a group (admin required)
{ `disappearingMessagesInChat`: `boolean` | `number`; }
### disappearingMessagesInChat[](#disappearingmessagesinchat)
**disappearingMessagesInChat**: `boolean` | `number`
{ `limitSharing`: `boolean`; }
### limitSharing[](#limitsharing)
**limitSharing**: `boolean`
---
## type Aliase: AnyRegularMessageContent
**Fuente:** https://baileys.wiki/docs/api/type-aliases/AnyRegularMessageContent
**AnyRegularMessageContent**: `object` & `Mentionable` & `Contextable` & `Editable` | [`AnyMediaMessageContent`](/docs/api/type-aliases/AnyMediaMessageContent) | { `event`: [`EventMessageOptions`](/docs/api/type-aliases/EventMessageOptions); } | `object` & `Mentionable` & `Contextable` & `Editable` | { `contacts`: { `contacts`: [`IContactMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IContactMessage)[]; `displayName`: `string`; }; } | { `location`: [`WALocationMessage`](/docs/api/type-aliases/WALocationMessage); } | { `react`: [`IReactionMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IReactionMessage); } | { `buttonReply`: [`ButtonReplyInfo`](/docs/api/type-aliases/ButtonReplyInfo); `type`: `"template"` | `"plain"`; } | { `groupInvite`: [`GroupInviteInfo`](/docs/api/type-aliases/GroupInviteInfo); } | { `listReply`: `Omit`<[`IListResponseMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IListResponseMessage), `"contextInfo"`>; } | { `pin`: [`WAMessageKey`](/docs/api/type-aliases/WAMessageKey); `time`: `86400` | `604800` | `2592000`; `type`: [`Type`](/docs/api/namespaces/proto/namespaces/PinInChat/enumerations/Type); } | { `body`: `string`; `businessOwnerJid`: `string`; `footer`: `string`; `product`: [`WASendableProduct`](/docs/api/type-aliases/WASendableProduct); } | `SharePhoneNumber` | `RequestPhoneNumber` & `ViewOnce`
Defined in: [src/Types/Message.ts:218](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L218)
---
## type Aliase: WAContactMessage
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WAContactMessage
**WAContactMessage**: [`IContactMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IContactMessage)
Defined in: [src/Types/Message.ts:18](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L18)
---
## type Aliase: WAContactsArrayMessage
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WAContactsArrayMessage
**WAContactsArrayMessage**: [`IContactsArrayMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IContactsArrayMessage)
Defined in: [src/Types/Message.ts:19](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L19)
---
## type Aliase: WALocationMessage
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WALocationMessage
**WALocationMessage**: [`ILocationMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/ILocationMessage)
Defined in: [src/Types/Message.ts:29](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L29)
---
## type Aliase: WAGenericMediaMessage
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WAGenericMediaMessage
**WAGenericMediaMessage**: [`IVideoMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IVideoMessage) | [`IImageMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IImageMessage) | [`IAudioMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IAudioMessage) | [`IDocumentMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IDocumentMessage) | [`IStickerMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IStickerMessage)
Defined in: [src/Types/Message.ts:30](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L30)
---
## type Aliase: PollMessageOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/PollMessageOptions
On this page
**PollMessageOptions**: `object`
Defined in: [src/Types/Message.ts:133](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L133)
## Type declaration[](#type-declaration)
### messageSecret?[](#messagesecret)
`optional` **messageSecret**: `Uint8Array`
32 byte message secret to encrypt poll selections
### name[](#name)
**name**: `string`
### selectableCount?[](#selectablecount)
`optional` **selectableCount**: `number`
### toAnnouncementGroup?[](#toannouncementgroup)
`optional` **toAnnouncementGroup**: `boolean`
### values[](#values)
**values**: `string`[]
---
## type Aliase: EventMessageOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/EventMessageOptions
On this page
**EventMessageOptions**: `object`
Defined in: [src/Types/Message.ts:142](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L142)
## Type declaration[](#type-declaration)
### call?[](#call)
`optional` **call**: `"audio"` | `"video"`
### description?[](#description)
`optional` **description**: `string`
### endDate?[](#enddate)
`optional` **endDate**: `Date`
### extraGuestsAllowed?[](#extraguestsallowed)
`optional` **extraGuestsAllowed**: `boolean`
### isCancelled?[](#iscancelled)
`optional` **isCancelled**: `boolean`
### isScheduleCall?[](#isschedulecall)
`optional` **isScheduleCall**: `boolean`
### location?[](#location)
`optional` **location**: [`WALocationMessage`](/docs/api/type-aliases/WALocationMessage)
### messageSecret?[](#messagesecret)
`optional` **messageSecret**: `Uint8Array`<`ArrayBufferLike`>
### name[](#name)
**name**: `string`
### startDate[](#startdate)
**startDate**: `Date`
---
## type Aliase: MediaType
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MediaType
**MediaType**: keyof *typeof* [`MEDIA_HKDF_KEY_MAPPING`](/docs/api/variables/MEDIA_HKDF_KEY_MAPPING)
Defined in: [src/Defaults/index.ts:117](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Defaults/index.ts#L117)
---
## type Aliase: MediaGenerationOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MediaGenerationOptions
On this page
**MediaGenerationOptions**: `object`
Defined in: [src/Types/Message.ts:336](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L336)
## Type declaration[](#type-declaration)
### backgroundColor?[](#backgroundcolor)
`optional` **backgroundColor**: `string`
### font?[](#font)
`optional` **font**: `number`
### logger?[](#logger)
`optional` **logger**: `ILogger`
### mediaCache?[](#mediacache)
`optional` **mediaCache**: [`CacheStore`](/docs/api/type-aliases/CacheStore)
cache media so it does not have to be uploaded again
### mediaTypeOverride?[](#mediatypeoverride)
`optional` **mediaTypeOverride**: [`MediaType`](/docs/api/type-aliases/MediaType)
### mediaUploadTimeoutMs?[](#mediauploadtimeoutms)
`optional` **mediaUploadTimeoutMs**: `number`
### options?[](#options)
`optional` **options**: `RequestInit`
### upload[](#upload)
**upload**: [`WAMediaUploadFunction`](/docs/api/type-aliases/WAMediaUploadFunction)
---
## type Aliase: MiscMessageGenerationOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MiscMessageGenerationOptions
On this page
**MiscMessageGenerationOptions**: `MinimalRelayOptions` & `object`
Defined in: [src/Types/Message.ts:309](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L309)
## Type declaration[](#type-declaration)
### backgroundColor?[](#backgroundcolor)
`optional` **backgroundColor**: `string`
backgroundcolor for status
### broadcast?[](#broadcast)
`optional` **broadcast**: `boolean`
if it is broadcast
### ephemeralExpiration?[](#ephemeralexpiration)
`optional` **ephemeralExpiration**: `number` | `string`
disappearing messages settings
### font?[](#font)
`optional` **font**: `number`
font type for status
### mediaUploadTimeoutMs?[](#mediauploadtimeoutms)
`optional` **mediaUploadTimeoutMs**: `number`
timeout for media upload to WA server
### quoted?[](#quoted)
`optional` **quoted**: [`WAMessage`](/docs/api/type-aliases/WAMessage)
the message you want to quote
### statusJidList?[](#statusjidlist)
`optional` **statusJidList**: `string`[]
jid list of participants for status@broadcast
### timestamp?[](#timestamp)
`optional` **timestamp**: `Date`
optional, if you want to manually set the timestamp of the message
---
## type Aliase: MessageGenerationOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MessageGenerationOptions
**MessageGenerationOptions**: [`MessageContentGenerationOptions`](/docs/api/type-aliases/MessageContentGenerationOptions) & [`MessageGenerationOptionsFromContent`](/docs/api/type-aliases/MessageGenerationOptionsFromContent)
Defined in: [src/Types/Message.ts:357](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L357)
---
## type Aliase: MessageContentGenerationOptions
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MessageContentGenerationOptions
On this page
**MessageContentGenerationOptions**: [`MediaGenerationOptions`](/docs/api/type-aliases/MediaGenerationOptions) & `object`
Defined in: [src/Types/Message.ts:351](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L351)
## Type declaration[](#type-declaration)
### getCallLink()?[](#getcalllink)
`optional` **getCallLink**: (`type`, `event`?) => `Promise`<`string` | `undefined`>
#### Parameters[](#parameters)
type[](#type)
`"audio"` | `"video"`
event?[](#event)
startTime[](#starttime)
`number`
#### Returns[](#returns)
`Promise`<`string` | `undefined`>
### getProfilePicUrl()?[](#getprofilepicurl)
`optional` **getProfilePicUrl**: (`jid`, `type`) => `Promise`<`string` | `undefined`>
#### Parameters[](#parameters-1)
jid[](#jid)
`string`
type[](#type-1)
`"image"` | `"preview"`
#### Returns[](#returns-1)
`Promise`<`string` | `undefined`>
### getUrlInfo()?[](#geturlinfo)
`optional` **getUrlInfo**: (`text`) => `Promise`<[`WAUrlInfo`](/docs/api/interfaces/WAUrlInfo) | `undefined`>
#### Parameters[](#parameters-2)
text[](#text)
`string`
#### Returns[](#returns-2)
`Promise`<[`WAUrlInfo`](/docs/api/interfaces/WAUrlInfo) | `undefined`>
### jid?[](#jid-1)
`optional` **jid**: `string`
---
## type Aliase: WAMediaUpload
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WAMediaUpload
**WAMediaUpload**: `Buffer` | [`WAMediaPayloadStream`](/docs/api/type-aliases/WAMediaPayloadStream) | [`WAMediaPayloadURL`](/docs/api/type-aliases/WAMediaPayloadURL)
Defined in: [src/Types/Message.ts:41](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L41)
---
## type Aliase: DownloadableMessage
**Fuente:** https://baileys.wiki/docs/api/type-aliases/DownloadableMessage
On this page
**DownloadableMessage**: `object`
Defined in: [src/Types/Message.ts:83](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L83)
## Type declaration[](#type-declaration)
### directPath?[](#directpath)
`optional` **directPath**: `string` | `null`
### mediaKey?[](#mediakey)
`optional` **mediaKey**: `Uint8Array` | `null`
### url?[](#url)
`optional` **url**: `string` | `null`
---
## type Aliase: WAContextInfo
**Fuente:** https://baileys.wiki/docs/api/type-aliases/WAContextInfo
**WAContextInfo**: [`IContextInfo`](/docs/api/namespaces/proto/interfaces/IContextInfo)
Defined in: [src/Types/Message.ts:28](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L28)
---
## type Aliase: MessageWithContextInfo
**Fuente:** https://baileys.wiki/docs/api/type-aliases/MessageWithContextInfo
**MessageWithContextInfo**: `"imageMessage"` | `"contactMessage"` | `"locationMessage"` | `"extendedTextMessage"` | `"documentMessage"` | `"audioMessage"` | `"videoMessage"` | `"call"` | `"contactsArrayMessage"` | `"liveLocationMessage"` | `"templateMessage"` | `"stickerMessage"` | `"groupInviteMessage"` | `"templateButtonReplyMessage"` | `"productMessage"` | `"listMessage"` | `"orderMessage"` | `"listResponseMessage"` | `"buttonsMessage"` | `"buttonsResponseMessage"` | `"interactiveMessage"` | `"interactiveResponseMessage"` | `"pollCreationMessage"` | `"requestPhoneNumberMessage"` | `"messageHistoryBundle"` | `"eventMessage"` | `"newsletterAdminInviteMessage"` | `"albumMessage"` | `"stickerPackMessage"` | `"pollResultSnapshotMessage"` | `"messageHistoryNotice"`
Defined in: [src/Types/Message.ts:50](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L50)
---
# Funciones
---
## function: prepareWAMessageMedia
**Fuente:** https://baileys.wiki/docs/api/functions/prepareWAMessageMedia
On this page
**prepareWAMessageMedia**(`message`, `options`): `Promise`<[`Message`](/docs/api/namespaces/proto/classes/Message)>
Defined in: [src/Utils/messages.ts:116](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L116)
## Parameters[](#parameters)
### message[](#message)
[`AnyMediaMessageContent`](/docs/api/type-aliases/AnyMediaMessageContent)
### options[](#options)
[`MessageContentGenerationOptions`](/docs/api/type-aliases/MessageContentGenerationOptions)
## Returns[](#returns)
`Promise`<[`Message`](/docs/api/namespaces/proto/classes/Message)>
---
## function: generateWAMessage
**Fuente:** https://baileys.wiki/docs/api/functions/generateWAMessage
On this page
**generateWAMessage**(`jid`, `content`, `options`): `Promise`<[`WAMessage`](/docs/api/type-aliases/WAMessage)>
Defined in: [src/Utils/messages.ts:707](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L707)
## Parameters[](#parameters)
### jid[](#jid)
`string`
### content[](#content)
[`AnyMessageContent`](/docs/api/type-aliases/AnyMessageContent)
### options[](#options)
[`MessageGenerationOptions`](/docs/api/type-aliases/MessageGenerationOptions)
## Returns[](#returns)
`Promise`<[`WAMessage`](/docs/api/type-aliases/WAMessage)>
---
## function: generateWAMessageContent
**Fuente:** https://baileys.wiki/docs/api/functions/generateWAMessageContent
On this page
**generateWAMessageContent**(`message`, `options`): `Promise`<[`Message`](/docs/api/namespaces/proto/classes/Message)>
Defined in: [src/Utils/messages.ts:369](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L369)
## Parameters[](#parameters)
### message[](#message)
[`AnyMessageContent`](/docs/api/type-aliases/AnyMessageContent)
### options[](#options)
[`MessageContentGenerationOptions`](/docs/api/type-aliases/MessageContentGenerationOptions)
## Returns[](#returns)
`Promise`<[`Message`](/docs/api/namespaces/proto/classes/Message)>
---
## function: generateWAMessageFromContent
**Fuente:** https://baileys.wiki/docs/api/functions/generateWAMessageFromContent
On this page
**generateWAMessageFromContent**(`jid`, `message`, `options`): [`WAMessage`](/docs/api/type-aliases/WAMessage)
Defined in: [src/Utils/messages.ts:623](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L623)
## Parameters[](#parameters)
### jid[](#jid)
`string`
### message[](#message)
[`IMessage`](/docs/api/namespaces/proto/interfaces/IMessage)
### options[](#options)
[`MessageGenerationOptionsFromContent`](/docs/api/type-aliases/MessageGenerationOptionsFromContent)
## Returns[](#returns)
[`WAMessage`](/docs/api/type-aliases/WAMessage)
---
## function: getContentType
**Fuente:** https://baileys.wiki/docs/api/functions/getContentType
On this page
**getContentType**(`content`): `undefined` | keyof IMessage
Defined in: [src/Utils/messages.ts:715](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L715)
Get the key to access the true type of content
## Parameters[](#parameters)
### content[](#content)
`undefined` | [`IMessage`](/docs/api/namespaces/proto/interfaces/IMessage)
## Returns[](#returns)
`undefined` | keyof IMessage
---
## function: extensionForMediaMessage
**Fuente:** https://baileys.wiki/docs/api/functions/extensionForMediaMessage
On this page
**extensionForMediaMessage**(`message`): `string`
Defined in: [src/Utils/messages-media.ts:628](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages-media.ts#L628)
## Parameters[](#parameters)
### message[](#message)
[`IMessage`](/docs/api/namespaces/proto/interfaces/IMessage)
## Returns[](#returns)
`string`
---
## function: downloadMediaMessage
**Fuente:** https://baileys.wiki/docs/api/functions/downloadMediaMessage
On this page
**downloadMediaMessage**<`Type`>(`message`, `type`, `options`, `ctx`?): `Promise`<`Type` *extends* `"buffer"` ? `Buffer`<`ArrayBufferLike`> : `Transform`>
Defined in: [src/Utils/messages.ts:985](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages.ts#L985)
Downloads the given message. Throws an error if it's not a media message
## Type Parameters[](#type-parameters)
**Type** *extends* `"buffer"` | `"stream"`
## Parameters[](#parameters)
### message[](#message)
[`WAMessage`](/docs/api/type-aliases/WAMessage)
### type[](#type)
`Type`
### options[](#options)
[`MediaDownloadOptions`](/docs/api/type-aliases/MediaDownloadOptions)
### ctx?[](#ctx)
`DownloadMediaMessageContext`
## Returns[](#returns)
`Promise`<`Type` *extends* `"buffer"` ? `Buffer`<`ArrayBufferLike`> : `Transform`>
---
## function: downloadContentFromMessage
**Fuente:** https://baileys.wiki/docs/api/functions/downloadContentFromMessage
On this page
**downloadContentFromMessage**(`__namedParameters`, `type`, `opts`): `Promise`<`Transform`>
Defined in: [src/Utils/messages-media.ts:506](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages-media.ts#L506)
## Parameters[](#parameters)
### __namedParameters[](#__namedparameters)
[`DownloadableMessage`](/docs/api/type-aliases/DownloadableMessage)
### type[](#type)
`"ppic"` | `"product"` | `"image"` | `"video"` | `"sticker"` | `"thumbnail-document"` | `"audio"` | `"thumbnail-image"` | `"biz-cover-photo"` | `"thumbnail-video"` | `"thumbnail-link"` | `"gif"` | `"md-app-state"` | `"md-msg-hist"` | `"document"` | `"ptt"` | `"product-catalog-image"` | `"payment-bg-image"` | `"ptv"`
### opts[](#opts)
[`MediaDownloadOptions`](/docs/api/type-aliases/MediaDownloadOptions) = `{}`
## Returns[](#returns)
`Promise`<`Transform`>
---
## function: encryptedStream
**Fuente:** https://baileys.wiki/docs/api/functions/encryptedStream
On this page
**encryptedStream**(`media`, `mediaType`, `__namedParameters`): `Promise`<{ `encFilePath`: `string`; `fileEncSha256`: `Buffer`<`ArrayBufferLike`>; `fileLength`: `number`; `fileSha256`: `Buffer`<`ArrayBufferLike`>; `mac`: `Buffer`<`ArrayBuffer`>; `mediaKey`: `Buffer`<`ArrayBufferLike`>; `originalFilePath`: `undefined` | `string`; }>
Defined in: [src/Utils/messages-media.ts:384](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages-media.ts#L384)
## Parameters[](#parameters)
### media[](#media)
[`WAMediaUpload`](/docs/api/type-aliases/WAMediaUpload)
### mediaType[](#mediatype)
`"ppic"` | `"product"` | `"image"` | `"video"` | `"sticker"` | `"thumbnail-document"` | `"audio"` | `"thumbnail-image"` | `"biz-cover-photo"` | `"thumbnail-video"` | `"thumbnail-link"` | `"gif"` | `"md-app-state"` | `"md-msg-hist"` | `"document"` | `"ptt"` | `"product-catalog-image"` | `"payment-bg-image"` | `"ptv"`
### __namedParameters[](#__namedparameters)
`EncryptedStreamOptions` = `{}`
## Returns[](#returns)
`Promise`<{ `encFilePath`: `string`; `fileEncSha256`: `Buffer`<`ArrayBufferLike`>; `fileLength`: `number`; `fileSha256`: `Buffer`<`ArrayBufferLike`>; `mac`: `Buffer`<`ArrayBuffer`>; `mediaKey`: `Buffer`<`ArrayBufferLike`>; `originalFilePath`: `undefined` | `string`; }>
---
## function: getMediaKeys
**Fuente:** https://baileys.wiki/docs/api/functions/getMediaKeys
On this page
**getMediaKeys**(`buffer`, `mediaType`): `Promise`<[`MediaDecryptionKeyInfo`](/docs/api/type-aliases/MediaDecryptionKeyInfo)>
Defined in: [src/Utils/messages-media.ts:95](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Utils/messages-media.ts#L95)
generates all the keys required to encrypt/decrypt & sign a media message
## Parameters[](#parameters)
### buffer[](#buffer)
`undefined` | `null` | `string` | `Uint8Array`<`ArrayBufferLike`>
### mediaType[](#mediatype)
`"ppic"` | `"product"` | `"image"` | `"video"` | `"sticker"` | `"thumbnail-document"` | `"audio"` | `"thumbnail-image"` | `"biz-cover-photo"` | `"thumbnail-video"` | `"thumbnail-link"` | `"gif"` | `"md-app-state"` | `"md-msg-hist"` | `"document"` | `"ptt"` | `"product-catalog-image"` | `"payment-bg-image"` | `"ptv"`
## Returns[](#returns)
`Promise`<[`MediaDecryptionKeyInfo`](/docs/api/type-aliases/MediaDecryptionKeyInfo)>
---
# Variables
---
## variable: MEDIA_KEYS
**Fuente:** https://baileys.wiki/docs/api/variables/MEDIA_KEYS
`const` **MEDIA_KEYS**: (`"ppic"` | `"product"` | `"image"` | `"video"` | `"sticker"` | `"thumbnail-document"` | `"audio"` | `"thumbnail-image"` | `"biz-cover-photo"` | `"thumbnail-video"` | `"thumbnail-link"` | `"gif"` | `"md-app-state"` | `"md-msg-hist"` | `"document"` | `"ptt"` | `"product-catalog-image"` | `"payment-bg-image"` | `"ptv"`)[]
Defined in: [src/Defaults/index.ts:119](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Defaults/index.ts#L119)
---
## variable: MEDIA_PATH_MAP
**Fuente:** https://baileys.wiki/docs/api/variables/MEDIA_PATH_MAP
`const` **MEDIA_PATH_MAP**: `{ [T in MediaType]?: string }`
Defined in: [src/Defaults/index.ts:82](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Defaults/index.ts#L82)
---
## variable: MEDIA_HKDF_KEY_MAPPING
**Fuente:** https://baileys.wiki/docs/api/variables/MEDIA_HKDF_KEY_MAPPING
On this page
`const` **MEDIA_HKDF_KEY_MAPPING**: `object`
Defined in: [src/Defaults/index.ts:95](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Defaults/index.ts#L95)
## Type declaration[](#type-declaration)
### audio[](#audio)
**audio**: `string` = `'Audio'`
### biz-cover-photo[](#biz-cover-photo)
**biz-cover-photo**: `string` = `'Image'`
### document[](#document)
**document**: `string` = `'Document'`
### gif[](#gif)
**gif**: `string` = `'Video'`
### image[](#image)
**image**: `string` = `'Image'`
### md-app-state[](#md-app-state)
**md-app-state**: `string` = `'App State'`
### md-msg-hist[](#md-msg-hist)
**md-msg-hist**: `string` = `'History'`
### payment-bg-image[](#payment-bg-image)
**payment-bg-image**: `string` = `'Payment Background'`
### ppic[](#ppic)
**ppic**: `string` = `''`
### product[](#product)
**product**: `string` = `'Image'`
### product-catalog-image[](#product-catalog-image)
**product-catalog-image**: `string` = `''`
### ptt[](#ptt)
**ptt**: `string` = `'Audio'`
### ptv[](#ptv)
**ptv**: `string` = `'Video'`
### sticker[](#sticker)
**sticker**: `string` = `'Image'`
### thumbnail-document[](#thumbnail-document)
**thumbnail-document**: `string` = `'Document Thumbnail'`
### thumbnail-image[](#thumbnail-image)
**thumbnail-image**: `string` = `'Image Thumbnail'`
### thumbnail-link[](#thumbnail-link)
**thumbnail-link**: `string` = `'Link Thumbnail'`
### thumbnail-video[](#thumbnail-video)
**thumbnail-video**: `string` = `'Video Thumbnail'`
### video[](#video)
**video**: `string` = `'Video'`
---
# Interfaces
---
## interface: WAUrlInfo
**Fuente:** https://baileys.wiki/docs/api/interfaces/WAUrlInfo
On this page
Defined in: [src/Types/Message.ts:102](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L102)
## Properties[](#properties)
### canonical-url[](#canonical-url)
**canonical-url**: `string`
Defined in: [src/Types/Message.ts:103](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L103)
### description?[](#description)
`optional` **description**: `string`
Defined in: [src/Types/Message.ts:106](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L106)
### highQualityThumbnail?[](#highqualitythumbnail)
`optional` **highQualityThumbnail**: [`IImageMessage`](/docs/api/namespaces/proto/namespaces/Message/interfaces/IImageMessage)
Defined in: [src/Types/Message.ts:108](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L108)
### jpegThumbnail?[](#jpegthumbnail)
`optional` **jpegThumbnail**: `Buffer`<`ArrayBufferLike`>
Defined in: [src/Types/Message.ts:107](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L107)
### matched-text[](#matched-text)
**matched-text**: `string`
Defined in: [src/Types/Message.ts:104](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L104)
### originalThumbnailUrl?[](#originalthumbnailurl)
`optional` **originalThumbnailUrl**: `string`
Defined in: [src/Types/Message.ts:109](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L109)
### title[](#title)
**title**: `string`
Defined in: [src/Types/Message.ts:105](https://github.com/WhiskeySockets/Baileys/blob/cb8b3717aaede47460ba700651ee936f268c0ce4/src/Types/Message.ts#L105)
---
# Ejemplos de Uso Comunes
## Enviar Imagen
```typescript
import { prepareWAMessageMedia, generateWAMessageFromContent } from '@whiskeysockets/baileys'
// Opción 1: Usando sendMessage directamente
await sock.sendMessage(jid, {
image: { url: './image.jpg' }, // o Buffer
caption: 'Descripción de la imagen',
mimetype: 'image/jpeg'
})
// Opción 2: Con prepareWAMessageMedia
const media = await prepareWAMessageMedia(
{ image: { url: './image.jpg' } },
{ upload: sock.waUploadToServer }
)
```
## Enviar Video
```typescript
await sock.sendMessage(jid, {
video: { url: './video.mp4' },
caption: 'Mi video',
mimetype: 'video/mp4',
gifPlayback: false // true para GIFs
})
```
## Enviar Documento
```typescript
await sock.sendMessage(jid, {
document: { url: './document.pdf' },
mimetype: 'application/pdf',
fileName: 'documento.pdf',
caption: 'Documento importante'
})
```
## Enviar Audio
```typescript
// Audio normal
await sock.sendMessage(jid, {
audio: { url: './audio.mp3' },
mimetype: 'audio/mp4'
})
// Nota de voz (PTT)
await sock.sendMessage(jid, {
audio: { url: './voice.ogg' },
mimetype: 'audio/ogg; codecs=opus',
ptt: true // Push To Talk = nota de voz
})
```
## Enviar Contacto
```typescript
// Un contacto
await sock.sendMessage(jid, {
contacts: {
displayName: 'Juan Pérez',
contacts: [{
vcard: `BEGIN:VCARD
VERSION:3.0
FN:Juan Pérez
TEL;type=CELL;waid=1234567890:+1234567890
END:VCARD`
}]
}
})
// Múltiples contactos
await sock.sendMessage(jid, {
contacts: {
displayName: 'Mis Contactos',
contacts: [
{ vcard: '...' },
{ vcard: '...' }
]
}
})
```
## Enviar Ubicación
```typescript
await sock.sendMessage(jid, {
location: {
degreesLatitude: 24.121231,
degreesLongitude: 55.1121221
}
})
```
## Enviar Encuesta (Poll)
```typescript
await sock.sendMessage(jid, {
poll: {
name: '¿Cuál es tu color favorito?',
values: ['Rojo', 'Azul', 'Verde', 'Amarillo'],
selectableCount: 1 // Cantidad de opciones seleccionables
}
})
```
## Enviar con Quoted (Respuesta)
```typescript
// El 'quoted' debe ser el mensaje original completo
await sock.sendMessage(jid,
{ text: 'Esta es una respuesta' },
{ quoted: originalMessage }
)
// También funciona con media
await sock.sendMessage(jid,
{ image: { url: './image.jpg' }, caption: 'Respuesta con imagen' },
{ quoted: originalMessage }
)
```