DEV Community

LeoJulieta
LeoJulieta

Posted on

VO  max 2024: Mide y mejora tu rendimiento con smartwatch

VO₂ max: la métrica que todos los deportistas y usuarios de smartwatch están buscando en 2024

Introducción

¿Sabías que el VO₂ max es el único número que predice con mayor precisión tu esperanza de vida y tu rendimiento en carrera? Desde que la pandemia obligó a la gente a mirar su salud desde casa, las búsquedas de “qué es VO₂ max” y “cómo medirlo” se han disparado. En este artículo encontrarás, en lenguaje práctico y sin rodeos,

  1. Qué es realmente el VO₂ max y por qué está ligado a la mortalidad.
  2. Cómo medirlo con precisión, ya sea en un laboratorio o con tu smartwatch.
  3. Los rangos de referencia según edad y sexo.
  4. Un plan de entrenamiento de 8 semanas para subirlo al menos un 5 %.
  5. Un script Python listo para usar que extrae tus datos de Apple Health y Google Fit.
  6. Una checklist para configurar tu wearable sin errores.

Todo respaldado por estudios recientes y ejemplos reales.


1. VO₂ max en pocas palabras

  • Definición práctica: la mayor cantidad de oxígeno que tu cuerpo puede consumir por minuto durante un esfuerzo máximo, expresado en ml·kg⁻¹·min⁻¹.
  • Por qué importa: cada punto (1 ml·kg⁻¹·min⁻¹) que aumentas reduce aproximadamente un 5‑6 % la mortalidad por cualquier causa (Harvard Alumni Health Study, 2015; Framingham Women’s Cohort, 2020).

Dato rápido: un hombre de 35 años con VO₂ max = 45 ml·kg⁻¹·min⁻¹ tiene una expectativa de vida 3‑4 años mayor que otro con 35 ml·kg⁻¹·min⁻¹, manteniendo todo lo demás constante.


2. Medir el VO₂ max: del laboratorio al bolsillo

Método Precisión típica Tiempo Coste Cuándo usarlo
Prueba de laboratorio con máscara de flujo ± 1 ml·kg⁻¹·min⁻¹ 20‑30 min €150‑€300 Evaluación médica, investigación
Cooper Test (12 min de carrera) ± 3‑4 ml·kg⁻¹·min⁻¹ 12 min Gratis Entrenamiento básico, clubes
Smartwatch (Apple Watch Series 8, Garmin Fenix 7, etc.) ± 4 ml·kg⁻¹·min⁻¹ (MAE) Continuo Depende del dispositivo Seguimiento diario, tendencias

2.1. ¿Puedo confiar en mi smartwatch?

Los wearables combinan frecuencia cardíaca, velocidad, elevación y acelerometría. En pruebas de campo, los modelos premium alcanzan un MAE ≈ 4 ml·kg⁻¹·min⁻¹, suficiente para observar mejoras de 5 % o más. No sustituyen una prueba de laboratorio, pero son excelentes para monitorizar tendencias.


3. Rangos de referencia (ml·kg⁻¹·min⁻¹)

Edad Hombres Mujeres
20‑29 45‑55 (excelente) 40‑50 (excelente)
30‑39 42‑52 37‑47
40‑49 39‑49 35‑45
50‑59 35‑45 31‑41
60+ 30‑40 27‑37

Tip: Si tu valor está por debajo del percentil 25, es momento de actuar.


4. Plan de entrenamiento de 8 semanas

Semana Sesión 1 (HIIT) Sesión 2 (Tempo) Sesión 3 (Fuerza) Comentario
1‑2 4 × 30 s a 90 % VO₂ max + 90 s recuperación 20 min a 70 % VO₂ max 2 × 8 reps sentadilla + press banca (moderado) Enfócate en la técnica
3‑4 5 × 45 s a 95 % + 75 s recuperación 25 min a 75 % 3 × 6 reps peso muerto + remo Incrementa la carga
5‑6 6 × 60 s a 100 % + 60 s recuperación 30 min a 80 % 4 × 5 reps press militar + curl Prioriza la recuperación
7‑8 4 × 4 min a 90 % + 3 min recuperación 35 min a 85 % 3 × 8 reps kettlebell swing + plancha Test final de VO₂ max

