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

33 KiB
Raw Permalink Blame History

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

Funciones

Variables

Interfaces


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; ptt: boolean; seconds: number; } | object & WithDimensions | object & Contextable & object & Editable

Defined in: src/Types/Message.ts:163

Type declaration

mimetype?

optional mimetype: string


type Aliase: AnyMessageContent

Fuente: https://baileys.wiki/docs/api/type-aliases/AnyMessageContent

On this page

AnyMessageContent: AnyRegularMessageContent | { force: boolean; forward: WAMessage; } | { delete: WAMessageKey; } | { disappearingMessagesInChat: boolean | number; } | { limitSharing: boolean; }

Defined in: src/Types/Message.ts:271

Type declaration

AnyRegularMessageContent

{ force: boolean; forward: WAMessage; }

force?

optional force: boolean

forward

forward: WAMessage

{ delete: WAMessageKey; }

delete

delete: WAMessageKey

Delete your message or anyone's message in a group (admin required)

{ disappearingMessagesInChat: boolean | number; }

disappearingMessagesInChat

disappearingMessagesInChat: boolean | number

{ limitSharing: boolean; }

limitSharing

limitSharing: boolean


type Aliase: AnyRegularMessageContent

Fuente: https://baileys.wiki/docs/api/type-aliases/AnyRegularMessageContent

AnyRegularMessageContent: object & Mentionable & Contextable & Editable | AnyMediaMessageContent | { event: EventMessageOptions; } | object & Mentionable & Contextable & Editable | { contacts: { contacts: IContactMessage[]; displayName: string; }; } | { location: WALocationMessage; } | { react: IReactionMessage; } | { buttonReply: ButtonReplyInfo; type: "template" | "plain"; } | { groupInvite: GroupInviteInfo; } | { listReply: Omit<IListResponseMessage, "contextInfo">; } | { pin: WAMessageKey; time: 86400 | 604800 | 2592000; type: Type; } | { body: string; businessOwnerJid: string; footer: string; product: WASendableProduct; } | SharePhoneNumber | RequestPhoneNumber & ViewOnce

Defined in: src/Types/Message.ts:218


type Aliase: WAContactMessage

Fuente: https://baileys.wiki/docs/api/type-aliases/WAContactMessage

WAContactMessage: IContactMessage

Defined in: src/Types/Message.ts:18


type Aliase: WAContactsArrayMessage

Fuente: https://baileys.wiki/docs/api/type-aliases/WAContactsArrayMessage

WAContactsArrayMessage: IContactsArrayMessage

Defined in: src/Types/Message.ts:19


type Aliase: WALocationMessage

Fuente: https://baileys.wiki/docs/api/type-aliases/WALocationMessage

WALocationMessage: ILocationMessage

Defined in: src/Types/Message.ts:29


type Aliase: WAGenericMediaMessage

Fuente: https://baileys.wiki/docs/api/type-aliases/WAGenericMediaMessage

WAGenericMediaMessage: IVideoMessage | IImageMessage | IAudioMessage | IDocumentMessage | IStickerMessage

Defined in: src/Types/Message.ts:30


type Aliase: PollMessageOptions

Fuente: https://baileys.wiki/docs/api/type-aliases/PollMessageOptions

On this page

PollMessageOptions: object

Defined in: src/Types/Message.ts:133

Type declaration

messageSecret?

optional messageSecret: Uint8Array

32 byte message secret to encrypt poll selections

name

name: string

selectableCount?

optional selectableCount: number

toAnnouncementGroup?

optional toAnnouncementGroup: boolean

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

Type declaration

call?

optional call: "audio" | "video"

description?

optional description: string

endDate?

optional endDate: Date

extraGuestsAllowed?

optional extraGuestsAllowed: boolean

isCancelled?

optional isCancelled: boolean

isScheduleCall?

optional isScheduleCall: boolean

location?

optional location: WALocationMessage

