YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
- Xbot — Bot de Warmup (GoLogin + Playwright, fase 1: model_uk)
- 1. Instalación (Windows, paso a paso)
- 2. Obtener el API token de GoLogin
- 3. Obtener el
profile_id(script incluido) - Salida esperada (tabla
ID | NOMBRE): ``` ID NOMBRE - a1b2c3d4-.... model_uk
- 5. Flujo secuencial por fases (importante)
- 6. Uso diario
- 7. Archivos generados en tiempo de ejecución
- 8. Automatizar con Task Scheduler (opcional)
- 9. Reglas anti-ban implementadas (resumen)
- 10. Solución de problemas
- 11. Estructura del proyecto
Xbot — Bot de Warmup (GoLogin + Playwright, fase 1: model_uk)
Bot de warmup para cuentas de Instagram gestionadas dentro del navegador
antidetect GoLogin (app Orbita, Windows). Cada cuenta vive SIEMPRE dentro
de su perfil GoLogin (proxy + fingerprint propios): el bot controla ese
navegador vía CDP (connect_over_cdp), nunca abre uno propio.
Fase 1: solo
model_uk(Instagram UK). TikTok entra en fase 2 (no implementado).
1. Instalación (Windows, paso a paso)
1.1 Instalar Python 3.11+
- Descarga el instalador desde https://www.python.org/downloads/windows/
- En la primera pantalla del instalador marca "Add python.exe to PATH".
- Instala y verifica en una terminal nueva:
Debe mostrar 3.11+ (el código es compatible también con 3.10; se recomienda 3.11+). Si tienes varias versiones, puedes forzar conpython --versionpy -3.11.
1.2 Instalar las dependencias
Todos los comandos se ejecutan desde la carpeta del proyecto:
cd C:\xbot
pip install -r requirements.txt
o, manualmente:
pip install pygologin playwright PyYAML tzdata requests
Notas:
pygologines el SDK oficial (repo: github.com/gologinapp/pygologin).tzdataes obligatorio en Windows para quezoneinforesuelvaEurope/London(regla de horario 09:00–23:00 UK).- No hace falta
playwright install: el bot nunca lanza un navegador propio, solo se conecta por CDP al Orbita de GoLogin.
2. Obtener el API token de GoLogin
- Abre la app de GoLogin → Settings → API.
- Copia el API token.
- Guárdalo como variable de entorno permanente (CMD):
setx GOLOGIN_TOKEN "PEGA_AQUI_TU_TOKEN" - Cierra y vuelve a abrir la terminal. Verifica:
echo %GOLOGIN_TOKEN%
Si no ves la pestaña API o el token aparece bloqueado, tu plan de GoLogin puede no incluir acceso API.
3. Obtener el profile_id (script incluido)
cd C:\xbot
python list_profiles.py
Salida esperada (tabla ID | NOMBRE):
```
ID NOMBRE
a1b2c3d4-.... model_uk
Copia el `ID` del perfil de Orbita de la cuenta model_uk.
---
## 4. Configurar `config.yaml`
Edita `C:\xbot\config.yaml` — sección `profiles.model_uk`:
```yaml
profiles:
model_uk:
warmup_start: "2026-09-07" # fecha de inicio del warmup (YYYY-MM-DD)
ig_handle: TU_USUARIO_DE_INSTAGRAM # rellena cuando exista la cuenta
gologin_profile_id: PEGA_EL_ID_DEL_PASO_3
nurture_days_before_account: 3 # dias de SOLO nurturing antes de pedir crear la cuenta
account_ready: false # pon true cuando la cuenta IG exista en ese perfil
Opcional (notificaciones): telegram.bot_token, telegram.chat_id,
telegram.notify_summary: true.
5. Flujo secuencial por fases (importante)
El bot es secuencial: mientras no exista la cuenta de Instagram, jamás
entra a Instagram. La fase se guarda en state.json (campo phase).
flowchart TD
A[nurture_pre: dias 1 a N solo nurturing] -->|warmup_day supera N| B[awaiting_account]
B -->|usuario crea correo y cuenta IG a mano y pone account_ready true| C[ig_warmup]
B -->|cada dia sigue nutriendo| B
C -->|flujo normal: nurturing + feed IG| C
Fase 1: nurture_pre (días 1 a N, default 3)
La sesión diaria es solo cookie nurturing (todo el presupuesto de 15-35 min va a bbc/amazon/youtube/gumtree/rightmove). Sin Instagram.
Fase 2: awaiting_account (te toca a ti)
Cuando warmup_day supera nurture_days_before_account, el bot imprime:
[ACCION MANUAL REQUERIDA - fase awaiting_account]
1. Abre este perfil de Orbita manualmente y crea el CORREO (ej. gmail.com).
2. Con ese correo crea la CUENTA DE INSTAGRAM dentro del MISMO perfil
(instagram.com/accounts/emailsignup) y verifica email/telefono.
3. Deja la sesion de IG iniciada en ese perfil.
4. En config.yaml pon: account_ready: true (y el ig_handle real).
5. Vuelve a correr: python bot.py --profile <perfil>
Cada día en esta fase el bot sigue nutriendo (sesión solo de nurturing) y te lo recuerda. Si configuraste Telegram, las instrucciones también llegan ahí.
Fase 3: ig_warmup (flujo normal)
Cuando pongas account_ready: true y el ig_handle real, la siguiente
corrida entra al flujo completo: nurturing (50-65% del tiempo) + feed de
Instagram. Los likes siguen sujetos a like_start_day (día 4) y topes diarios.
6. Uso diario
Sesión automática
cd C:\xbot
python bot.py --profile model_uk
- Solo corre entre 09:00 y 23:00 hora UK; una sesión por día (idempotente).
- Si ya corrió hoy: "ya ejecuto su sesion de hoy" y no hace nada.
Abrir el perfil para crear la cuenta a mano (--task manual)
python bot.py --profile model_uk --task manual
Abre Orbita con tu perfil (proxy + fingerprint reales), deja el navegador
abierto para que tú crees el correo y la cuenta de Instagram, y al
presionar ENTER lo cierra limpio. Es actividad humana: no aplica la ventana
horaria ni la cuarentena (solo se avisa). Recomendado usarlo cuando el bot
esté en fase awaiting_account.
Qué hace una sesión automática (daily)
- Valida perfil, horario UK, cuarentena, idempotencia y fase.
- Arranca Orbita con tu perfil GoLogin (
gl.start(), 2 reintentos). - Nurturing (siempre).
- Instagram solo en fase
ig_warmup: 8-20 posts, pausas 2-40 s, 1 video completo al azar, 0-3 likes con hover previo (solowarmup_day >= 4). - Cierra Orbita, guarda
state.json(warmup_day += 1) y loguea enlogs.db.
7. Archivos generados en tiempo de ejecución
| Archivo | Qué es |
|---|---|
state.json |
Estado por perfil: phase, warmup_day, likes_today, sessions_today, last_run, quarantine_until |
logs.db |
SQLite con la tabla actions(timestamp, profile, action, detail, ok) |
Consultar el log:
python -c "import sqlite3;[print(r) for r in sqlite3.connect('logs.db').execute('SELECT timestamp, action, detail, ok FROM actions ORDER BY id DESC LIMIT 30')]"
Liberar la cuarentena manualmente (solo si estás seguro)
Edita state.json y pon "quarantine_until": null.
Reiniciar el warmup de un perfil
Borra la entrada del perfil en state.json; warmup_day y phase se
recalculan desde warmup_start en la siguiente corrida.
8. Automatizar con Task Scheduler (opcional)
schtasks /Create /TN "XbotWarmup" /TR "python C:\xbot\bot.py --profile model_uk" /SC DAILY /ST 10:07
Hora con minutos irregulares a propósito; el bot revalida el horario UK internamente.
9. Reglas anti-ban implementadas (resumen)
- Sesión total 15-35 min (log-normal), máx 1 sesión/día (idempotencia).
- Sleep entre acciones: base 2-8 s con jitter ±50% — nunca valores fijos.
- Likes: máx 15/día, solo desde
warmup_day >= 4, probabilidad 0.4 por post, nunca 2 likes seguidos sin scroll de por medio, siempre hover antes de like. - Kill signal (captcha / login requerido / challenge / checkpoint) → aborta
TODO,
gl.stop(), cuarentena 48 h y notificación Telegram. - Solo corre 09:00-23:00
Europe/London(zoneinfo). - Nunca comenta, sigue, publica ni abre DMs; solo perfiles de
config.yaml. - Idempotente por día.
warmup_day += 1al terminar la sesión diaria completa.- Flujo secuencial: sin cuenta de Instagram creada, el bot no entra a
Instagram (fases
nurture_pre/awaiting_account).
10. Solución de problemas
| Síntoma | Causa / solución |
|---|---|
Could not open requirements file |
No estás en C:\xbot: ejecuta cd C:\xbot primero |
No pude cargar la zona horaria Europe/London |
Falta pip install tzdata |
GOLOGIN_TOKEN esta vacio |
setx GOLOGIN_TOKEN "..." y reabre la terminal |
token rechazado por GoLogin (HTTP 401) |
Token incorrecto o revocado; regenera en Settings → API |
GoLogin no arranco tras 3 intentos |
Cierra Orbita manualmente, revisa proxy del perfil, reintenta |
No pude conectarme al navegador Orbita via CDP |
Cierra el perfil abierto en la app de GoLogin y reintenta |
| El bot nunca entra a Instagram | Estás en fase nurture_pre/awaiting_account: crea la cuenta a mano (--task manual) y pon account_ready: true en config.yaml |
[ERROR] Falta una dependencia |
cd C:\xbot && pip install -r requirements.txt |
| Se detiene y no corre de nuevo | Idempotencia diaria; correrá mañana |
11. Estructura del proyecto
C:\xbot\
├── bot.py # entrypoint CLI (--profile --task daily|manual) + fases
├── config.yaml # perfiles, límites, sitios, Instagram, telegram
├── gologin_client.py # wrapper pygologin: start/stop + 2 reintentos
├── human.py # sleep_jitter, bezier_move, random_scroll, log_normal
├── list_profiles.py # obtiene profile_id (GET /profiles)
├── actions/
│ ├── nurture.py # cookie nurturing 3-4 sitios
│ ├── ig_scroll.py # feed IG + likes condicionales
│ └── detect.py # captcha/challenge/checkpoint → kill signal
├── state.json # (generado al correr) estado por perfil, incluye phase
├── logs.db # (generado al correr) log SQLite
└── requirements.txt
- Downloads last month
- 5