library(tidyverse)
library(janitor)
library(jsonlite)Assignment – Web APIs
Introduction
I signed up for the Article Search API from the New York Times. Below is an interface in R to read in the JSON data and transform it into an R data frame.
Connect to API
First, I sign up for an API key on the New York Times website. Here, I use the rstudioapi::skForPassword() function to keep my API key private when running the code in R Studio. For running and rendering all code for the purposes of this markdown, I also alternatively save the API key in an R chunk that I elect not to include in this published version.
The base HTTP request URL is defined below as well. I will be using the Article Search API to get New York Times movie reviews, so I define the filter query accordingly.
api_key <- rstudioapi::askForPassword("Authorization Key")Error: RStudio not running
base_url <-
"https://api.nytimes.com/svc/search/v2/articlesearch.json?"
filter <-
'section_name%3A%22Movies%22%20AND%20type_of_material%3A%22Review%22'Here, I create is a function to pull data based on the filter and page number parameters, starting from the newest articles.
get_movies <- function(filter, page) {
url <-
paste0(base_url,
"fq=",
{
filter
},
"sort=newest&page=",
{
page
},
"&api-key=",
api_key)
fromJSON(url, flatten = TRUE)$response$docs |>
clean_names()
}Load JSON data into R data frame
I call the function, iterating through 10 pages of JSON data, appending them together as the data frame movies_df. Note that I add a delay in the loop to avoid hitting the rate limit and getting a 429 error.
pages <- c(1:10) # set num pages to iterate through
movies_df <- tibble() # initialize data frame
for (page in pages) {
success <- FALSE
while (success == FALSE) {
# while success is false,
tryCatch({
movies_df <-
get_movies(filter, page) |> rbind(movies_df, .data) # call function and append to df
success <- TRUE # Set success to TRUE if no error occurs
}, error = function(e) {
# Add a delay between requests to avoid hitting the rate limit
Sys.sleep(10)
})
}
}Warning in open.connection(con, "rb"): cannot open URL
'https://api.nytimes.com/svc/search/v2/articlesearch.json?fq=section_name%3A%22Movies%22%20AND%20type_of_material%3A%22Review%22sort=newest&page=6&api-key=mC1y5Hr361gaqmvkjHpGd6WUdiL917vA':
HTTP status was '429 Unknown Error'
Warning in open.connection(con, "rb"): cannot open URL
'https://api.nytimes.com/svc/search/v2/articlesearch.json?fq=section_name%3A%22Movies%22%20AND%20type_of_material%3A%22Review%22sort=newest&page=6&api-key=mC1y5Hr361gaqmvkjHpGd6WUdiL917vA':
HTTP status was '429 Unknown Error'
Here is the R data frame of NYT JSON movie review data loaded from the NYT API:
head(movies_df) abstract
1 Evil becomes good and vice versa in “Megamind,” a new 3-D fantasy from DreamWorks Animation.
2 S. A. Crary's music documentary examines New York's No Wave scene of the late 1970's — an offshoot of punk, the anti-New Wave.
3 “The Short Game” is a documentary about 7- and 8-year-olds competing in an international junior-golf championship.
4 A failed writer moves back in with his wacky family in Carlo De Rosa’s “Finding Joy.”
5 LEAD: Finding an original way to explore generational conflicts may be as difficult as creating a harmonious relationship with your parents. You have to try, but don't expect perfection. ''Two Lies,'' a 25-minute film by Pam Tom, a Chinese-American writer and director, and ''Maicol,'' a 90-minute feature by an Italian director, Mario
6 The mature chemistry of Kevin Costner and Diane Lane goes a long way in this searing thriller.
web_url
1 https://www.nytimes.com/2010/11/05/movies/05mega.html
2 https://www.nytimes.com/2006/07/07/movies/07idol.html
3 https://www.nytimes.com/2013/09/20/movies/the-short-game-a-documentary-about-young-golfers.html
4 https://www.nytimes.com/2013/06/07/movies/finding-joy-directed-by-carlo-de-rosa.html
5 https://www.nytimes.com/1990/03/28/movies/reviews-film-festival-2-explorations-of-generational-conflicts.html
6 https://www.nytimes.com/2020/11/05/movies/let-him-go-review.html
snippet
1 Evil becomes good and vice versa in “Megamind,” a new 3-D fantasy from DreamWorks Animation.
2 S. A. Crary's music documentary examines New York's No Wave scene of the late 1970's — an offshoot of punk, the anti-New Wave.
3 “The Short Game” is a documentary about 7- and 8-year-olds competing in an international junior-golf championship.
4 A failed writer moves back in with his wacky family in Carlo De Rosa’s “Finding Joy.”
5
6 The mature chemistry of Kevin Costner and Diane Lane goes a long way in this searing thriller.
lead_paragraph
1 Michael Jackson’s “Bad,” blasted near the end of “Megamind,” the witty 3-D animated deconstruction of superhero movies from DreamWorks Animation, encapsulates the paradoxes of a story in which evil morphs into good and vice versa. There was always something innately silly in Jackson’s wispy-voiced, childlike affectation of macho ferocity. My first reaction to a singer whose clout suggested a crooked finger more than a clenched fist was, “Oh, come off it, little boy.”
2 According to the paltry biographical information provided with the music documentary "Kill Your Idols," its director, cameraman and editor, S. A. Crary, was born in Hawaii where he "learned how to march before he learned how to dance" and "held a gun before he held a girl's hand." That's cute, but perhaps more telling is that the video maker was born in 1978, just around the time that aficionados of orchestrated mayhem were paying homage to Lydia Lunch, then radiating spit and dark energy across downtown New York in her role as the lead singer cum banshee for the No Wave band Teenage Jesus and the Jerks.
3 On a cuteness scale — where 10 is a fuzzy kitten yawning in a hammock — the chattily uninhibited 7- and 8-year-old golfers of “The Short Game” score high. One moment, these skilled children are tirelessly practicing swings, rain or shine; another moment, they’re saying that Dad should marry Lady Gaga, or beaming over a book about breaking wind. Discipline exists alongside child’s play, on and off the green.
4 A clumsy mixed-nuts comedy, Carlo De Rosa’s “Finding Joy” suggests Mad Libs with its story of an uptight, failed writer who moves back in with his family. Whether stuffing its graceless hero into a clown suit on a construction site or sending him on a first date with an offbeat neighbor to give a safe-sex talk at a home for the elderly, the film is funny only on paper, if that.
5 Finding an original way to explore generational conflicts may be as difficult as creating a harmonious relationship with your parents. You have to try, but don't expect perfection. ''Two Lies,'' a 25-minute film by Pam Tom, a Chinese-American writer and director, and ''Maicol,'' a 90-minute feature by an Italian director, Mario Brenta, both take on the question of whether single mothers can preserve their own identities without forever warping their children.
6 A high point of the mostly meh 2013 Superman movie “Man of Steel” was the presence of Kevin Costner and Diane Lane as the title character’s earth parents. These stars showed a mature chemistry that one would have wanted to experience in a mature motion picture.
print_section print_page source
1 C 15 The New York Times
2 E 10 The New York Times
3 C 16 The New York Times
4 C 16 The New York Times
5 C 18 The New York Times
6 C 4 The New York Times
multimedia
1 0, 0, 0, 0, 0, xlarge, jumbo, popup, articleInline, thumbnail, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, image, image, image, image, image, images/2010/11/05/arts/05MEGA-span/MEGA-articleLarge.jpg, images/2010/11/05/arts/05MEGA-span/MEGA-jumbo.jpg, images/2010/11/05/arts/05MEGA-span/MEGA-popup.jpg, images/2010/11/05/arts/05MEGA-span/MEGA-articleInline.jpg, images/2010/11/05/arts/05MEGA-span/MEGA-thumbStandard.jpg, 280, 493, 313, 110, 75, 600, 1024, 650, 190, 75, xlarge, jumbo, popup, articleInline, thumbnail, articleLarge, jumbo, popup, articleInline, thumbStandard, images/2010/11/05/arts/05MEGA-span/MEGA-articleLarge.jpg, NA, NA, NA, NA, 600, NA, NA, NA, NA, 280, NA, NA, NA, NA, NA, NA, NA, NA, images/2010/11/05/arts/05MEGA-span/MEGA-thumbStandard.jpg, NA, NA, NA, NA, 75, NA, NA, NA, NA, 75
2 0, 0, articleInline, thumbnail, NA, NA, NA, NA, image, image, images/2006/07/07/arts/07idol.190.jpg, images/2006/07/07/arts/07idol.75.jpg, 285, 75, 190, 75, articleInline, thumbnail, articleInline, thumbStandard, NA, images/2006/07/07/arts/07idol.75.jpg, NA, 75, NA, 75
3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, wide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, miniMoth, windowsTile336H, xlarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, thumbnail, thumbLarge, blogSmallThumb, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-thumbWide.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoThumb.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoLarge.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-mediumThreeByTwo210.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-mediumThreeByTwo225.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-miniMoth.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-windowsTile336H.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-articleLarge.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blog480.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blog427.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-tmagArticle.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-jumbo.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blog225.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-master675.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-master180.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-popup.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blog533.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-tmagSF.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-slide.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-superJumbo.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-master1050.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-master495.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-square320.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-filmstrip.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-square640.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-moth.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-articleInline.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-hpSmall.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blogSmallInline.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-mediumFlexible177.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-sfSpan.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-largeHorizontal375.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-hpLarge.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-largeWidescreen573.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoSmall.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoHpMedium.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoSixteenByNine600.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoSixteenByNine540.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoSixteenByNine495.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-videoSixteenByNine390.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-thumbStandard.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-thumbLarge.jpg, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-blogSmallThumb.jpg, 126, 50, 507, 140, 150, 70, 336, 338, 270, 240, 333, 576, 127, 380, 101, 366, 300, 204, 338, 1080, 591, 278, 320, 190, 640, 151, 107, 92, 85, 100, 263, 250, 256, 287, 281, 190, 338, 304, 278, 219, 75, 150, 50, 190, 75, 768, 210, 225, 151, 694, 600, 480, 427, 592, 1024, 225, 675, 180, 650, 533, 362, 600, 1920, 1050, 495, 320, 190, 640, 151, 190, 163, 151, 177, 395, 375, 511, 573, 500, 337, 600, 540, 495, 390, 75, 150, 50, wide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, miniMoth, windowsTile336H, xlarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, thumbnail, thumbLarge, blogSmallThumb, thumbWide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, miniMoth, windowsTile336H, articleLarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, thumbStandard, thumbLarge, blogSmallThumb, 190, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 126, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-thumbWide.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-articleLarge.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 600, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 338, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/09/20/arts/20RDP_SHORT_SPAN/SHORT-thumbStandard.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA
4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, wide, videoThumb, videoLarge, mediumThreeByTwo210, miniMoth, xlarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, thumbnail, thumbLarge, blogSmallThumb, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-thumbWide.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-videoThumb.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-videoLarge.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-mediumThreeByTwo210.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-miniMoth.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-articleLarge.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blog480.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blog427.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-tmagArticle.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-jumbo.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blog225.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-master675.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-master180.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-popup.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blog533.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-tmagSF.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-slide.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-superJumbo.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-master1050.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-master495.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-square320.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-filmstrip.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-square640.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-moth.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-articleInline.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-hpSmall.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blogSmallInline.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-mediumFlexible177.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-sfSpan.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-largeHorizontal375.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-hpLarge.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-largeWidescreen573.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-videoSmall.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-videoHpMedium.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-thumbStandard.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-thumbLarge.jpg, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-blogSmallThumb.jpg, 126, 50, 507, 140, 70, 400, 320, 285, 395, 683, 150, 450, 120, 433, 355, 241, 400, 704, 700, 330, 320, 190, 640, 151, 127, 109, 101, 118, 263, 250, 256, 287, 281, 190, 75, 150, 50, 190, 75, 768, 210, 151, 600, 480, 427, 592, 1024, 225, 675, 180, 650, 533, 362, 600, 1056, 1050, 495, 320, 190, 640, 151, 190, 163, 151, 177, 395, 375, 511, 573, 500, 337, 75, 150, 50, wide, videoThumb, videoLarge, mediumThreeByTwo210, miniMoth, xlarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, thumbnail, thumbLarge, blogSmallThumb, thumbWide, videoThumb, videoLarge, mediumThreeByTwo210, miniMoth, articleLarge, blog480, blog427, tmagArticle, jumbo, blog225, master675, master180, popup, blog533, tmagSF, slide, superJumbo, master1050, master495, square320, filmstrip, square640, moth, articleInline, hpSmall, blogSmallInline, mediumFlexible177, sfSpan, largeHorizontal375, hpLarge, largeWidescreen573, videoSmall, videoHpMedium, thumbStandard, thumbLarge, blogSmallThumb, 190, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 126, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-thumbWide.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-articleLarge.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 600, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 400, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2013/06/07/arts/07RDP_FINDINGJOY_SPAN/FINDINGJOY-thumbStandard.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA
5 NULL
6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, xlarge, popup, blog480, blog533, blog427, tmagSF, tmagArticle, slide, jumbo, superJumbo, blog225, master1050, master675, master495, master180, master315, master768, thumbnail, blogSmallThumb, thumbLarge, smallSquare168, smallSquare252, square320, moth, filmstrip, square640, mediumSquare149, mediumSquareAt3X, sfSpan, largeHorizontal375, largeHorizontalJumbo, horizontalMediumAt2X, hpLarge, largeWidescreen573, largeWidescreen1050, wide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, mediumThreeByTwo440, mediumThreeByTwo252, mediumThreeByTwo378, threeByTwoLargeAt2X, threeByTwoMediumAt2X, threeByTwoSmallAt2X, articleInline, hpSmall, blogSmallInline, mediumFlexible177, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, videoSixteenByNine1050, videoSixteenByNine480, videoSixteenByNine310, videoSixteenByNine225, videoSixteenByNine96, videoSixteenByNine3000, videoSixteenByNine768, videoSixteenByNine150, videoSixteenByNineJumbo1600, miniMoth, windowsTile336H, videoFifteenBySeven1305, videoFifteenBySeven2610, facebookJumbo, watch308, watch268, verticalTwoByThree735, mobileMasterAt3x, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, image, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-articleLarge.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-popup.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-blog480.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-blog533.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-blog427.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-tmagSF.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-tmagArticle.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-slide.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-jumbo.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-superJumbo.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-blog225.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master1050.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master675.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master495.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master180.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master315.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-master768.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-thumbStandard.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-blogSmallThumb.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-thumbLarge.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-smallSquare168.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-smallSquare252.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-square320.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-moth.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-filmstrip.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-square640.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumSquare149.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumSquareAt3X.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-sfSpan.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-largeHorizontal375.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-largeHorizontalJumbo.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-horizontalMediumAt2X.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-hpLarge.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-largeWidescreen573.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-largeWidescreen1050.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-thumbWide.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoThumb.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoLarge.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumThreeByTwo210.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumThreeByTwo225.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumThreeByTwo440.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumThreeByTwo252.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-mediumThreeByTwo378.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-threeByTwoLargeAt2X.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-threeByTwoMediumAt2X.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-threeByTwoSmallAt2X.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-articleInline.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-hpSmall.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-blogSmallInline.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-mediumFlexible177.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSmall.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoHpMedium.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine600.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine540.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine495.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine390.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine1050.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine480.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine310.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine225.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine96.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine3000.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine768.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNine150.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoSixteenByNineJumbo1600.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-miniMoth.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-windowsTile336H.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoFifteenBySeven1305.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-videoFifteenBySeven2610.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-facebookJumbo.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-watch308.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-watch268.jpg, images/2020/11/06/arts/lethimgo1/lethimgo1-verticalTwoByThree735.jpg, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-mobileMasterAt3x.jpg, 399, 432, 319, 355, 284, 241, 394, 399, 681, 1362, 150, 699, 449, 329, 120, 210, 511, 75, 50, 150, 168, 252, 320, 151, 190, 640, 149, 1800, 263, 250, 683, 2661, 287, 322, 591, 126, 50, 507, 140, 150, 293, 168, 252, 2661, 1000, 400, 126, 108, 100, 118, 281, 211, 338, 304, 278, 219, 591, 270, 174, 126, 54, 1688, 432, 84, 900, 70, 336, 609, 1218, 550, 348, 303, 1103, 1197, 600, 650, 480, 533, 427, 362, 592, 600, 1024, 2048, 225, 1050, 675, 495, 180, 315, 768, 75, 50, 150, 168, 252, 320, 151, 190, 640, 149, 1800, 395, 375, 1024, 3992, 511, 573, 1050, 190, 75, 768, 210, 225, 440, 252, 378, 3992, 1500, 600, 190, 163, 151, 177, 500, 375, 600, 540, 495, 390, 1050, 480, 310, 225, 96, 3000, 768, 150, 1600, 151, 694, 1305, 2610, 1050, 312, 272, 735, 1800, xlarge, popup, blog480, blog533, blog427, tmagSF, tmagArticle, slide, jumbo, superJumbo, blog225, master1050, master675, master495, master180, master315, master768, thumbnail, blogSmallThumb, thumbLarge, smallSquare168, smallSquare252, square320, moth, filmstrip, square640, mediumSquare149, mediumSquareAt3X, sfSpan, largeHorizontal375, largeHorizontalJumbo, horizontalMediumAt2X, hpLarge, largeWidescreen573, largeWidescreen1050, wide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, mediumThreeByTwo440, mediumThreeByTwo252, mediumThreeByTwo378, threeByTwoLargeAt2X, threeByTwoMediumAt2X, threeByTwoSmallAt2X, articleInline, hpSmall, blogSmallInline, mediumFlexible177, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, videoSixteenByNine1050, videoSixteenByNine480, videoSixteenByNine310, videoSixteenByNine225, videoSixteenByNine96, videoSixteenByNine3000, videoSixteenByNine768, videoSixteenByNine150, videoSixteenByNineJumbo1600, miniMoth, windowsTile336H, videoFifteenBySeven1305, videoFifteenBySeven2610, facebookJumbo, watch308, watch268, verticalTwoByThree735, mobileMasterAt3x, articleLarge, popup, blog480, blog533, blog427, tmagSF, tmagArticle, slide, jumbo, superJumbo, blog225, master1050, master675, master495, master180, master315, master768, thumbStandard, blogSmallThumb, thumbLarge, smallSquare168, smallSquare252, square320, moth, filmstrip, square640, mediumSquare149, mediumSquareAt3X, sfSpan, largeHorizontal375, largeHorizontalJumbo, horizontalMediumAt2X, hpLarge, largeWidescreen573, largeWidescreen1050, thumbWide, videoThumb, videoLarge, mediumThreeByTwo210, mediumThreeByTwo225, mediumThreeByTwo440, mediumThreeByTwo252, mediumThreeByTwo378, threeByTwoLargeAt2X, threeByTwoMediumAt2X, threeByTwoSmallAt2X, articleInline, hpSmall, blogSmallInline, mediumFlexible177, videoSmall, videoHpMedium, videoSixteenByNine600, videoSixteenByNine540, videoSixteenByNine495, videoSixteenByNine390, videoSixteenByNine1050, videoSixteenByNine480, videoSixteenByNine310, videoSixteenByNine225, videoSixteenByNine96, videoSixteenByNine3000, videoSixteenByNine768, videoSixteenByNine150, videoSixteenByNineJumbo1600, miniMoth, windowsTile336H, videoFifteenBySeven1305, videoFifteenBySeven2610, facebookJumbo, watch308, watch268, verticalTwoByThree735, mobileMasterAt3x, images/2020/11/06/arts/lethimgo1/merlin_179305815_6e8a5efd-9abf-47e9-a600-5e795aca725d-articleLarge.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 600, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 399, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2020/11/06/arts/lethimgo1/lethimgo1-thumbStandard.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 190, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 126, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, images/2020/11/06/arts/lethimgo1/lethimgo1-thumbWide.jpg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
keywords
1 subject, persons, subject, persons, persons, persons, persons, persons, creative_works, Movies, Ferrell, Will, Animated Films, Pitt, Brad, Hill, Jonah, Cross, David, Fey, Tina, McGrath, Tom (1964- ), Megamind (Movie), 1, 2, 3, 4, 5, 6, 7, 8, 9, N, N, N, N, N, N, N, N, N
2 subject, subject, subject, persons, persons, persons, organizations, organizations, glocations, MOTION PICTURES, Documentary Films and Programs, Music, Branca, Glenn, Moore, Thurston, Lindsay, Arto, Sonic Youth, Yeah Yeah Yeahs, New York City, 1, 2, 3, 4, 5, 6, 7, 8, 9, N, N, N, N, N, N, N, N, N
3 subject, subject, subject, persons, Movies, Golf, Documentary Films and Programs, Greenbaum, Josh, 1, 2, 3, 4, N, N, N, N
4 subject, persons, Movies, De Rosa, Carlo, 1, 3, N, N
5 organizations, persons, subject, subject, creative_works, creative_works, Museum of Modern Art, TOM, PAM, Reviews, MOTION PICTURES, Maicol (Movie), NEW DIRECTORS/NEW FILMS (FESTIVAL), 1, 2, 3, 4, 5, 6, N, N, N, N, N, N
6 subject, persons, persons, persons, persons, creative_works, Movies, Costner, Kevin, Lane, Diane, Bezucha, Thomas, Watson, Larry, Let Him Go (Movie), 1, 2, 3, 4, 5, 6, N, N, N, N, N, N
pub_date document_type news_desk section_name
1 2010-11-04T23:21:42+0000 article Weekend Movies
2 2006-07-07T04:00:00+0000 article Weekend Movies
3 2013-09-20T00:23:48+0000 article Weekend Movies
4 2013-06-07T03:26:30+0000 article Weekend Movies
5 1990-03-28T05:00:00+0000 article Cultural Desk Movies
6 2020-11-05T12:00:03+0000 article Weekend Movies
type_of_material id
1 Review nyt://article/00eca727-c566-5e62-b1f6-1a22796b1374
2 Review nyt://article/00ecd2e8-e3b7-5208-a78f-da4f7d6875a7
3 Review nyt://article/00ee6548-212a-5220-97fa-b9bdf6bb50fd
4 Review nyt://article/00eee519-0c09-5801-b4ba-5267a3646692
5 Review nyt://article/00f00ecd-2eb7-503f-a74c-dfe8eda85683
6 Review nyt://article/00f1ec8f-5b83-5590-8c02-b777cc9eede8
word_count uri
1 946 nyt://article/00eca727-c566-5e62-b1f6-1a22796b1374
2 520 nyt://article/00ecd2e8-e3b7-5208-a78f-da4f7d6875a7
3 262 nyt://article/00ee6548-212a-5220-97fa-b9bdf6bb50fd
4 208 nyt://article/00eee519-0c09-5801-b4ba-5267a3646692
5 632 nyt://article/00f00ecd-2eb7-503f-a74c-dfe8eda85683
6 316 nyt://article/00f1ec8f-5b83-5590-8c02-b777cc9eede8
headline_main
1 Animated Ambiguity, Featuring a Big Head
2 'Kill Your Idols' Presents Musicians From an Era When Downtown Meant Spit and Energy, Not Condos
3 A Mean Swing, Between the Cuddles and Flatulence Jokes
4 Failed Writer Entangled in Domestic Dramas
5 Reviews/Film Festival; 2 Explorations of Generational Conflicts
6 ‘Let Him Go’ Review: From Grief to Terror
headline_kicker headline_content_kicker
1 Movie Review | 'Megamind' NA
2 Movie Review NA
3 Movie Review NA
4 Movie Review NA
5 <NA> NA
6 Critic’s Pick NA
headline_print_headline
1 Animated Ambiguity, Featuring A Big Head
2 Music From When Downtown Meant Spit and Energy, Not Upscale Condos
3 The Short Game
4 Finding Joy
5 Reviews/Film Festival; 2 Explorations of Generational Conflicts
6 When Contentment Turns Into Terror
headline_name headline_seo headline_sub byline_original
1 NA NA NA By Stephen Holden
2 NA NA NA By Manohla Dargis
3 NA NA NA By Nicolas Rapold
4 NA NA NA By Nicolas Rapold
5 NA NA NA By Caryn James
6 NA NA NA By Glenn Kenny
byline_person byline_organization
1 Stephen, NA, Holden, NA, NA, reported, , 1 <NA>
2 Manohla, NA, Dargis, NA, NA, reported, , 1 <NA>
3 Nicolas, NA, Rapold, NA, NA, reported, , 1 <NA>
4 Nicolas, NA, Rapold, NA, NA, reported, , 1 <NA>
5 Caryn, NA, James, NA, NA, reported, , 1 <NA>
6 Glenn, NA, Kenny, NA, NA, reported, , 1 <NA>
Cleaning, tidying, and normalization
Before I finalize this data set, I subset the data frame to several variables of interest and do some variable cleaning.
movies_clean <- movies_df |>
select(
headline_main,
headline_kicker,
headline_print_headline,
byline_original,
abstract,
lead_paragraph,
keywords,
pub_date
) |>
mutate(key = row_number(),
pub_date = as_datetime(pub_date)) |>
arrange(desc(pub_date))I also normalize the data by creating two unique tables–a movie table and a keywords table–since the keywords variable in the original data frame was a list-column.
# create normal movies table
movies <- movies_clean |>
select(-keywords)
head(movies) headline_main
1 ‘Artie Shaw: Time Is All You’ve Got’ Review: A Lens on a Jazz Luminary
2 ‘Dancing in the Dust’ Review: Marriage, Money and Morals
3 ‘Sublime’ Review: Two Boys, One in Love
4 ‘The First Fallen’ Review: A Remembrance of Those Passed
5 ‘The Story of Film: A New Generation’ Review: The Case for Modern Movies
6 ‘National Champions’ Review: A College Football Revolution
headline_kicker headline_print_headline byline_original
1 Critic’s Pick Artie Shaw: Time Is All You’ve Got By Glenn Kenny
2 <NA> Dancing in the Dust By Ben Kenigsberg
3 <NA> Sublime By Erik Piepenburg
4 <NA> The First Fallen By Lisa Kennedy
5 <NA> The Story of Film: A New Generation By Ben Kenigsberg
6 <NA> National Champions By Glenn Kenny
abstract
1 Brigitte Berman’s dazzling 1985 look at the self-taught virtuoso clarinetist and bandleader is showing after a restoration.
2 The first feature from Asghar Farhadi (“A Separation”) arrives in a remastered version on streaming services.
3 A teenager dreams of pop songs, and his best friend, in Mariano Biasin’s tender gay coming-of-age drama.
4 A director crafts an elegiac tribute set during the dawn of the AIDS crisis in Brazil.
5 The latest installment in the filmmaker-critic Mark Cousins’s survey of movie history focuses on 21st-century developments.
6 Athletes go on strike seeking health insurance in this drama as a coach tries to forge his legacy.
lead_paragraph
1 The documentarian Brigitte Berman has made two spectacular pictures about American jazz pioneers. The first, “Bix: ‘Ain’t None of Them Play Like Him Yet’” (1981), chronicled the life of the brilliant and tragically short-lived cornetist and composer Bix Beiderbecke. It screened in a restoration at Film Forum a couple of years back. Now, her follow-up to that movie, “Artie Shaw: Time Is All You’ve Got” (1985), is similarly restored and booked at Film Forum.
2 The debut feature from the Iranian director Asghar Farhadi, “Dancing in the Dust” never received a proper release in the United States. Now, 20 years after it was first shown, it is surfacing in a remastered version on streaming platforms. Two of Farhadi’s subsequent features (“A Separation” and “The Salesman”) won the Oscar for what was then called the best foreign language film, and he has become a reliable, methodical specialist in a certain brand of domestic drama. In Farhadi films, right and wrong are never clear-cut, and the suspense is intertwined with mounting moral complexities.
3 In high school I had a crush on my best friend. I sat with him when he played piano in church. I was furious inside when he told me he liked a girl. When I came out to him in college he said “so what?” and I cried. Tweak some details and switch the setting from suburban America to a coastal town in Argentina and it’s also the entire plot of Mariano Biasin’s familiar but muted coming-out drama “Sublime.”
4 At the start of his pandemic film, “The First Fallen,” the Brazilian director Rodrigo de Oliveira stakes a claim to the elegiac: A soldier steps through a jungle ruminating in voice-over about those who die early in battle. The significance of this scene — which cuts to Suzano (Johnny Massaro) watching his nephew, Muriel (Alex Bonin), in the surf — is made clearer later. But the meaning of the blood trickling from Suzano’s nose is a given from the beginning.
5 A decade after presenting a guided tour of cinema history in the 15-hour docuseries “The Story of Film: An Odyssey,” the filmmaker and critic Mark Cousins checks in on recent developments in “The Story of Film: A New Generation.”
6 In New Orleans, two college teams, the Cougars and the Wolves, are days from facing off in a major game — a game that will make or break the legacy of one coach. That would be James Lazor of the Wolves. One of the TV sportscasters hyping the game announces, “Monday night is about etching his name in the history books.”
pub_date key
1 2024-01-04 12:00:09 96
2 2023-09-28 11:00:02 44
3 2023-06-20 17:48:07 95
4 2023-02-21 20:48:29 58
5 2022-09-08 11:00:05 74
6 2021-12-09 12:00:06 19
# create normal keywords table
keywords <- movies_clean |>
unnest(keywords, keep_empty = TRUE) |>
mutate(name = as.factor(name)) |>
select(key, name, value)
head(keywords)# A tibble: 6 × 3
key name value
<int> <fct> <chr>
1 96 subject Documentary Films and Programs
2 96 subject Jazz
3 96 subject Content Type: Personal Profile
4 96 creative_works Artie Shaw: Time Is All You've Got (Movie)
5 96 persons Berman, Brigitte
6 96 persons Shaw, Artie
Now we can see can browse names of people associated with these movies tagged as keywords in the review, for example:
keywords |> filter(name == "persons") |> select(value) |> distinct() |> arrange(-desc(value))# A tibble: 165 × 1
value
<chr>
1 Aduba, Uzo
2 AKERMAN, CHANTAL
3 ALBA, JESSICA
4 ANDERSON, WES
5 ANDREW, BEANIE
6 Arregi, Aitor
7 BAKER, PHILIP
8 Bale, Christian
9 Bayona, Juan Antonio
10 Berenger, Tom
# ℹ 155 more rows
I like the director Mike Leigh, so, using these normalized tables, I can use the key variable to look up the title and abstract of that article he was tagged in:
mike_leigh_movie <-
keywords |> filter(value == "Leigh, Mike") |> left_join(movies)
mike_leigh_movie$headline_print_headline[1] "THEATER REVIEW; Nothing Nice to Say? Do Come Sit Closer!"
mike_leigh_movie$abstract[1] "Ben Brantley reviews play Goose-Pimples by Mike Leigh, directed by Scott Elliott, at Anderson Theater; photo (M)"
mike_leigh_movie$lead_paragraph[1] "All right, so maybe it is the season of office parties. And maybe the prospect of yet another evening with a group of self-serving, randy materialists getting drunker and nastier by the minute isn't exactly what you had in mind as a holiday treat."
mike_leigh_movie$pub_date[1] "1997-12-19 05:00:00 UTC"
Conclusion
In this assignment, I was able to use an API to get data stored as JSON files from the NYT website to get and manipulate movie review data in R. I was even able to parse through the final data set and find that one of my favorite movie directors wrote a play that was performed back in 1997.