messageSecret?

optional messageSecret: Uint8Array<ArrayBufferLike>

name

name: string

startDate

startDate: Date


type Aliase: MediaType

Fuente: https://baileys.wiki/docs/api/type-aliases/MediaType

MediaType: keyof typeof MEDIA_HKDF_KEY_MAPPING

Defined in: src/Defaults/index.ts:117


type Aliase: MediaGenerationOptions

Fuente: https://baileys.wiki/docs/api/type-aliases/MediaGenerationOptions

On this page

MediaGenerationOptions: object

Defined in: src/Types/Message.ts:336

Type declaration

backgroundColor?

optional backgroundColor: string

font?

optional font: number

logger?

optional logger: ILogger

mediaCache?

optional mediaCache: CacheStore

cache media so it does not have to be uploaded again

mediaTypeOverride?

optional mediaTypeOverride: MediaType

mediaUploadTimeoutMs?

optional mediaUploadTimeoutMs: number

options?

optional options: RequestInit

upload

upload: 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

Type declaration

backgroundColor?

optional backgroundColor: string

backgroundcolor for status

broadcast?

optional broadcast: boolean

if it is broadcast

ephemeralExpiration?

optional ephemeralExpiration: number | string

disappearing messages settings

font?

optional font: number

font type for status

mediaUploadTimeoutMs?

optional mediaUploadTimeoutMs: number

timeout for media upload to WA server

quoted?

optional quoted: WAMessage

the message you want to quote

statusJidList?

optional statusJidList: string[]

jid list of participants for status@broadcast

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 & MessageGenerationOptionsFromContent

Defined in: src/Types/Message.ts:357


type Aliase: MessageContentGenerationOptions

Fuente: https://baileys.wiki/docs/api/type-aliases/MessageContentGenerationOptions

On this page

MessageContentGenerationOptions: MediaGenerationOptions & object

Defined in: src/Types/Message.ts:351

Type declaration

optional getCallLink: (type, event?) => Promise<string | undefined>

Parameters

type

"audio" | "video"

event? startTime

number

Returns

Promise<string | undefined>

getProfilePicUrl()?

optional getProfilePicUrl: (jid, type) => Promise<string | undefined>

Parameters

jid

string

type

"image" | "preview"

Returns

Promise<string | undefined>

getUrlInfo()?

optional getUrlInfo: (text) => Promise<WAUrlInfo | undefined>

Parameters

text

string

Returns

Promise<WAUrlInfo | undefined>

jid?

optional jid: string


type Aliase: WAMediaUpload

Fuente: https://baileys.wiki/docs/api/type-aliases/WAMediaUpload

WAMediaUpload: Buffer | WAMediaPayloadStream | WAMediaPayloadURL

Defined in: src/Types/Message.ts:41


type Aliase: DownloadableMessage

Fuente: https://baileys.wiki/docs/api/type-aliases/DownloadableMessage

On this page

DownloadableMessage: object

Defined in: src/Types/Message.ts:83

Type declaration

directPath?

optional directPath: string | null

mediaKey?

optional mediaKey: Uint8Array | null

url?

optional url: string | null


type Aliase: WAContextInfo

Fuente: https://baileys.wiki/docs/api/type-aliases/WAContextInfo

WAContextInfo: IContextInfo

Defined in: src/Types/Message.ts:28


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


Funciones


function: prepareWAMessageMedia

Fuente: https://baileys.wiki/docs/api/functions/prepareWAMessageMedia

On this page

prepareWAMessageMedia(message, options): Promise<Message>

Defined in: src/Utils/messages.ts:116

Parameters

message

AnyMediaMessageContent

options

MessageContentGenerationOptions

Returns

Promise<Message>


function: generateWAMessage

Fuente: https://baileys.wiki/docs/api/functions/generateWAMessage

On this page

generateWAMessage(jid, content, options): Promise<WAMessage>

