Parece que se duplicó el mensaje (es idéntico al anterior) — te dejo la versión condensada y prolija, lista para pegar en tu tutorial:
1. Instalar dependencias
sudo pacman -S chromium nodejs npm unzip
npm install -g @jackwener/opencli
2. Descargar y descomprimir la extensión
cd ~/Downloads
unzip opencli-extension-*.zip -d opencli-extension
3. Lanzar Chromium headless con la extensión
EXT_PATH="$HOME/Downloads/opencli-extension"
chromium --headless=new \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/chrome-debug-profile" \
--disable-extensions-except="$EXT_PATH" \
--load-extension="$EXT_PATH" \
--remote-allow-origins="*" \
--no-sandbox &
4. Conectar OpenCLI al puerto CDP
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9222"
opencli doctor # debe decir [OK] Extension: connected
5. Usar
opencli bilibili hot --limit 5
El CAPTCHA aparece porque --headless=new tiene un fingerprint detectable. Reemplazá el paso 3 por xvfb-run, que corre Chromium “headed” dentro de una pantalla virtual (sin abrir ventana real ni dejar fingerprint de headless):
sudo pacman -S xorg-server-xvfb xorg-xauth
xvfb-run --auto-servernum chromium \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/chrome-debug-profile" \
--disable-extensions-except="$EXT_PATH" \
--load-extension="$EXT_PATH" \
--remote-allow-origins="*" &
Después repetís los pasos 4 y 5 igual.
Nota para el tutorial: vale la pena aclarar que --headless=new es más simple pero más detectable (CAPTCHA en sitios estrictos como Google), mientras que xvfb-run requiere un paquete extra pero el comportamiento es indistinguible de un Chrome normal.
Antes de seguir a ciegas, necesito ver qué está pasando realmente. Pasame la salida de esto:
echo $OPENCLI_CDP_ENDPOINT
ps aux | grep -i chrom
ps aux | grep -i xvfb
curl http://127.0.0.1:9222/json/version
Mi sospecha principal: el Chromium anterior (el de --headless=new, PID 13549) probablemente sigue corriendo en background sobre el mismo --user-data-dir. Si después corriste el comando con xvfb-run, chocó con el mismo error de SingletonLock que ya vimos — pero esta vez quizás falló silenciosamente (sin que lo notaras) y nunca llegó a levantar el nuevo proceso, dejando el puerto 9222 muerto o apuntando al Chromium viejo que ya no tiene la extensión activa de la misma forma.
Solución rápida — matar todo y arrancar limpio:
pkill -9 chromium
pkill -9 Xvfb
rm -f "$HOME/chrome-debug-profile/SingletonLock"
EXT_PATH="$HOME/Downloads/opencli-extension"
xvfb-run --auto-servernum chromium \
--remote-debugging-port=9222 \
--disable-extensions-except="$EXT_PATH" \
--load-extension="$EXT_PATH" \
--remote-allow-origins="*" &
# --user-data-dir="$HOME/chrome-debug-profile" \
sleep 3
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9222"
opencli doctor
El sleep 3 es para darle tiempo a Chromium a levantar antes de chequear — a veces opencli doctor corre demasiado rápido y el browser todavía no terminó de iniciar la extensión.
Pasame el resultado de los echo/ps/curl de arriba (sobre todo si curl devuelve algo o un “connection refused”) y lo afinamos con datos reales en vez de suposiciones.
Para discord uso discordo-git
yay -S discordo-git y
export DISCORDO_TOKEN=“aisodjaojdid” en el .bashrc
xvfb-run --auto-servernum chromium \
--remote-debugging-port=9222 \
--disable-extensions-except="$EXT_PATH" \
--load-extension="$EXT_PATH" \
--proxy-server="socks5://localhost:9050" \
--remote-allow-origins="*" &
:s/"/\\"/g
Siempre usa --format plain