Este post es solo la instalación: credenciales, clonado, configuración, build y auto-arranque.
📚 ¿Buscas entender cómo funciona el código, los pipelines, los casos de uso y las situaciones operativas? Eso está explicado para principiantes en Ecosistema Devjobs: Suite de Automatización — allí vive toda la explicación, autocontenida.
1. El mapa del ecosistema
Instalarás dos repos que juntos forman toda la suite:
| Repo | Qué instala | Para qué |
|---|---|---|
devjobs | El ecosistema completo (pipelines, bot, scrapers, backup) | Todo lo demás de esta guía |
Los componentes que se levantan:
| Componente | Función |
|---|---|
| Pipeline 1 (Twitch) | Graba directos de Sendo Sama y los sube a Telegram |
| Pipeline 2 (YouTube) | Descarga 160 canales de YouTube y los sube a Telegram |
| Bot Telegram | Bot interactivo del grupo |
| Scrapers | Noticias, tips, cine |
| Aliases | Control desde terminal |
| Systemd | Auto-arranque al boot |
✅ Todo lo demás (monitores, uploaders, IPC, keywords, OCR) está explicado en el post de myprojects, no aquí. Aquí solo se instala.
2. Requisitos previos
- Windows 10/11 con WSL2 y Docker Desktop (o Docker Engine en Linux)
- Git (viene con WSL2)
- Unos 20 GB de disco libre y una cuenta de Telegram
📚 Todo el funcionamiento interno (keyword
_KW_, OCR/sidecar, IPC, casos de uso) está explicado y autocontenido en Ecosistema Devjobs: Suite de Automatización.
3. Obtener el API ID y Hash de Telegram
Necesitas un API ID y un API Hash para que el bot/uploader puedan conectarse a la API de Telegram. Son tuyos y de tu cuenta: no uses los de otra persona.
- Ve a https://my.telegram.org e inicia sesión con tu número.
- Entra en API development tools.
- Crea una app: título y short name cualquiera (ej.
Devjobs,devjobs). - Copia el
api_id(número) y elapi_hash(cadena).
⚠️ Mantén estos datos en secreto: quien los tenga puede acceder a tu sesión de Telegram.
Desde terminal:
# Guardar como variables de entorno
echo 'export TG_API_ID=12345678' >> ~/.bashrc
echo 'export TG_API_HASH=abcdef...' >> ~/.bashrc
source ~/.bashrc
4. Obtener el token del bot de Telegram
Para el pipeline (uploader/bot) necesitas el token de un bot. Crea uno con @BotFather:
- Abre Telegram y busca @BotFather.
/newbot→ nombre → username.- Copia el token (
123456789:AAF...).
Guárdalo:
echo 'export BOT_TOKEN=123456789:AAF...' >> ~/.bashrc
source ~/.bashrc
💡 El bot es para subir contenido; la sesión de usuario (paso 7) es para los grupos privados.
5. Clonar el repositorio
cd ~
git clone git@github.com:jorbencas/devjobs.git
cd devjobs
6. Configurar variables de entorno
El repo trae archivos de ejemplo. Cópiate y rellena los reales:
cd ~/devjobs
cp .env.example .env
nano .env
Rellena al menos:
TG_API_ID/TG_API_HASH(paso 3)BOT_TOKEN(paso 4)
🤖 La ruta
data/se crea automáticamente al primer arranque.
7. Crear la sesión de Telegram
Para los grupos privados (pipeline 1 y 2) necesitas una sesión de usuario. El repo incluye un script:
cd ~/devjobs
python3 -m pip install -r requirements.txt # solo la primera vez
python3 -m scripts.crear_sesion
Sigue las instrucciones: introduce tu número y el código que te llega. Se generará un archivo .session que el uploader usará.
🔐 Mantén ese
.sessionen secreto y no lo subas a GitHub.
8. Configurar grupos de Telegram
El uploader necesita saber a qué grupo y temas subir. Configura en config/:
cd ~/devjobs && nano config/grupos.json
Estructura mínima:
{
"grupo": "Stream Tecnologia",
"temas": {
"wordle": { "topic_id": 5, "keyword": "wordle" },
"midudev": { "topic_id": 12, "keyword": "midudev" }
}
}
🔗 Cómo se obtiene cada
topic_idy casuística completa: el contrato de keyword y el ruteo.
9. Construir las imágenes Docker
cd ~/devjobs
docker compose build
O si prefieres construir solo algunos servicios:
docker compose build twitchrecorder-sendo ffmpeg_monitor-sendo uploader-sendo
10. Instalar los aliases
El repo incluye un instalador de aliases (40+ comandos pipe_*, ff_*, tg_*):
cd ~/devjobs
bash servicios/instalar_aliases.sh
source ~/.bashrc
Verifica:
pipe_help # muestra todos los aliases
🔗 Todos los aliases explicados: Sistema de aliases.
11. Probar el pipeline
Arranca todo el ecosistema:
pipe_up
- Pipeline 1:
twitchrecorder-sendo(grabador),ffmpeg_monitor-sendo(compresor),uploader-sendo(subidor a Telegram) - Pipeline 2:
yt-pipeline(descarga → convierte → sube) con su cron - Bot:
telegram-bot
Prueba el estado con el bot: /estado desde Telegram, o en terminal:
pipe_ps # contenedores en marcha
plogs # logs de los 3 daemons a la vez
12. Auto-arranque con systemd
Para que todo arranque solo al encender el PC:
# Instalar servicios (una sola vez)
bash servicios/bootstrap_arrancar.sh
# Gestionar
sudo systemctl status twitch-stream-pipeline.service
sudo systemctl status telegram-bot.service
🔗 Servicios, aliases
*_sys_*y bootstrap en otra máquina: Systemd.
Verificación final
| Comprobación | Cómo |
|---|---|
| ¿Contenedores arriba? | docker ps |
| ¿Grabando un directo? | plogs o ff_logs |
| ¿El bot responde? | /estado en Telegram |
| ¿Pipeline 2 arranca? | cat data/yt-pipeline/logs/cron_$(date +%Y%m%d).log |
Troubleshooting
| Problema | Solución |
|---|---|
| La sesión no conecta | Regenera .session con crear_sesion |
| El bot no responde | Revisa BOT_TOKEN y DATA_BOT en .env |
| No graba ningún directo | Comprueba la config del canal y start_time |
| Los contenedores no arrancan | docker compose build de nuevo; revisa puertos |
| No hay tema en Telegram | Revisa grupos.json y el topic_id |
El resto de piezas (explicadas en myprojects)
Toda la explicación del código y los casos de uso (no instalación) vive ahora en Ecosistema Devjobs: Suite de Automatización:
- Pipeline 1 (Twitch → Telegram): detección de directo, playlist congelada, keyword
_KW_, sidecar, IPC, cambio de plataforma a mitad - Pipeline 2 (YouTube → Telegram, 160 canales): configuración, flujo, cron
- Monitor de ffmpeg: por qué no hay un
monitor.json, flags y variables backup_youtube.shy resto de herramientas Docker (casos de uso)- Bot, scrapers, aliases y systemd: detalles operativos completos
Ahí está todo explicado paso a paso para que cualquiera lo entienda sin haber instalado nada.
