What is Effortly?
Do you that song that gets you running a little faster every time it goes on your playlist? Have you ever wanted to apply statistics to check whether this effect was consistent? Have you ever dreamed of a platform that enabled you to find which songs work for you, and use this information to build the perfect PR smasher playlist?
Effortly started as a way for me to do just that. My initial idea was to find which songs made me run faster, my heart beat harder, and how consistent was this effect. This idea was expanded to extract detailed statistics out of this information, getting the same statistics for cycling and even relive your activity songs using Spotify!
Main features
- See your runs, rides and swims divided by the songs you where listening, instead of boring 1 km laps;
- Get per-song information regarding your pace, average heart rate, average cadence...;
- Check detailed aggregate results and see which songs consistently make you faster/heart pump harder;
- Visualize how your pace varies during each song, to find the most powerful moments of your favorite songs;
- Get detailed aggregate statistics to check which efforts/songs/artists you listed more often, make you accelerate;
- Remember your best activities by playing back the activity playlist.
But enough talk, go
here for a full featured demo using real data.
How does Effortly work?
Effortly is powered by Strava, last.fm and Spotify: this means that you just need to put on your running shoes, start playing your favorite running playlist and go for a run. When it is over, sync all your data to Strava and last.fm and you just need to press "Sync" on Effortly and have it do it's magic.
If you only have Spotify, you can still use Effortly, but syncing is a
little bit more complicated.
Scrobble, Effort, Δ/Diff. Avg HR, Flag efforts... what does this all mean?
- Scrobble: according to the Wiktionaty, to scrobble means "To publish one's music-listening habits to the Internet via software, in order to track when and how often certain songs are played.";
- Effort: on Effortly, an effort corresponds each time you play of one song during one activity;
- Δ/Diff. Avg. Speed: it corresponds to the difference in pace between that effort and the average activity speed;
- Δ/Diff. Last Speed: it corresponds to the difference in pace between that effort and the previous effort;
- Δ/Diff. Avg. HR: it corresponds to the difference in heartrate between that effort and the activity average heart rate;
- Δ/Diff. Last HR: it corresponds to the difference in heartrate between that effort and the last effort's heart rate;
- Flag effort: effort will stop being counted for the top views;
- Flag effort HR: effort HR metrics will stop being counted for the top views;
- Flag activity: activity will stop being counted for the top views;
- Flag activity HR: activity HR metrics will stop being counted for the top views;
- Flag song: song will stop being counted for the top views;
- Flag artist: artist will stop being counted for the top views.
Strava
I use another activity tracking website other than Strava, can I still use Effortly?
At the moment, we have no plans on supporting platforms other than Strava. An alternative is to sync all your activities to Strava using your platform's direct connection (e.g. you can directly send to Strava from Garmin Connect and others) or by using a tool such as
Tapiriik
Spotify and last.fm
Why is last.fm preferred over Spotify for syncing?
Spotify's API only allows access to the
user's most recent 50 tracks.
This means that if you use Spotify, you need to press Sync on Effortly as soon as you finish your run/ride/swim, to ensure that the songs you've heard during your activity are on the most recent list on Spotify. Effortlys now checks for new activities every hour. This means that you shouldn't miss any Spotify tracks for your activities!. If, after syncing, your tracks are still not correct, you can press "Resync Spotify" on the activity page. To get the best of both worlds, associate Spotify to last.fm, check the instructions
here
My songs are not showing up on my activity.
I recommend you keep your device online, to ensure that the songs played are saved to Spotify and/or last.fm.
I use last.fm, what is the advantage of associating both accounts to Effortly?
last.fm keeps a more consistent log of the songs played, but I've noticed that sometimes Spotify plays are not registered as scrobles on last.fm. if you have Spotify Premium, you can also replay your activity songs and find at what time on a song you go faster.
Songs do not play:
This feature is only available for Spotify Premium users.
Privacy
Effortly needs some information regarding your activities and listening preferences. The following list details which information Effortly stores, and why:
- Songs: songs listened during activities and the corresponding staring time. This information is used to generate Effort information;
- Activities: running and cycling activities, metadata (name, description, type, distance, time, speed, heartrate, cadence and power (if available)). This information is used to generate Effort information;
- User: Spotify, last.fm and Strava basic profile info, including e-mail (only used to regarding major changes in Effortly); name, username, scrobble counts, activity counts and profile pictures (only for presentation purposes); country and gender (to generate the Top Global chart).
The following list details which information is NOT stored:
- Songs: songs listened outside activities;
- Activities: coordinates or location of any type. Strava already provides information regarding distance and speed for each activity over time. This means that Effortly DOES NOT process activity location information of any type;
- Users: everything else outside the list described above.
Miscellaneous
Sync isn't getting new activities/is stuck
You can force a new sync process by pressing the "Force Sync" button in the Settings.
I prefer metric/imperial units:
You can change your unit preferences in the Settings.
Where can I find my running/cycling efforts?
You can alternative between running/cycling/all efforts by selecting the corresponding option on the top right of the website, next to the logo.
Geeky details
Is Effortly open-source?
Yes, Effortly's code is available
here.
Libraries used
- Django: MVP framework;
- Celery: get activity and song information asynchronous;
- NumPy: process activity information;
- Spotipy: Spotify oauth and recent tracks;
- Stravalib: get Strava activity information.
I have another question or suggestions
Contact me at a@mourao.me or go to reddit