Skip to content

luisandrelemos/Strava-Activity-Exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🚴 Strava Activity Exporter

A web application to export your Strava activities to GPX, TCX, or FIT formats. Export multiple activities at once, making it easy to import them into platforms that don't support direct Strava sync.

Home

App

App2


πŸ“± Features

  • πŸ” Strava OAuth: Secure authentication with your Strava account.
  • πŸ“‹ Activity Browser: View all your activities with search, filters, and sorting.
  • πŸ“₯ Multiple Formats: Export to FIT (original), GPX, or TCX.
  • πŸ“¦ Batch Export: Download multiple activities at once as a ZIP file.
  • 🎯 Smart Filters: Filter by sport type, date range, or activity name.
  • 🏷️ Custom Filename Template: Define your own naming pattern using variables like {date}, {name}, {type}, and {id}, with selectable date formats.

βš™οΈ Tech Stack

  • Backend: Node.js 18+, Express
  • Frontend: Vanilla HTML, CSS, JavaScript
  • APIs: Strava API v3
  • Libraries: JSZip (client-side ZIP generation)

πŸš€ Getting Started

1. Clone the repository

git clone https://github.com/luisandrelemos/strava-activity-exporter.git
cd strava-activity-exporter

2. Create Strava API Application

  1. Go to Strava API Settings
  2. Create a new application:
    • Application Name: Any name
    • Website: http://localhost:3000
    • Authorization Callback Domain: localhost
  3. Copy your Client ID and Client Secret

3. Configure Environment

cp .env.example .env

Edit .env with your credentials:

STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret

4. Install and Run

Requires Node.js 18 or higher (uses the native fetch API)

npm install
npm start

Open http://localhost:3000 in your browser.


πŸ“‚ Project Structure

/public
  /css            β†’ stylesheets
  /js             β†’ frontend JavaScript modules
  /img            β†’ images and icons
server.js         β†’ Express server with OAuth handling

πŸ“„ Export Formats

Format Description
FIT Original file from your device
GPX GPS track with coordinates and elevation
TCX Training data with heart rate, cadence, and power

🏷️ Custom Filename Template

Click the βš™οΈ button next to Download to configure how exported files are named.

Available variables:

Variable Description Example
{date} Activity date 2026-02-23
{name} Activity name Morning_Run
{type} Sport type Run
{id} Strava activity ID 12345678

Date formats: YYYY-MM-DD, YYYYMMDD, DD-MM-YYYY, MM-DD-YYYY

Default template: {date}_{name} β†’ 2026-02-23_Morning_Run.gpx

Note: Custom filenames apply to GPX and TCX exports only. FIT (original) files are downloaded directly from Strava and cannot be renamed.


⚠️ Rate Limits

Strava API limits:

  • 100 requests / 15 minutes
  • 1000 requests / day

The app handles rate limiting automatically.


πŸ“„ License

MIT


Made with ❀️ by Luís Lemos

About

🚴 Export your multiple Strava activities at once to FIT, GPX, or TCX formats.

Topics

Resources

License

Stars

Watchers

Forks

Contributors