👉 https://www.strava.com/athlete/training
Strava te permite descargar todos tus datos históricos en CSV.
Ve a https://www.strava.com/settings/data_export
Solicita la exportación de tus datos completos (incluye actividades, rutas, zonas de ritmo cardíaco, etc.)
En unos minutos/horas, recibirás un correo con un ZIP. Dentro encontrarás:
/activities/activities.csv
Archivos .gpx, .tcx o .fit de cada actividad.
Descomprime el archivo ZIP
Abre Google Sheets
Archivo > Importar > Subir > selecciona el archivo activities.csv
Elige "Reemplazar hoja" o "Insertar nueva hoja"
Strava ofrece una API oficial que permite importar tus actividades directamente. Para esto necesitas crear una App y usar Google Apps Script.
Ve a https://www.strava.com/settings/api
Crea una nueva app
Nombre: lo que quieras
Website:https://google.com (o tu dominio)
Authorization Callback Domain: script.google.com
Copia tu Client ID y Client Secret
Usa esta URL en tu navegador (cambia los valores client_id y redirect_uri):
ruby
CopiarEditar
https://www.strava.com/oauth/authorize?client_id=TU_CLIENT_ID&redirect_uri=https://script.google.com/macros/d/TU_SCRIPT_ID/usercallback&response_type=code&scope=activity:read_all
Autoriza la app → Te redirigirá con un code=XXXX
Con ese código, haz un POST a:
arduino
CopiarEditar
https://www.strava.com/oauth/token
Con esta estructura (puedes usar Postman o cURL):
json
CopiarEditar
{
"client_id": "TU_CLIENT_ID",
"client_secret": "TU_CLIENT_SECRET",
"code": "CÓDIGO_OBTENIDO",
"grant_type": "authorization_code"
}
Esto te devolverá un access_token y un refresh_token.
javascript
CopiarEditar
const ACCESS_TOKEN = 'TU_ACCESS_TOKEN';
function getStravaActivities() {
const url = 'https://www.strava.com/api/v3/athlete/activities?per_page=50&page=1';
const options = {
headers: {
Authorization: `Bearer ${ACCESS_TOKEN}`
}
};
const response = UrlFetchApp.fetch(url, options);
const activities = JSON.parse(response.getContentText());
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Strava') || SpreadsheetApp.getActiveSpreadsheet().insertSheet('Strava');
sheet.clear();
const headers = ['Name', 'Distance (km)', 'Moving Time (min)', 'Type', 'Date'];
sheet.appendRow(headers);
activities.forEach(activity => {
sheet.appendRow([
activity.name,
(activity.distance / 1000).toFixed(2),
(activity.moving_time / 60).toFixed(1),
activity.type,
activity.start_date_local
]);
});
}
📌 Puedes programarlo para que se actualice automáticamente: Ve a Extensiones > Apps Script > Reloj (trigger) y elige una frecuencia (diaria, por ejemplo).
Nombre de la actividad
Fecha y hora
Distancia (en metros)
Tiempo en movimiento
Tipo de actividad (Run, Ride, Walk, etc.)
Ritmo medio, cadencia, elevación, calorías, etc. (según permisos)
Crear gráficos de progreso mensual
Comparar running vs ciclismo
Sumar kilómetros por semana
Calcular calorías totales
Crear un dashboard de rendimiento
Usa Google Sheets solo como visor y backup. Para análisis complejos, puedes conectar ese mismo Sheet con Looker Studio o exportar a Notion/Obsidian vía APIs.