Last active
March 2, 2025 04:44
-
-
Save erikgregorywebb/da4f956563ea597d3b28f210223b4a96 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # import packages | |
| library(tidyverse) | |
| library(httr) | |
| library(jsonlite) | |
| library(lubridate) | |
| library(scales) | |
| # get list of shows | |
| headers = c( | |
| `sec-ch-ua-platform` = '"macOS"', | |
| Referer = "https://tickets.broadwaydirect.com/tickets/series/546654/the-lion-king-new-york-ny-1032631?startDate=03-01-2025", | |
| `Accept-Language` = "en-US", | |
| `sec-ch-ua` = '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"', | |
| `sec-ch-ua-mobile` = "?0", | |
| `User-Agent` = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", | |
| Accept = "application/json, text/plain, */*", | |
| DNT = "1" | |
| ) | |
| months = c("2025/03/01", "2025/04/01", "2025/05/01") | |
| datalist = list() | |
| for (i in 1:length(months)) { | |
| print(i) | |
| Sys.sleep(10) | |
| params = list( | |
| requestedTime = months[i], | |
| salesChannel = "Web", | |
| seriesCode = "546654" | |
| ) | |
| res <- httr::GET(url = "https://tickets.broadwaydirect.com/api/events/getbymonth", httr::add_headers(.headers=headers), query = params) | |
| raw = fromJSON(rawToChar(res$content)) | |
| datalist[[i]] = raw %>% tibble() %>% select(ID, EndDate, AvailabilityCount, AvailabilityColor) | |
| } | |
| raw = do.call(rbind, datalist) | |
| shows = raw %>% | |
| select(id = ID, timestamp = EndDate, availability_count = AvailabilityCount, availability_color = AvailabilityColor) %>% | |
| mutate(timestamp = ymd_hms(timestamp)) | |
| # get price array for every show | |
| cookies = c( | |
| .AspNetCore.Culture = "c=en-US|uic=en-US", | |
| series = "546654", | |
| mcuid = "N1739756221112", | |
| `_evga_1a0f` = '{"uuid":"45903a9e7026fe47"}', | |
| lantern = "8ef5c960-5796-4ddd-a5c0-42210201f91d", | |
| `_pin_unauth` = "dWlkPVpqazVNakF5Wm1VdFl6STNZUzAwTlRCaUxXSXdaVEV0TWpaa1lqRTRaVEZrWkdReQ", | |
| CookieInformationConsent = '{"website_uuid":"c3c64d1a-0563-4694-9bcf-8c2259cc76cd","timestamp":"2025-02-17T01:37:22.615Z","consent_url":"https://tickets.broadwaydirect.com/tickets/series/546654/the-lion-king-new-york-ny-1212243/bestAvailable?startDate=04-26-2025","consent_website":"broadwaydirect.com","consent_domain":"tickets.broadwaydirect.com","user_uid":"5f7ef6f3-f712-47a6-96a1-15db198aefd4","consents_approved":["cookie_cat_necessary","cookie_cat_functional","cookie_cat_statistic","cookie_cat_marketing","cookie_cat_unclassified"],"consents_denied":[],"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}', | |
| `_tt_enable_cookie` = "1", | |
| `_ttp` = "CJMkMZeO5khkYhLmYIUj-RXcu9R.tt.1", | |
| `_sfid_c26b` = '{"anonymousId":"45903a9e7026fe47","consents":[]}', | |
| `__attentive_id` = "1a2cb11664e24e83af3840732cf499b7", | |
| `__attentive_cco` = "1739756221825", | |
| `__zlcmid` = "1QGnOwBCBZfUS23", | |
| `_gcl_au` = "1.1.273712821.1739756243", | |
| broadwaydirect_ga = "GA1.1.1086508586.1739756221", | |
| `__cf_bm` = "P8TI01C.PsouUeDk2WUCBOXVDt7WpKCHxlar.qUuRtM-1740877339-1.0.1.1-G6UeYdznF.5xYkdKmsNIXg5OJlzpoPU8SlSm3N.0Qt9C8R8FHwwKj9aABfrpSq3hzYMsXnpbLXfrNoEFw.K8EE_kczNHnqYi7r8csGZjNzQ", | |
| cf_clearance = "GJYAoEiOPWcpq2V_1S1IhJ.HD8etJIovzr5vu1BP9x4-1740877340-1.2.1.1-tDYDl6fyMUEeWc_YVCDVrNf.g50FcTcoTeMVmaHXytMhJPh5dSB8xABPz24WilYoUw7kjNbfmrBaTMfS4of51mOXr3gp7Ydsyj8iLLS3i4TIoAeTu_Z.XmNy.a1IX0gc.GVInaVWiihozlzDGplx675bVC4c2YeZ2ltTfppa59K9SUhiS4ygVdspm4jUZcjNiWxsSA4qHi7XOvxsBkw.WYAg_YWxgS2kDdRGfhsH1vt6.DmzlYlC5cRPXyZLpK2vNbDAJHf9Iglw82k8E8x57JgT.hP57.usv7hDFkvWHO2ZtLD19Fcz19OKVvPcyZNM6mlF1sRRvKIddAXpVAF.J5nNKcjjDkEUlXNHZGCCmMkopcURm3ksfXIENXLJmAut03DqR_AxzuptLv4pHoJ__9YqwlaRDxaGwPQ9ZTZgIPk", | |
| `_gid` = "GA1.2.1790488932.1740877340", | |
| mcsid = "TAKjvYHr", | |
| `__attentive_domain` = "broadwaydirect", | |
| `__attentive_ceid` = "2kG", | |
| `__attentive_session_id` = "28c347251f954a0097773cba2a3edea1", | |
| `__attentive_ss_referrer` = "https://www.google.com/", | |
| `_pin_unauth` = "dWlkPVpqazVNakF5Wm1VdFl6STNZUzAwTlRCaUxXSXdaVEV0TWpaa1lqRTRaVEZrWkdReQ", | |
| `__attentive_dv` = "1", | |
| `_cfuvid` = "iglmWmE7RP832t93QvQZ9.GsZLkFaEy4Smtac.PG2nU-1740877342949-0.0.1.1-604800000", | |
| `QueueITAccepted-SDFrts345E-V3_broadwaydirect` = "EventId=broadwaydirect&RedirectType=safetynet&IssueTime=1740877343&Hash=465a122a768c56e816e53f64e0b7fde3f9a30ebb305d817e79d2fac85d5a19c7", | |
| accountAllowsLogin = "true", | |
| cf_clearance = "0iW7KI_724w1mX3rbT839TgEGlZLC1xpIH9mcbvt.L8-1740877344-1.2.1.1-ldaFLI9go71F9xPkH7trYe02drjSQ8fEP4bmt6TXBPn7bed6RjUxqTbIu.kDQ6BRZ_qHhuBJ00C4ZImoaO1ooVsT_XMARRaHJlZHkYzy4s3.kasEoSd7.CrqG9xnQe_dioh3pZDblgpVhyQZIf1yiYtxE2pB8nF4qAu9Mf2vPgLvujxG05ht6cCHVXARtcEfnr.2EADPTMBrz0z9FARviWyXOi4A5bQpvLL7gVjoejzj3dCrgv_00_Qr4KxId7BBFnShMRw.UdlHqPO97bOupakiAO1EtT6COsS8KzYjG_AjUKBMxB9s79yGJ6NYIT4LE35DvQW5619ASlX6uXb7TK5ymQR1fZk73T6hyfg1.gNQIStfeSze5sF.Rw3X.8DnHU_Ie1fzVi31.vPQBhJstZbH57gsPSqiy8H3UObtPpI", | |
| consumerFeatures = '{"showNewBasketPage":false}', | |
| `__attn_exit_intent_triggered` = "true", | |
| gtmProductList = "", | |
| returnPage = "/tickets/series/546654/the-lion-king-new-york-ny-1212270", | |
| sellMoreSameEventPage = "/tickets/series/546654/the-lion-king-new-york-ny-1212270?startDate=03-16-2025", | |
| actualReferrer = "https://tickets.broadwaydirect.com/tickets/series/546654/the-lion-king-new-york-ny-1212270?startDate=03-16-2025", | |
| selectSeatsUrl = "/Tickets/series/546654/the-lion-king-new-york-ny-1212270", | |
| `_gat` = "1", | |
| nLivenClientNavLoginRedirect = "https://tickets.broadwaydirect.com/tickets/series/546654/the-lion-king-new-york-ny-1212242?startDate=04-19-2025", | |
| `_uetsid` = "fe290b00f70111ef900a93a7cb8c010b", | |
| `_uetvid` = "65a380204c7411efa66fed5678b32b4f", | |
| `_ga_CE4BESHVHE` = "GS1.2.1740877344.2.1.1740877863.60.0.0", | |
| `_attn_` = "eyJ1Ijoie1wiY29cIjoxNzM5NzU2MjIxODI0LFwidW9cIjoxNzM5NzU2MjIxODI0LFwibWFcIjoyMTkwMCxcImluXCI6ZmFsc2UsXCJ2YWxcIjpcIjFhMmNiMTE2NjRlMjRlODNhZjM4NDA3MzJjZjQ5OWI3XCJ9Iiwic2VzIjoie1widmFsXCI6XCIyOGMzNDcyNTFmOTU0YTAwOTc3NzNjYmEyYTNlZGVhMVwiLFwidW9cIjoxNzQwODc3ODYzODEwLFwiY29cIjoxNzQwODc3ODYzODEwLFwibWFcIjowLjAyMDgzMzMzMzMzMzMzMzMzMn0ifQ==", | |
| `__attentive_pv` = "9", | |
| `_ga_F9SL9L2PG0` = "GS1.1.1740877344.2.1.1740877864.0.0.0", | |
| `_gat_UA-26194249-1` = "1", | |
| `_gat_UA-43841211-3` = "1", | |
| `_ga_2BCYEF8XG6` = "GS1.1.1740877340.2.1.1740877864.58.0.0", | |
| `_ga` = "GA1.2.948673810.1739756220", | |
| broadwaydirect_ga_Y4Z8911974 = "GS1.1.1740877340.2.1.1740877864.58.0.240948745", | |
| .ASPXANONYMOUS = "0KgJzfiL2wEkAAAAMGI2MTMwNDktZGQzYi00ZTc5LWExNTUtNjAzNDAxYTY0ZGRj", | |
| `__cf_bm` = "tJFi0p1eGbkwtZ.hjR6L.wUqGMN_ZSqQSS4gPQM2lUw-1740877864-1.0.1.1-nkpLYZkRV7pGUj9qk855pc3LpvbTE7CnkJnqhT9MAziYHv7f3p8EkOEaV.AGHA16s9r.0Zm70oFgcMjidT4H01J9tL9DlgZAfvYNej013ug" | |
| ) | |
| headers = c( | |
| accept = "application/json, text/plain, */*", | |
| `accept-language` = "en-US", | |
| dnt = "1", | |
| priority = "u=1, i", | |
| referer = "https://tickets.broadwaydirect.com/tickets/series/546654/the-lion-king-new-york-ny-1212242?startDate=04-19-2025", | |
| `sec-ch-ua` = '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"', | |
| `sec-ch-ua-mobile` = "?0", | |
| `sec-ch-ua-platform` = '"macOS"', | |
| `sec-fetch-dest` = "empty", | |
| `sec-fetch-mode` = "cors", | |
| `sec-fetch-site` = "same-origin", | |
| `user-agent` = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" | |
| ) | |
| params = list( | |
| includeOpens = "true", | |
| salesChannel = "Web" | |
| ) | |
| ids = shows %>% select(id) %>% pull(id) | |
| datalist = list() | |
| for (i in 1:length(ids)) {n | |
| print(ids[i]) | |
| Sys.sleep(10) | |
| res <- httr::GET(url = paste("https://tickets.broadwaydirect.com/api/eventinventory/", ids[i], sep = ''), | |
| httr::add_headers(.headers=headers), query = params, httr::set_cookies(.cookies = cookies)) | |
| raw = fromJSON(rawToChar(res$content)) | |
| prices = tibble(raw$PriceMaps) | |
| datalist[[i]] = prices %>% select(DisplayPrice, Class, PriceLevelID) %>% mutate(id = ids[i]) | |
| } | |
| raw = do.call(rbind, datalist) | |
| prices = raw %>% | |
| select(id, class = Class, price_level_id = PriceLevelID, price = DisplayPrice) | |
| # join together | |
| all = left_join(x = prices, y = shows, by = c('id')) %>% | |
| select(id, timestamp, price, class, price_level_id, availability_count, availability_color) | |
| # roll-up | |
| summary = all %>% | |
| group_by(id, timestamp, availability_count, availability_color) %>% | |
| summarise(Min = min(price), Max = max(price), Median = median(price)) %>% ungroup() %>% | |
| arrange(timestamp) | |
| # plot | |
| chart = summary %>% | |
| pivot_longer(cols = c(Min, Max, Median)) %>% | |
| ggplot(., aes(x = timestamp, y = value, col = name)) + | |
| #geom_point() + | |
| geom_line(size = .9) + | |
| scale_colour_manual(values=c(Min="#f8069a", Max="#ecb516", Median="#6d1301")) + | |
| labs(x = '', y = '', title = "'The Lion King' Broadway Ticket Prices: Min, Max, & Median", | |
| subtitle = 'March 1 to May 31, 2025 | Prices scraped from broadwaydirect.com') + | |
| scale_y_continuous( labels = label_dollar()) + | |
| theme_minimal() + | |
| theme(legend.position = "top") + | |
| theme(legend.title=element_blank()) + | |
| theme(plot.title=element_text(face="bold")) | |
| setwd("~/Downloads") | |
| png(filename="lion-king-broadway-price-chart.png", width = 12, height = 6, units = "in", res = 1000) | |
| chart | |
| dev.off() | |
| # stats | |
| median(summary$Min) | |
| median(summary$Median) | |
| median(summary$Max) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment