I am disappointed by the lack of cheating going on here. Lets take a look at the API.
The Timer
The timer updates every second from a WebSocket at http://wss.redditmedia.com/thebutton. Example request:
GET /thebutton?h=ed063e9a771d65aed6b0f4318703e4b82f88d180&e=1428139324 HTTP/1.1
Host: wss.redditmedia.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Sec-WebSocket-Version: 13
Origin: http://www.reddit.com
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: rGANrUPLELtk1R9nedA8Ow==
Cookie: __cfduid=[REDACTED]
Connection: keep-alive, Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
The values of h and e are found in some javascript on this page: http://www.reddit.com/r/thebutton.
Every second the server sends a JSON message that looks like this:
{"type": "ticking", "payload": {"participants_text": "542,525", "tick_mac": "0e28befde24a35bc8bac66c1f173694ac029d2c3", "seconds_left": 56.0, "now_str": "2015-04-03-09-42-03"}}
The Press
Button presses are sent as a POST request to http://reddit.com/api/press_button. Example request:
POST /api/press_button HTTP/1.1
Host: www.reddit.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.reddit.com/r/thebutton
Content-Length: 189
Cookie: __cfduid=[REDACTED]; loid=[REDACTED]; loidcreated=[REDACTED]; _ga=[REDACTED]; __utma=[REDACTED]; __utmb=[REDACTED]; __utmc=[REDACTED]; __utmz=[REDACTED]; _recentclicks2=[REDACTED]; reddit_session=[REDACTED]; __utmli=thebutton
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
seconds=56&prev_seconds=56&tick_time=2015-04-03-10-00-26&tick_mac=a07ca9a2909f4e0f513297589ec4bd345fee1e0f&r=thebutton&uh=[REDACTED]&renderstyle=html
Experiments