Bot de Mastodon para generar texto ALT en español con Gemini para imágenes, GIFs y vídeos.
Find a file
2026-03-29 16:49:42 +00:00
systemd Añadir systemd/altbot.service.example 2026-03-26 20:07:23 +00:00
.env.example Añadir .env.example 2026-03-26 19:57:44 +00:00
.gitignore Añadir .gitignore 2026-03-26 20:02:17 +00:00
bot.py Actualizar bot.py 2026-03-29 16:49:42 +00:00
LICENSE.txt Actualizar LICENSE.txt 2026-03-26 20:00:50 +00:00
politica-privacidad.md Actualizar política de privacidad del bot 2026-03-27 17:01:31 +00:00
README.md Actualizar README.md 2026-03-27 17:05:39 +00:00
requirements.txt Actualizar requirements.txt 2026-03-26 19:59:28 +00:00

Altbot Gemini

Bot de Mastodon para generar propuestas de texto ALT en español usando IA externa.

Qué hace

Altbot responde a menciones en publicaciones con imágenes, GIFs y vídeos, y genera una propuesta de descripción accesible en español.

También puede transcribir de forma aproximada el audio de un vídeo si se le invoca con transcribe o audio.

Cómo funciona

  • Recibe menciones en Mastodon
  • Detecta imágenes, GIFs o vídeos en la publicación actual o en la publicación padre inmediata
  • Pide consentimiento previo antes de enviar archivos a IA externa
  • Guarda la decisión del usuario en una base de datos SQLite
  • Genera una descripción o transcripción con Gemini
  • Responde con una propuesta reutilizable

Importante

Este bot envía archivos a un proveedor externo de IA para generar la descripción. No es un sistema local ni privado por defecto.

Funciones principales

  • Soporte para imágenes, GIFs y vídeos
  • Modo de transcripción aproximada para vídeos con transcribe o audio
  • Consentimiento previo con respuesta o no
  • Almacenamiento local del consentimiento en SQLite
  • Comandos de privacidad: mis_datos, olvidame, privacidad
  • Detección de duplicados para evitar respuestas repetidas
  • Respeto por etiquetas como #nobot, #noaltbot y #noimagebot
  • Respuesta con la misma visibilidad que la publicación original cuando corresponde
  • Uso del archivo adjunto del toot actual o del toot padre inmediato

Requisitos

  • Python 3.11 o superior
  • Cuenta de Mastodon para el bot
  • Token de acceso de Mastodon
  • Clave API de Gemini

Variables de entorno

Crea un archivo .env con este contenido:

MASTODON_BASE_URL=https://tu-instancia.example
MASTODON_ACCESS_TOKEN=tu_token
GEMINI_API_KEY=tu_clave
PRIVACY_URL=https://tu-web.example/politica-privacidad

Si no defines PRIVACY_URL, el bot seguirá funcionando, pero el comando privacidad no podrá enlazar una página externa.

Instalación

git clone <repo>
cd altbot-gemini
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Ejecución manual

source venv/bin/activate
python bot.py

Servicio systemd

Puedes usar como referencia el archivo:

systemd/altbot.service.example

Ejemplo:

[Unit]
Description=Altbot Gemini Mastodon Bot
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=elenamusk
WorkingDirectory=/home/elenamusk/altbot-gemini
ExecStart=/home/elenamusk/altbot-gemini/venv/bin/python /home/elenamusk/altbot-gemini/bot.py
Restart=always
RestartSec=5
UMask=0077
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Uso

Descripción de imágenes, GIFs y vídeos

  1. Menciona al bot en una publicación con imagen, GIF o vídeo.
  2. O responde con una mención a una publicación cuyo padre inmediato tenga ese archivo adjunto.
  3. La primera vez, el bot pedirá consentimiento antes de enviar el archivo a IA externa.
  4. Tras aceptar, vuelve a mencionarlo en la publicación que quieras describir.

Transcripción de audio en vídeo

Menciona al bot con una palabra como:

@altbot transcribe

o

@altbot audio

en una publicación con vídeo o en respuesta directa a una publicación cuyo padre inmediato tenga vídeo.

Comandos

Comando Descripción
ayuda Muestra información de uso
mis_datos Consulta tu consentimiento guardado
olvidame Borra tu consentimiento de la base de datos
privacidad Enlaza a la política de privacidad
transcribe / audio Activa el modo transcripción en vídeos

Privacidad

El bot pide consentimiento antes de procesar archivos y guarda la decisión del usuario en una base de datos local SQLite.

Consulta politica-privacidad.md para más detalles.

Limitaciones

  • Las descripciones y transcripciones son automáticas y pueden contener errores
  • Conviene revisar el resultado antes de usarlo como ALT definitivo
  • El bot depende de un proveedor externo para generar las descripciones
  • Los vídeos tienen un límite de tamaño configurado en el código
  • El bot solo usa el archivo adjunto del toot actual o del toot padre inmediato

Estado del proyecto

Proyecto funcional en beta pública, con mejoras en curso.

Licencia

Este proyecto se distribuye bajo licencia AGPL-3.0.

Consulta el archivo LICENSE.