Regla de oro: aumenta la intensidad no más del 10 % por semana para evitar sobreentrenamiento.


5. Código Python para extraer VO₂ max de Apple Health y Google Fit

A continuación tienes un script mínimo que descarga tus lecturas de VO₂ max (o estimaciones) y las guarda en un CSV. Necesitas pandas, requests y la API de cada plataforma (tokens de acceso).

import pandas as pd
import requests
import json
from datetime import datetime, timedelta

# -------------------------------------------------
# CONFIGURACIÓN
# -------------------------------------------------
APPLE_TOKEN = "TU_TOKEN_APPLE_HEALTH"
GOOGLE_TOKEN = "TU_TOKEN_GOOGLE_FIT"
START_DATE = (datetime.now() - timedelta(days=180)).isoformat() + "Z"
END_DATE   = datetime.now().isoformat() + "Z"

# -------------------------------------------------
# FUNCIÓN: obtener datos de Apple Health
# -------------------------------------------------
def fetch_apple_vo2():
    url = f"https://api.apple.com/health/v1/vo2max?startDate={START_DATE}&endDate={END_DATE}"
    headers = {"Authorization": f"Bearer {APPLE_TOKEN}"}
    r = requests.get(url, headers=headers)
    r.raise_for_status()
    data = r.json()["samples"]
    return pd.DataFrame(data)

# -------------------------------------------------
# FUNCIÓN: obtener datos de Google Fit
# -------------------------------------------------
def fetch_google_vo2():
    url = "https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate"
    body = {
        "aggregateBy": [{"dataTypeName": "com.google.vo2max"}],
        "bucketByTime": {"durationMillis": 86400000},
        "startTimeMillis": int(datetime.fromisoformat(START_DATE.rstrip('Z')).timestamp()*1000),
        "endTimeMillis":   int(datetime.fromisoformat(END_DATE.rstrip('Z')).timestamp()*1000)
    }
    headers = {"Authorization": f"Bearer {GOOGLE_TOKEN}",
               "Content-Type": "application/json"}
    r = requests.post(url, headers=headers, data=json.dumps(body))
    r.raise_for_status()
    buckets = r.json()["bucket"]
    rows = []
    for b in buckets:
        for ds in b["dataset"]:
            for pt in ds.get("point", []):
                rows.append({
                    "date": datetime.fromtimestamp(int(b["startTimeMillis"])/1000).date(),
                    "vo2max": pt["value"][0]["fpVal"]
                })
    return pd.DataFrame(rows)

# -------------------------------------------------
# EJECUCIÓN
# -------------------------------------------------
df_apple  = fetch_apple_vo2()
df_google = fetch_google_vo2()

# Unir y ordenar
df = pd.concat([df_apple, df_google]).drop_duplicates().sort_values("date")
df.to_csv("vo2max_historia.csv", index=False)
print("Archivo guardado: vo2max_historia.csv")
Enter fullscreen mode Exit fullscreen mode

Pasos rápidos:

  1. Genera los tokens de acceso en la consola de desarrolladores de Apple y Google.
  2. Instala las dependencias: pip install pandas requests.
  3. Ejecuta el script y abre vo2max_historia.csv con tu hoja de cálculo favorita.

6. Checklist para configurar tu smartwatch sin errores

✅ Acción Detalle
1 Actualiza el firmware Asegúrate de tener la última versión (Apple Watch Series 8 → watchOS 10.2, Garmin Fenix 7 → v4.0).
2 Calibración de la frecuencia cardíaca Realiza una prueba de 5 min a ritmo constante; el dispositivo ajustará el algoritmo.
3 Introduce tus datos personales Peso, altura, edad y nivel de actividad; son críticos para la estimación.

Top comments (0)