Park City Mountain Resort was my home mountain for the 2011/12 season.
They have really convenient RFID season passes, and iPhone / Android apps to go along with them.
One of my favorite things about the app is that it gives you quick access to one of the MOST IMPORTANT (snicker snicker) statistics in winter sports – number of days on mountain.
Additionally, the main screen of the app provides you with the number of scans – a rather useless statistic since only 6 of the resort’s 16 lifts require you to be scanned. (They are all at the base of the mountain)
After a bit of fiddling, I found the Detailed Access History view.
I hurriedly logged into my PCMR account to download it.. except there was one problem – the only way to access the Detail Access History was through one of the mobile apps!
This was clearly unacceptable. I immediately set out to take the data which was rightfully mine.
In order to reverse engineer any API the iPhone app was using, I set my iPhone to use a proxy server running locally on my Mac. Thanks to the brilliant app Charles, this was a piece of cake.
Under the hood, the PCMR app hits a SOAP service running on the resort’s web server. Nothing too exciting so I won’t elaborate on it here.
During the development process, I came up with a neat extra feature to supplement the data-dump nature of the script – approximate vertical travel.
Hopping over to the PCMR website, I found a table listing the vertical rise of all their lifts.
Using this table, it’s easy to calculate your vertical travel based on the lifts you’ve taken. If only you got scanned at all of them…
Here’s some sample output:
» python my_live_pass.py "Park City" "email" "password" Jeff Stieler (1807075) Days: 71 Scans: 213 Individual Scans: PC: PayDay 2012-04-13 @ 3:09 PM PC: PayDay 2012-04-13 @ 2:56 PM PC: PayDay 2012-04-13 @ 2:27 PM PC: PayDay 2012-04-11 @ 3:37 PM *snip* PC: Crescent 2011-12-08 @ 10:19 AM PC: PayDay 2011-12-08 @ 9:59 AM PC: PayDay 2011-12-08 @ 9:41 AM PC: PayDay 2011-12-08 @ 9:16 AM Total Vertical Lift Height: 208612 feet.
After a bit more digging, I found out that the RFID pass system PCMR employs is the LivePass system created by RTP, and that a few more ski resorts across the US use the same system – Whistler, Aspen/Snowmass, and Winter Park.
With a bit more information, namely the API endpoints for the other resorts, this script should enable a season pass holder at any of the aforementioned resorts to download the data that is rightfully theirs!
Check the source out on Github.
Update: I rewrote this using Node.js. Check it out.