Defined in: src/Utils/messages.ts:707

Parameters

jid

string

content

AnyMessageContent

options

MessageGenerationOptions

Returns

Promise<WAMessage>


function: generateWAMessageContent

Fuente: https://baileys.wiki/docs/api/functions/generateWAMessageContent

On this page

generateWAMessageContent(message, options): Promise<Message>

Defined in: src/Utils/messages.ts:369

Parameters

message

AnyMessageContent

options

MessageContentGenerationOptions

Returns

Promise<Message>


function: generateWAMessageFromContent

Fuente: https://baileys.wiki/docs/api/functions/generateWAMessageFromContent

On this page

generateWAMessageFromContent(jid, message, options): WAMessage

Defined in: src/Utils/messages.ts:623

Parameters

jid

string

message

IMessage

options

MessageGenerationOptionsFromContent

Returns

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

Get the key to access the true type of content

Parameters

content

undefined | IMessage

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

Parameters

message

IMessage

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

Downloads the given message. Throws an error if it's not a media message

Type Parameters

Type extends "buffer" | "stream"

Parameters

message

WAMessage

type

Type

options

MediaDownloadOptions

ctx?

DownloadMediaMessageContext

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

Parameters

__namedParameters

DownloadableMessage

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

MediaDownloadOptions = {}

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

Parameters

media

WAMediaUpload

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

EncryptedStreamOptions = {}

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>

Defined in: src/Utils/messages-media.ts:95

generates all the keys required to encrypt/decrypt & sign a media message

Parameters

buffer

undefined | null | string | Uint8Array<ArrayBufferLike>

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

Promise<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


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


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

Type declaration

audio

audio: string = 'Audio'

biz-cover-photo

biz-cover-photo: string = 'Image'

document

document: string = 'Document'

gif

gif: string = 'Video'

image

image: string = 'Image'

md-app-state

md-app-state: string = 'App State'

md-msg-hist

md-msg-hist: string = 'History'

payment-bg-image

payment-bg-image: string = 'Payment Background'

ppic

ppic: string = ''

product

product: string = 'Image'

product-catalog-image

product-catalog-image: string = ''

ptt

ptt: string = 'Audio'

ptv

ptv: string = 'Video'

sticker

sticker: string = 'Image'

thumbnail-document

thumbnail-document: string = 'Document Thumbnail'

thumbnail-image

thumbnail-image: string = 'Image Thumbnail'

thumbnail-link: string = 'Link Thumbnail'

thumbnail-video

thumbnail-video: string = 'Video Thumbnail'

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

Properties

canonical-url

canonical-url: string

Defined in: src/Types/Message.ts:103

description?

optional description: string

Defined in: src/Types/Message.ts:106

highQualityThumbnail?

optional highQualityThumbnail: IImageMessage

Defined in: src/Types/Message.ts:108

jpegThumbnail?

optional jpegThumbnail: Buffer<ArrayBufferLike>

Defined in: src/Types/Message.ts:107

matched-text

matched-text: string

Defined in: src/Types/Message.ts:104

originalThumbnailUrl?

optional originalThumbnailUrl: string

Defined in: src/Types/Message.ts:109

title

title: string

Defined in: src/Types/Message.ts:105


Ejemplos de Uso Comunes

Enviar Imagen

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

await sock.sendMessage(jid, {
  video: { url: './video.mp4' },
  caption: 'Mi video',
  mimetype: 'video/mp4',
  gifPlayback: false // true para GIFs
})

Enviar Documento

await sock.sendMessage(jid, {
  document: { url: './document.pdf' },
  mimetype: 'application/pdf',
  fileName: 'documento.pdf',
  caption: 'Documento importante'
})

Enviar Audio

// 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

// 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

await sock.sendMessage(jid, {
  location: {
    degreesLatitude: 24.121231,
    degreesLongitude: 55.1121221
  }
})

Enviar Encuesta (Poll)

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)

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