Nike4All – Upload your Nike+ data to the official Nike+ website.

After a couple of days of hacking, I managed to get a way to upload the data from Nike+Ipod device to your Nikerunning account. No iTunes needed! That is quite cool considering that the Nike+ Ipod Sport kit has been out for a while (2006 according to wikipedia) and linux users had no way to sync their runs without iTunes. Until now.

Installation.
Simply download the python script from here. It’s a single file and all it requires is Python (was tested with 2.5 and 2.6 – should work also with 3.0). You can place the script wherever you want. It is suggested to save the script in /usr/bin so that you can run it without typing the path everytime.

GUI.
A graphical interface is also available, as Screenlet. Get it here.


First time run – pairing your data with your account.

1. If you don’t have one yet, create an account on the Nike+ website. You will be asked for an email address, password, personal details and, at the end, for a screenname. Just go throughout the entire registration. If you already have an account on the site, skip this step.

2. Make sure you are not logged in into your Nike+ account (hit logout).

3. Start nike4all issuing the following command:

gg@fly-home:$ nike4all.py -createAccount
Go to this URL and login whit username and password of the account you just created
Url to visit: http://www.nike.com/nikeplus/?token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&v=2
Press enter to continue only AFTER you login

4. After a few seconds you will be asked to visit a website: simply open that URL in your favourite browser and login using your credentials. Edit [28.02.11]: it seems Chrome may cause some troubles at this step. If it doesn’t work please use another browser; Firefox should do it.

5. After having done so, go back to the command line and hit Enter. The program will then say:
Congratulation, your status is now confirmed
The user <screenName> is now associated to the pin xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
Your pin was successfully saved in the configuration file
To update new files connect the iPod and use the following command:
nike4all -sync

The configuration file is in your home folder and it is called
.nike+rc
the running files you will be syncing will also be backup in the same folder
~/nike+
you can change the backup folder by editing the configuration file with your favorite text editor.

Usage.
You should already know by now.
Other than regular syncing, you can also upload specific files. Start the program without parameters to get a help message.

Caveats and technicalia.
If you already have a Nike+ account, you can still use that one. You existing data will not be lost but you may experiencing problems syncing with iTunes again in the future because your PIN was changed. Your iTunes PIN is stored on your iPod, encrypted (probably with AES CBC 128 bit) in a plist file. Maintaining the same PIN for iTunes and nike4all would require finding that password.

Please, do not use the nikerunning website with any other device that is not an iPod or a sportband. The nikerunning website is a service for Nike customer only and nike4all shall be seen as a tool that allow linux users to use this wonderful service.

License and Credits.
As usual, thanks to python and thank to Ubuntu. Nike4all was developed using only free software and it is released under GPL. If you like the software, please consider donating using the button on the right side – money will go into a research fund (the Institute of garage science).

Bugs and history.
If you find a bug, please drop me an email.
08/15/2009 – first release v0.1

Update (July/2010)

Masatoshi Kanzaki has published a similar tool to upload Nike+ Sport band data from linux! Get it on his blog.

Update (October/2010)
I uploaded the sourcecode on googlecode. Feel free to contribute or fork.