Boters de WhatsApp multifuncionales con varios comandos listos.
CREANDO UN BOT DE WHATSAPP DESDE CERO (GUÍA DEFINITIVA) - BASE COMPLETA + 6 COMANDOS - JAVASCRIPT
- Idiomas disponibles
- Atención - soporte
- Sobre el proyecto
- Instalación
- Configuración de API
- Funcionalidades
- Auto respuesta
- Personalización
- Implementación técnica
- Estructura de carpetas
- Errores comunes
- Canal de YouTube
- Contribuyendo al proyecto
- Licencia
- Descargo de responsabilidad
-
Português (BR) — clique aqui
-
English — click here
-
Bahasa Indonesia — klik disini
No brindamos soporte gratuito en caso de que hayas adquirido esta base con terceros y hayas pagado por ello.
Este bot siempre fue y siempre será gratuito.
En caso de que hayas pagado para utilizar este bot, tal como está hoy, debes saber que fuiste engañado.
No tenemos ningún vínculo con terceros y no nos responsabilizamos por ello, tampoco brindamos soporte bajo esas condiciones.
Los únicos recursos pagos de este bot pertenecen a https://api.spiderx.com.br, nuestra API oficial.
Este proyecto no tiene ningún vínculo oficial con WhatsApp. Fue desarrollado de forma independiente para interacciones automatizadas a través de la plataforma.
No nos hacemos responsables de cualquier uso indebido de este bot. Es responsabilidad exclusiva del usuario garantizar que su utilización cumpla con los términos de uso de WhatsApp y la legislación vigente.
1 - Abre Termux y ejecuta los siguientes comandos. ¿No tienes Termux? Haz clic aquí para descargar la última versión o haz clic aquí para descargar la versión de Play Store si la versión de MediaFire anterior no funciona.
pkg upgrade -y && pkg update -y && pkg install git -y && pkg install nodejs-lts -y && pkg install ffmpeg -y2 - Habilita el acceso a la carpeta storage en Termux.
termux-setup-storage3 - Elija una carpeta de su elección para colocar los archivos del bot.
Carpetas más usadas:
- /sdcard
- /storage/emulated/0
- /storage/emulated/0/Download (muito comum quando você baixa o bot pelo .zip)
En nuestro ejemplo, vamos a /sdcard
cd /sdcard4 - Clona el repositorio.
git clone https://github.com/guiireal/takeshi-bot-espanol.git5 - Entra en la carpeta clonada.
cd takeshi-bot6 - Habilita permisos de lectura y escritura (haz este paso solo 1 vez).
chmod -R 755 ./*7 - Ejecuta el bot.
npm start8 - Inserta el número de teléfono y presiona enter.
9 - Informa el código que aparece en Termux en tu WhatsApp, mira aquí si no encuentras esta opción.
10 - Espera 10 segundos, luego escribe CTRL + C para detener el bot.
11 - Configura el archivo config.js que se encuentra dentro de la carpeta src.
// Prefijo de los comandos
exports.PREFIX = "/";
// Emoji del bot (cambia si lo prefieres).
exports.BOT_EMOJI = "🤖";
// Nombre del bot (cambia si lo prefieres).
exports.BOT_NAME = "Takeshi Bot";
// Número del bot. Coloca el número del bot
// (solo números, exactamente como está en WhatsApp).
exports.BOT_NUMBER = "558112345678";
// Número del dueño del bot. Coloca el número del dueño del bot
// (solo números, exactamente como está en WhatsApp).
exports.OWNER_NUMBER = "5521950502020";
// LID del dueño del bot.
// Para obtener el LID del dueño del bot, usa el comando <prefijo>get-lid @mencionar o +teléfono del dueño.
exports.OWNER_LID = "219999999999999@lid";12 - Inicia el bot nuevamente.
npm startLas principales hosts ya ofrecen Takeshi como bot por defecto, ¡no siendo necesaria ninguna instalación manual!
Hosts compatibles:
| Bronxys | Nexfuture |
|---|---|
| Grupo oficial | Grupo oficial |
| Speed Cloud | SpeedMaster |
|---|---|
| Grupo oficial | Grupo oficial |
| Bores Host |
|---|
| Grupo oficial |
1 - Abre una nueva terminal y ejecuta los siguientes comandos.
sudo apt update && sudo apt upgrade && sudo apt-get update && sudo apt-get upgrade && sudo apt install ffmpeg2 - Instala curl si no lo tienes.
sudo apt install curl3 - Instala git si no lo tienes.
sudo apt install git4 - Instala NVM.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash5 - Actualiza el source de tu entorno.
source ~/.bashrc6 - Instala la versión 22 más reciente de Node.js.
nvm install 227 - Verifica si la versión fue instalada y está activa.
node -v # Debe mostrar la versión 228 - Verifica si npm fue instalado junto.
npm -v # Deberá mostrar la versión de npm9 - Instala PM2 (recomendado).
npm install pm2 -g10 - Clona el repositorio del bot donde desees.
git clone https://github.com/guiireal/takeshi-bot-espanol.git11 - Entra en la carpeta clonada.
cd takeshi-bot12 - Escribe el siguiente comando.
npm start13 - El bot te pedirá que ingreses tu número de teléfono. Ingresa exactamente como está en WhatsApp y solo números.
14 - Conecta el bot a PM2.
pm2 start npm --name "takeshi-bot" -- start15 - El bot mostrará un código de emparejamiento que debe colocarse en dispositivos vinculados en tu WhatsApp.
16 - Ve a dispositivos vinculados en tu WhatsApp.
17 - Haz clic en Vincular un dispositivo.
18 - En la esquina inferior, haz clic en Vincular con número de teléfono.
19 - Coloca el código de emparejamiento que recibiste en la terminal, que se generó en el paso 15.
20 - Después de esto, en la terminal que quedó detenida, debería mostrar que se conectó con éxito.
21 - Escribe CTRL + C para detener el bot.
22 - Ahora, inícialo con PM2, ejecutando el siguiente código.
pm2 start npm --name "takeshi-bot" -- start23 - Configura el archivo config.js que se encuentra dentro de la carpeta src.
// Prefijo de los comandos
exports.PREFIX = "/";
// Emoji del bot (cambia si lo prefieres).
exports.BOT_EMOJI = "🤖";
// Nombre del bot (cambia si lo prefieres).
exports.BOT_NAME = "Takeshi Bot";
// Número del bot. Coloca el número del bot (solo números).
exports.BOT_NUMBER = "5511920202020";
// Número del dueño del bot. Coloca el número del dueño del bot (solo números).
exports.OWNER_NUMBER = "5511999999999";24 - Finalmente, ¡prueba el bot!
Edita el archivo config.js que se encuentra dentro de la carpeta src y pega tu clave API de la plataforma Spider X API, según el código a continuación.
Para obtener tu token, accede a: https://api.spiderx.com.br ¡y crea tu cuenta gratuitamente!
exports.SPIDER_API_TOKEN = "tu_token_aqui";| Función | Contexto | ¿Requiere Spider X API? |
|---|---|---|
| Apagar el bot en el grupo | Dueño | ❌ |
| Cambiar imagen del bot | Dueño | ❌ |
| Ejecutar comandos de infraestructura | Dueño | ❌ |
| Encender el bot en el grupo | Dueño | ❌ |
| Modificar el prefijo por grupo | Dueño | ❌ |
| Obtener el ID del grupo | Dueño | ❌ |
| Abrir grupo | Admin | ❌ |
| Activar/desactivar auto-respuesta | Admin | ❌ |
| Activar/desactivar bienvenida | Admin | ❌ |
| Activar/desactivar salida de grupo | Admin | ❌ |
| Anti audio | Admin | ❌ |
| Anti documento | Admin | ❌ |
| Anti evento | Admin | ❌ |
| Anti imagen | Admin | ❌ |
| Anti producto | Admin | ❌ |
| Anti sticker | Admin | ❌ |
| Anti video | Admin | ❌ |
| Anti-enlace | Admin | ❌ |
| Banear miembros | Admin | ❌ |
| Cambiar nombre del grupo | Admin | ❌ |
| Cerrar grupo | Admin | ❌ |
| Eliminar mensajes | Admin | ❌ |
| Gestão de mensagens do auto-responder | Admin | ❌ |
| Limpiar chat | Admin | ❌ |
| Mencionar a todos | Admin | ❌ |
| Programar mensaje | Admin | ❌ |
| Revelar | Admin | ❌ |
| Silenciar/desmutear | Admin | ❌ |
| Solo administradores | Admin | ❌ |
| Veja saldo | Admin | |
| Chat falso | Miembro | ❌ |
| Comandos de diversión/juegos | Miembro | ❌ |
| Descarga de video TikTok | Miembro | ✅ |
| Difuminar imagen | Miembro | ❌ |
| Espejar imagen | Miembro | ❌ |
| Generación de imágenes con IA | Miembro | ✅ |
| Generar enlace | Miembro | ❌ |
| Google Gemini | Miembro | ✅ |
| Google Search | Miembro | ✅ |
| Imagen blanco/negro | Miembro | ❌ |
| Imagen con contraste | Miembro | ❌ |
| Imagen IA Flux | Miembro | ✅ |
| Imagen pixelada | Miembro | ❌ |
| Lienzo cárcel | Miembro | ✅ |
| Lienzo invertir | Miembro | ✅ |
| Lienzo RIP | Miembro | ✅ |
| Ping | Miembro | ❌ |
| Renombrar sticker | Miembro | ❌ |
| Reproducir audio | Miembro | ✅ |
| Reproducir video | Miembro | ✅ |
| Sticker | Miembro | ❌ |
| Sticker a imagen | Miembro | ❌ |
| Sticker de texto animado | Miembro | ✅ |
| Sticker IA | Miembro | ✅ |
| YT MP3 | Miembro | ✅ |
| YT MP4 | Miembro | ✅ |
| YT Search | Miembro | ✅ |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-audio-from-file |
Enviar audio desde archivo | Demuestra el envío de archivos de audio desde el almacenamiento local | Opción de mensaje de voz, respuesta citada |
/send-audio-from-url |
Enviar audio desde URL | Demuestra el envío de archivos de audio desde URLs externas | Opción de mensaje de voz, respuesta citada |
/send-audio-from-buffer |
Enviar audio desde buffer | Demuestra el envío de archivos de audio desde buffers de memoria | Opción de mensaje de voz, respuesta citada, buffer de archivo o URL |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-image-from-file |
Enviar imagen desde archivo | Demuestra el envío de archivos de imagen desde el almacenamiento local | Soporte para subtítulo personalizado, menciones, respuesta citada |
/send-image-from-url |
Enviar imagen desde URL | Demuestra el envío de archivos de imagen desde URLs externas | Envío directo desde URL, soporte para menciones, respuesta citada |
/send-image-from-buffer |
Enviar imagen desde buffer | Demuestra el envío de archivos de imagen desde buffers de memoria | Buffer de archivo o URL, subtítulo opcional, menciones, respuesta citada |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-video-from-file |
Enviar video desde archivo | Demuestra el envío de archivos de video desde el almacenamiento local | Soporte para subtítulo personalizado, menciones, respuesta citada |
/send-video-from-url |
Enviar video desde URL | Demuestra el envío de archivos de video desde URLs externas | Envío directo desde URL, soporte para menciones, respuesta citada |
/send-video-from-buffer |
Enviar video desde buffer | Demuestra el envío de archivos de video desde buffers de memoria | Buffer de archivo o URL, subtítulo opcional, menciones, respuesta citada |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-gif-from-file |
Enviar GIF desde archivo | Demuestra el envío de archivos GIF desde el almacenamiento local | Soporte para subtítulo, menciones, respuesta citada |
/send-gif-from-url |
Enviar GIF desde URL | Demuestra el envío de archivos GIF desde URLs externas | Soporte para subtítulo, menciones, respuesta citada |
/send-gif-from-buffer |
Enviar GIF desde buffer | Demuestra el envío de archivos GIF desde buffers de memoria | Buffer de archivo o URL, subtítulo, menciones, respuesta citada |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-sticker-from-file |
Enviar sticker desde archivo | Demuestra el envío de archivos de sticker desde el almacenamiento local | Formato WebP |
/send-sticker-from-url |
Enviar sticker desde URL | Demuestra el envío de archivos de sticker desde URLs externas | Formato WebP |
/send-sticker-from-buffer |
Enviar sticker desde buffer | Demuestra el envío de archivos de sticker desde buffers de memoria | Buffer de archivo o URL |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-poll |
Enviar encuesta | Demuestra cómo crear y enviar encuestas/votaciones en grupos | Soporte para selección única o múltiple |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-document-from-file |
Enviar documento desde archivo | Demuestra el envío de archivos de documento desde el almacenamiento local | Especificación de tipo MIME, nombre de archivo personalizado |
/send-document-from-url |
Enviar documento desde URL | Demuestra el envío de archivos de documento desde URLs externas | Especificación de tipo MIME, nombre de archivo personalizado |
/send-document-from-buffer |
Enviar documento desde buffer | Demuestra el envío de archivos de documento desde buffers de memoria | Buffer de archivo o URL, tipo MIME, nombre de archivo personalizado |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/send-text |
Enviar texto | Demuestra el envío de mensajes de texto simples | Soporte para menciones |
/send-quoted |
Enviar respuesta | Demuestra el envío de mensajes de respuesta | Respuestas de éxito/error/advertencia |
/send-reaction |
Enviar reacciones | Demuestra el envío de emojis de reacción | Varias reacciones emoji, reacciones de éxito/error/advertencia |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/get-message-data |
Obtener metadatos del mensaje | Demuestra la extracción avanzada de metadatos de mensaje o mensaje citado | Análisis detallado, soporte para respuesta de mensajes, información técnica, menciones automáticas |
/get-group-data |
Obtener datos del grupo | Demuestra la extracción de información del grupo | Metadatos del grupo, lista de participantes, información de administrador |
/group-functions |
Funciones del grupo | Demuestra el uso de funciones de utilidad del grupo | Extracción de nombre, dueño, administradores, participantes del grupo |
| Comando | Función | Descripción | Características |
|---|---|---|---|
/samples-of-messages |
Centro de ejemplos | Centro con lista de todos los ejemplos disponibles | Menú interactivo, acceso directo a todos los ejemplos |
Takeshi Bot tiene un auto-respondedor incorporado, edita el archivo en ./database/auto-responder.json:
[
{
"match": "Hola",
"answer": "¿Hola, cómo estás?"
},
{
"match": "Todo bien",
"answer": "Estoy bien, gracias por preguntar"
},
{
"match": "¿Cuál es tu nombre?",
"answer": "Mi nombre es Takeshi Bot"
}
]El menú del bot se encuentra en la carpeta src, dentro del archivo menu.js.
Los mensajes se encuentran en la carpeta src, dentro del archivo messages.js.
Todos los comandos de ejemplo se encuentran en: src/commands/member/samples/
Todos los comandos de ejemplo utilizan funciones de src/utils/loadCommonFunctions.js:
sendAudioFromFile(filePath, asVoice, quoted)sendAudioFromURL(url, asVoice, quoted)sendAudioFromBuffer(buffer, asVoice, quoted)
sendImageFromFile(filePath, caption, mentions, quoted)sendImageFromURL(url, caption, mentions, quoted)sendImageFromBuffer(buffer, caption, mentions, quoted)
sendVideoFromFile(filePath, caption, mentions, quoted)sendVideoFromURL(url, caption, mentions, quoted)sendVideoFromBuffer(buffer, caption, mentions, quoted)
sendGifFromFile(file, caption, mentions, quoted)sendGifFromURL(url, caption, mentions, quoted)sendGifFromBuffer(buffer, caption, mentions, quoted)
sendStickerFromFile(filePath, quoted)sendStickerFromURL(url, quoted)sendStickerFromBuffer(buffer, quoted)
sendDocumentFromFile(filePath, mimetype, fileName, quoted)sendDocumentFromURL(url, mimetype, fileName, quoted)sendDocumentFromBuffer(buffer, mimetype, fileName, quoted)
sendText(text, mentions)sendReply(text, mentions)sendReact(emoji)sendSuccessReply(text, mentions),sendErrorReply(text, mentions),sendWarningReply(text, mentions),sendWaitReply(text, mentions)sendSuccessReact(),sendErrorReact(),sendWarningReact(),sendWaitReact()
getGroupMetadata()- Obtener metadatos completos del grupogetGroupName()- Obtener solo el nombre del grupogetGroupOwner()- Obtener información del dueño del grupogetGroupParticipants()- Obtener todos los participantes del grupogetGroupAdmins()- Obtener administradores del grupo
await sendImageFromFile("./assets/image.jpg", "¡Hola @5511999999999!", ["[email protected]"]);
await sendImageFromURL("https://exemplo.com/imagem.png",
"¡Hola @5511999999999 y @5511888888888!",
["[email protected]", "[email protected]"]
);await sendVideoFromFile("./assets/video.mp4", "¡Mira este video @5511999999999!", ["[email protected]"]);
const buffer = fs.readFileSync("./video.mp4");
await sendVideoFromBuffer(
buffer,
"¡Video especial para @5511999999999 y @5511888888888!",
["[email protected]", "[email protected]"]
);await sendGifFromFile(
"./assets/gif.mp4",
"¡Aquí tienes @5511999999999!",
["[email protected]"]
);Definiciones completas de TypeScript están disponibles en src/@types/index.d.ts con:
- Firmas de función detalladas
- Descripciones de parámetros
- Ejemplos de uso
- Especificaciones de tipo de retorno
Todos los archivos de ejemplo se almacenan en assets/samples/:
sample-audio.mp3- Archivo de audio para pruebasample-document.pdf- Documento PDF para pruebasample-document.txt- Documento de texto para pruebasample-image.jpg- Archivo de imagen para pruebasample-sticker.webp- Archivo de sticker para pruebasample-video.mp4- Archivo de video para prueba
- 📁 assets ➔ archivos multimedia
- 📁 auth ➔ archivos de conexión de bots
- 📁 images ➔ archivos de imagen
- 📁 funny ➔ GIFs divertidos de comandos
- 📁 samples ➔ archivos de muestra para pruebas
- 📁 temp ➔ archivos temporales
- 📁 database ➔ archivos de datos
- 📁 node_modules ➔ módulos de Node.js
- 📁 src ➔ código fuente del bot (normalmente aquí es donde más te meterás)
- 📁 @types ➔ carpeta donde se encuentran las definiciones de tipo
- 📁 commands ➔ carpeta donde se encuentran los comandos
- 📁 admin ➔ carpeta donde se encuentran los comandos administrativos
- 📁 member ➔ carpeta donde se encuentran los comandos generales (todos pueden usarlos)
- 📁 samples ➔ carpeta con comandos de ejemplo
- 📁 owner ➔ carpeta donde están los comandos del propietario (grupo y bot)
- 📝🤖-como-criar-comandos.js ➔ archivo de ejemplo de cómo crear un comando
- 📁 errors ➔ clases de error utilizadas en comandos
- 📁 middlewares ➔ interceptores de solicitudes
- 📁 services ➔ servicios varios
- 📁 utils ➔ utilidades
- 📝 config.js ➔ archivo de configuración del robot
- 📝 connection.js ➔ script de conexión de bot con la biblioteca Baileys
- 📝 index.js ➔ script de punto de entrada de bot
- 📝 loader.js ➔ script de carga de función
- 📝 menu.js ➔ menú de robots
- 📝 messages.js ➔ archivos de mensajes de bienvenida y despedida
- 📝 test.js ➔ guión de prueba
- 📝 ⚡-cases-estan-aqui.js ➔ easter egg
- 📝 index.js ➔ script de punto de entrada de bot para alojamiento
- 📝 .gitignore ➔ archivo para no cargar ciertas carpetas a GitHub
- 📝 LICENSE ➔ archivo de licencia
- 📝 package-lock.json ➔ archivo de caché de dependencias del bot
- 📝 package.json ➔ archivo de definición de dependencias del bot
- 📝 README.md ➔ esta documentación
- 📝 reset-qr-auth.sh ➔ archivo para eliminar las credenciales de bot
- 📝 update.sh ➔ archivo de actualización del bot
Ejecuta bash update.sh
El error de abajo ocurre cuando se descarga el archivo ZIP directamente en el celular en algunas versiones de la apk ZArchiver y también en celulares sin root.
Para resolver, sigue el tutorial de instalación vía git clone.
En caso de que dé algún error en la conexión, escriba el siguiente comando:
bash reset-qr-auth.shDespués, elimine el dispositivo de WhatsApp yendo a las configuraciones de WhatsApp en "dispositivos conectados" y repita
el procedimiento de iniciar el bot con npm start.
Abra el termux, escriba termux-setup-storage y después, acepte los permisos
Verifique si no tiene dos Takeshi's ejecutándose en su celular, muchas personas descargan el zip y siguen el tutorial, sin embargo, el tutorial no explica por el zip, sino por el git clone.
Generalmente las personas que cometen este error, se quedan con dos bots:
- El primero dentro de
/sdcard - El segundo en la carpeta
/storage/emulated/0/Download, que en el zip queda comotakeshi-bot-main
Debe eliminar uno de los bots y tanto configurar como ejecutar solo uno
El Takeshi Bot es un proyecto open source ¡y tu contribución es muy bienvenida!
- 🐛 Reportar bugs a través de los Issues
- ✨ Sugerir nuevas funcionalidades
- 🔧 Contribuir con código (nuevos comandos, correcciones, mejoras)
- ⭐ Dar una estrella al repositorio
- Lee nuestra Guía de Contribución completa
- Verifica los Issues abiertos
- Sigue el template obligatorio para Pull Requests
Este proyecto está licenciado bajo la Licencia Pública General GNU (GPL-3.0).
Esto significa que:
- Puedes usar este código como quieras, sea para proyectos personales o comerciales.
- Puedes modificar el código para adaptarlo a tus necesidades.
- Puedes compartir o vender el código, incluso modificado, pero necesitas:
- Mantener los créditos al autor original (Guilherme França - Dev Gui).
- Hacer disponible el código modificado bajo la misma licencia GPL-3.0.
Lo que no puedes hacer:
- No puedes transformar este código en algo propietario (cerrado) e impedir que otras personas lo accedan o lo usen.
Esta licencia garantiza que todos tengan acceso al código fuente y puedan colaborar libremente, promoviendo el intercambio y el mejoramiento del proyecto.
En este proyecto, necesité hospedar el node_modules, para ayudar a quien está ejecutando el bot por el celular, ya que muchos de ellos pueden no ejecutar el npm install por el termux correctamente.