Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://whiskeysockets-docs-jids-socket-config-ptbr.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

O Baileys aceita mídia em três formas via WAMediaUpload: Buffer, { url: '...' }, ou { stream: Stream }.
Buffer
{ url: URL | string }
{ stream: Readable }
Prefira { url } ou { stream } ao invés de Buffer cru — o Baileys faz streaming direto e reduz uso de RAM.

Enviando mídia

Imagem

await sock.sendMessage(
    id,
    {
        image: {
            url: './Media/ma_img.png'
        },
        caption: 'hello word'
    }
)

Vídeo

await sock.sendMessage(
    id,
    {
        video: {
            url: './Media/ma_gif.mp4'
        },
        caption: 'hello word',
        ptv: false
    }
)

GIF

O WhatsApp não suporta .gif. Envie como .mp4 com gifPlayback: true.
await sock.sendMessage(
    jid,
    {
        video: fs.readFileSync('Media/ma_gif.mp4'),
        caption: 'hello word',
        gifPlayback: true
    }
)

Áudio

Converta com ffmpeg antes de enviar:
ffmpeg -i input.mp4 -avoid_negative_ts make_zero -ac 1 output.ogg
await sock.sendMessage(
    jid,
    {
        audio: {
            url: './Media/audio.mp3'
        },
        mimetype: 'audio/mp4'
    }
)
Flags ffmpeg: codec: libopus, ac: 1, avoid_negative_ts make_zero.

Visualizar uma vez

await sock.sendMessage(
    id,
    {
        image: {
            url: './Media/ma_img.png'
        },
        viewOnce: true,
        caption: 'hello word'
    }
)

Geração de miniaturas

Tipo de mídiaDependênciaComando
Imagens, figurinhasjimp ou sharpyarn add jimp / yarn add sharp
Vídeosffmpeg (sistema)Gerenciador de pacotes do SO

Baixando mídia recebida

import { createWriteStream } from 'fs'
import { downloadMediaMessage, getContentType } from '@whiskeysockets/baileys'

sock.ev.on('messages.upsert', async ({ messages }) => {
    for (const m of messages) {
        if (!m.message) continue
        const messageType = getContentType(m.message)

        if (messageType === 'imageMessage') {
            const stream = await downloadMediaMessage(
                m,
                'stream',
                { },
                {
                    logger,
                    reuploadRequest: sock.updateMediaMessage
                }
            )
            const writeStream = createWriteStream('./my-download.jpeg')
            stream.pipe(writeStream)
        }
    }
})

Re-upload de mídia antiga

await sock.updateMediaMessage(msg)
reuploadRequest: sock.updateMediaMessage em downloadMediaMessage cuida disso automaticamente em 404 ou 410.