npx skills add ...
npx skills add gauss314/skills --skill google-finance
Datos de Google Finance via batchexecute (API RPC interna sin auth ni API key). Quote, OHLC intraday 1-min y 5-min, OHLC daily, financials masivos (income/balance/cashflow), earnings, analyst recommendations + opinions, descripcion empresa, peers, news, indices globales (Dow/S&P/NASDAQ/VIX/DAX), sectors heatmap. Cobertura mercados US (NASDAQ/NYSE) y argentinos (BCBA). ⚠️ API NO oficial — leer LIMITATIONS_TROUBLESHOOTING.md antes de uso productivo.
npx skills add gauss314/skills --skill google-finance
Skill para extraer datos de Google Finance
via su endpoint RPC interno batchexecute descubierto por reverse
engineering — sin API key, sin autenticacion.
Cubre quote, OHLC historico (intraday 1-min / 5-min / daily / 6-meses), financials masivos, earnings, analyst recommendations con opinions individuales (Goldman, etc), descripcion empresa con address+employees, peers, news (con thumbnails), indices globales (Dow/S&P/NASDAQ/VIX/DAX/FTSE/Nikkei) y sectors heatmap.
Antes de usar este skill en cualquier escenario productivo, leer obligatoriamente
references/LIMITATIONS_TROUBLESHOOTING.md.
| Modo | Data | RPC ID |
|---|---|---|
quote SYM | Precio + change + currency + market hours | gCvqoe |
quote-full SYM | Quote + industry + market cap + volume | dlNq8b |
description SYM | Descripcion + address + employees + ratios + URLs | JL8oKc |
peers SYM | Related stocks (default 4, controlable con --peers-count) | SICF5d |
analysts SYM | Recommendations summary + opinions individuales | YTM9q |
earnings SYM | Earnings history multi-period | XxQsbd |
technicals SYM | Ratings tecnicos (similar a TradingView Recommend.*) | gXxkFd |
financials SYM | Income + balance + cashflow ~22 KB multi-period | Pr8h2e |
intraday-1min SYM | OHLC 1-min del dia actual (~30 KB) | c2u4wc |
intraday-5min SYM | OHLC 5-min con OHLC completo (~5 KB) | c2u4wc |
daily SYM | OHLC diario ultimo mes (~22 dias) | c2u4wc |
daily-6m SYM | OHLC diario ultimos ~6 meses | c2u4wc |
news SYM | News especificas del simbolo | kA4MVd |
news-related SYM | News globales (con related symbols del query) | kA4MVd |
| Modo | Data | RPC ID |
|---|---|---|
indices | Indices globales: Dow, S&P, NASDAQ, VIX, DAX, FTSE, Nikkei, etc | hgueg |
sectors | Sectors equity heatmap (Health Care, Tech, etc) | vNewwe |
| Modo | Data |
|---|---|
rpcs | Catalogo de RPC IDs con args templates y descripciones |
layouts | Layouts posicionales de los arrays anidados |
cookies | Cookies de bypass del consent screen |
| Modo | Data |
|---|---|
all SYM | quote + description + analysts + financials + daily + news (6 requests) |
| Donde | Formato | Ejemplos |
|---|---|---|
| Tickers US | TICKER:NASDAQ o TICKER:NYSE | AAPL:NASDAQ, JPM:NYSE |
| ADRs argentinas | TICKER:NASDAQ o TICKER:NYSE | GGAL:NASDAQ, BBAR:NYSE |
| Tickers BCBA (locales argentinas) | TICKER:BCBA | GGAL:BCBA, YPFD:BCBA |
| Brazil B3 | TICKER:BMFBOVESPA | PETR4:BMFBOVESPA |
| Spain BME | TICKER:BME | SAN:BME |
| Germany Xetra | TICKER:XETR | SAP:XETR |
| Indices | IDX:INDEXSP/DJX/NASDAQ/CBOE | .INX:INDEXSP, .DJI:INDEXDJX |
El script tambien acepta el orden invertido (
NASDAQ:GGAL) — auto-detecta cual es el exchange. Pero el formato canonical de Google esTICKER:EXCHANGE.
| Feature | Google Finance | TradingView | Yahoo | Finnhub |
|---|---|---|---|---|
| Sin auth | ✅ | ✅ | ✅ | Freemium |
| OHLC intraday 1-min publico gratis | ✅ UNICO | ❌ (paid) | ⚠️ limited | ⚠️ paid |
| OHLC 5-min completo | ✅ | ❌ | ⚠️ | ⚠️ |
| Indices globales en 1 call (Dow+S&P+NASDAQ+VIX+DAX+FTSE+Nikkei...) | ✅ UNICO | ⚠️ uno por uno | ⚠️ | ⚠️ |
| Detalle individual de analyst opinions (nombre, firm, target, fecha) | ✅ UNICO | ⚠️ solo agregado | ⚠️ | ✅ |
| Sectors heatmap | ✅ | ⚠️ | ❌ | ❌ |
| Descripcion empresa con address fisico + employees | ✅ UNICO | ⚠️ | ⚠️ | ✅ |
| Quote delayed | ✅ | ✅ | ✅ | ✅ |
| Financials | ✅ (~22 KB) | ✅ | ✅ | ✅ |
| News con thumbnails | ✅ | ✅ | ✅ | ✅ |
Ya configurados en el script:
El script las pasa automaticamente:
Si dejan de funcionar, ver LIMITATIONS_TROUBLESHOOTING.md seccion 6 para capturar cookies frescas.
Los responses usan el protocolo wrb.fr de Google (XSSI prefix + JSON
serializado doble). El script tiene un parse_wrbfr() que lo maneja.
Detalles en RESPONSE_FORMAT.md.
⚠️ Aggressive. Recomendado:
-o archivo.json: guarda a archivo (UTF-8, ensure_ascii=False).-q: modo silencioso (sin logs INFO).--raw: retorna response raw sin extraer del array wrb.fr.El script captura requests.HTTPError y muestra el body para debugging.
Si el endpoint deja de funcionar, te apunta a LIMITATIONS_TROUBLESHOOTING.md.
25 recetas completas en COOKBOOK.md.
| Documento | Contenido |
|---|---|
references/REFERENCE.md | Overview general + batchexecute deep dive |
references/RPC_IDS.md | Catalogo detallado de los 14+ RPC IDs con args + outputs |
references/RESPONSE_FORMAT.md | Parser deep dive del wrb.fr (XSSI, doble JSON, edge cases) |
references/LIMITATIONS_TROUBLESHOOTING.md | ⚠️ Warnings, debugging, plan B con providers alternativos |
references/COOKBOOK.md | 25 recetas listas para copy-paste |
assets/rpc_ids.json | Catalogo de RPCs con args templates y descripciones |
assets/chunk_layouts.json | Layouts posicionales de cada array (que indice = que campo) |
assets/consent_cookies.json | Cookies de bypass del consent screen |
Este skill fue construido a partir de research del HTML de
google.com/finance/beta/quote/GGAL:NASDAQ, identificando los chunks
AF_initDataCallback con su sistema "Wiz" (mismo que usa Search, Maps,
Translate). El protocolo wrb.fr es publico y bien documentado por la
comunidad (no por Google).
Implementaciones similares en otros lenguajes:
google-finance-quotes (Node.js) — usa el mismo endpointmfinance (Python, distinto enfoque)Este skill se distingue por:
skills/google-finance/
├── SKILL.md # Este archivo
├── references/ # 5 documentos
│ ├── REFERENCE.md # Overview general + batchexecute
│ ├── RPC_IDS.md # Catalogo de los 14+ RPC IDs
│ ├── RESPONSE_FORMAT.md # Parser deep dive del wrb.fr protocol
│ ├── LIMITATIONS_TROUBLESHOOTING.md # ⚠️ Warnings, plan B, debugging
│ └── COOKBOOK.md # 25 recetas listas
├── assets/ # 3 archivos JSON
│ ├── rpc_ids.json # Catalogo estructurado de RPCs + args
│ ├── chunk_layouts.json # Layouts posicionales de los arrays
│ └── consent_cookies.json # Cookies de bypass del consent
└── scripts/
└── fetch_gfinance.py # Script principal — 19 modos CLIPOST https://www.google.com/finance/beta/_/FinHubUi/data/batchexecute?rpcids={RPC_ID}HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
"X-Same-Domain": "1", # CRITICO
"Origin": "https://www.google.com",
"Referer": "https://www.google.com/finance/...",
}COOKIES = {
"CONSENT": "PENDING+999",
"SOCS": "CAESHAgBEhJnd3NfMjAyNTAxMjMtMF9SQzMaAmVuIAEaBgiAvLW8Bg",
}# Quote rapido
py scripts/fetch_gfinance.py quote GGAL:NASDAQ -q
# Stock argentino BCBA
py scripts/fetch_gfinance.py quote GGAL:BCBA -q
# Indices globales del dia
py scripts/fetch_gfinance.py indices -q
# Intraday 5-min con OHLC completo
py scripts/fetch_gfinance.py intraday-5min AAPL:NASDAQ -o aapl_5min.json
# Daily ultimos 6 meses
py scripts/fetch_gfinance.py daily-6m AAPL:NASDAQ -o aapl_6m.json
# Analyst recommendations + opinions individuales
py scripts/fetch_gfinance.py analysts NVDA:NASDAQ -q
# Comparar empresa con peers
py scripts/fetch_gfinance.py peers GGAL:NASDAQ --peers-count 5 -q
# Todo-en-uno (snapshot completo)
py scripts/fetch_gfinance.py all GGAL:NASDAQ -o ggal_complete.json