A refreshers guide to getting a Glastonbury ticket
06 October, 2019Readtime: 6 mins
Today is the one day a year when it seems perfectly normal to wake up early on a Sunday morning, boot up all available devices in your household with an internet connection, and tap F5 irratically for 35 minutes. Yes I am talking about the Glastonbury festival ticket sale day. OK, well it’s not just one day a year there are actual three possible times a year to get tickets, but the October Sunday is the big one. Coach tickets don’t count, since no one really wants to travel to the festival by coach from Liverpool when you live in Cornwall, but if you get through you happily take that ticket, since you know that you may not make the Sunday ticket sale. On the plus side Liverpool is a great city anyway, so why not. The other day of the year in which you can get your grubby hands on a golden ticket is the resale in April, but that is often a very bleak affair, with at best 10,000 tickets up for grabs. Likely to last no more than 10 minutes. So Sunday is the day for astute awareness and make sure you’re in bed early on Saturday before, to practice your F5 tapping and managing multiple browser tabs. You don’t want to be doing that with a hangover.
In the recent years of the festival competition is tough, with all 135,000 tickets sold out typically in under 40 minutes. In 2015 and 2016 tickets went in under the 20 minute mark! Madness. This year is was a sluggish 37 minutes (I think) to sell out, with the highest ever demand - 2.4 million people registered to go. Assuming that all those (and maybe more due to friends and family) attempted to get tickets that puts your chances at roughly 5% (1 in 20). Not so good. So what can we do to give us ourselves an advantage, and increase our odds of getting a ticket? Many forums and people who go will swear by different methods, there are the one browser, one tab people; the 4G mobile people who shun any form of device with an actual keyboard; and the brute force, all devices on deck approach people. All of these groups will have people who succeed and fail, and we will never know which approach works the best, all we can do is take peoples word for it and try it our way. Well there is one way that is proven to give you an extra advantage, not guarantee you a ticket, but definitely improve those odds of 5% - AUTOMATION. Such monotonous tasks scream out for automation and in the age of programming proliferation and technological capacity at our finger tips, it is the perfect solution for this problem. How do we automate?
I repeatedly state on this blog that programming is a superpower and everyone on this planet should learn how to program (at least to a basic level). It doesn’t have to be pretty code, but I encourage all to begin to learn it and quickly. It really is as important as maths and english in today’s world. Now I had the good fortune of learning how to program during my PhD, but there really is no excuse not to learn. For absolute beginners I recommend Python but have a look at one of three J’s: Java, Julia, and Javascript also. Once you can program and script a bit then you will notice the benefits not just for festival tickets but in many other aspects of your life and job. OK, so once you can program we can then automate this mundane refreshing procedure using Selenium - check it out here. To quote their site ‘Selenium automates browsers. That’s it!’ and that is what we need. They have bindings in many languages, I used Python of course, due to the simplicity of the syntax and ease of use. What we intend to do with this is to simply automate the refreshing power of your finger faster than any human and also (with some knowledge of their site) automate entering of registration details. The last bit is actually very important as I hate the pressure and struggle to copy 6 lots of registration numbers and postcodes into a form whilst the timer counts down and the likelyhood of timeout increases exponentially. This is also very error prone, a few times in the good old days I would make many mistakes. But this is trivial to do with a simple Python script using Selenium and a web driver (I used Chrome).
My approach:
- First determine the base URL of the ticket sale - This can be tricky, since you need to connect to the site first. However, most people usually discover the link quickly and the naming of it rarely varies much year on year. This year it was "https://glastonbury.seetickets.com/event/glastonbury-2020-deposits/worthy-farm/1450000" and last year it was "https://glastonbury.seetickets.com/event/glastonbury-2019/worthy-farm/1300001". Once you have this then we know where to "attack"
- Automate refreshing - We need to refresh quickly (although not too quickly as their systems may detect superhuman refreshing) by detecting if a phrase is, or is not, present on the page, i.e. 'You are on the holding page' blah, blah.... Then we need it to stop refreshing once we reach a page we want i.e. the 'Enter your details' page.
- Automate registration details entering - This is trivial with Selenium, just do "find_elements_by_tag_name('input')" and iterate over these. Then press submit!
After this, you should reach the confirmation page to check your details are correct (we should check this), and then on this submission we reach the payment page. Done. And because it is all automated and quick we just let it run and just wait for the confirmation page. If you want to see my attempt at this go to my GitHub here.
Now, I made it sound simple, when in fact that is quite far from the truth. The main problem is testing, and in software testing is paramount. Without it you are just shooting blindly and it is unlikely to work on the first go. So then the three times a year doesn’t sound so bad, that’s 2 attempts to test. OK, still not a lot but better than nothing. It also doesn’t help that you might not get any page source data or even connect in the total 45 minutes you try. Therefore we need to follow the brute force attempt people and use as many devices as possible, using different VPNs to scout out all possible urls and look at the html. Luckily for us, they don’t change the html source much (lazy developers?), and the tag and class names so we can use the previous year to build on for the next. I have done this over the past 3/4 times and made my script quite successful. It does indeed work, but requires a bit of tweaking each time, and requires a good internet connection. This year I had to use a few VPNs, but in previous years I would use University networks as they are quick. I did indeed go to the University on a Sunday morning to get festival tickets.
On reflection and outlook for future ticket sales, I think however the days of this script are numbered. More and more people will leverage this and therefore your advantage becomes the norm. Or they completly change their site. It is sad because I grew up in the Glastonbury area and going to the festival is the norm for me, but I feel each year it gets more and more tough to get tickets. I still remember the times when I could just causually log in and get tickets on their announcement with no rush or worry about not getting them. The concept of a holding page was beyond me then. And now it has just become such a struggle to get them, it seems I may look for another festival in my future years. I love Glastonbury and maintain that it is the best festival in the world. I have been to festivals in Spain, Belgium, and other parts of the world, including the UK, and nothing else comes close to Glastonbury. The ethos and experience of the fesitival is unparalleled, but I feel that their ticketing system is completely unfair and has become a lottery. It needs to change, and reward loyalty, and penalise people who abandon tents and litter at the festival. How to do this, I do not know but it needs change. Until then I hope my bot helps those who struggle to get tickets, and to create awareness in order for them to change their system.
If you are still determined to go then I recommend you find a quant friend with access to a fast internet connection and run the script. Or join a band and perform at the festival. The latter may be easier.
Written by Thomas Stainer who likes to develop software for applications mainly in maths and physics, but also to solve everyday problems. Check out my GitHub page here.