ADVERTISEMENT

STREAMING REVIEWS: Hola, E.T., and music fan obsession

Published Apr 9, 2023 05:48 am
The films today are recent drops on your favorite streaming services. One is family entertainment, with more than a passing nod to E.T., but with a mythical creature playing substitute. The second film is a disturbing psychological drama that has the music industry in its sights.
Chupa (Netflix - Mexico) - You can title this film with a cute nickname for the mythical chupacabra of Mexican (and South American) folklore. And while the original chupacabra, which sucks and feasts on goats, was reptilian in nature; reptilian doesn’t equate to cute. So what we get is a cross between a mangy dog and a tiger cub, but with wings. The other thing we can’t hide is that while the film is set in rural Mexico, with elements of luchadores (Mexican wrestlers), the film is really a variation on the E.T. theme, and we just have to substitute mythical creatures for extra-terrestrial. Like E.T., it’s all about a young boy befriending the baby chupa, then upon finding out scientists are after the creature, trying to bring Chupa back to its family - unfortunately, Chupa can’t just ‘phone home’.

Christian Slater plays the villainous research scientist in 'Chupa'



Having said that the film is derivative and owes allegiance to the Speilberg film, I can concede that there’s a certain charm to this film, and it should go down well as family entertainment - the kids enjoying the adventure and hi-jinks, while the parents watching will find it interesting enough. Plus for the parents, we have Christian Slater portraying the mean gringo scientist who wants to capture Chupa for medicinal reasons. There is an interesting theme of the main child actor being an outcast in Kansas City, and visiting his abuelo and cousins in Mexico - interesting because, parallels are drawn between his being an outcast, and the chupa who’s been separated from his parents and the pack.
Swarm (Amazon Prime) - Here’s a satire and psychological drama that’s co-created and directed by Donald Glover (Childish Gambino); and so it’s not surprising to find that it takes on the music industry, and the phenomenon of fan obsession that we hear so much about. BTS have their Army, and in this Limited Series, we have the R&B goddess Ni’dah, and Dre (Dominique Fishback) is one her biggest, most devoted fans. So devoted that at the start of the first episode, we see her using a newly acquired credit card to get $1,800 tickets for the upcoming Ni’dah tour, when Dre can’t even make rent. It’s this aspect of fan worship that the series wants to explore, and it does so with a sharp, cutting edge.

Billie Eilish in 'Swarm'



The parallels to Beyoncé are unmistakable, so that even if there’s a Ni’dah we’re following, the fact that her fan base is called the ‘Swarm’ recalls bees, and by extension, the letter B. Coming from the industry himself, Glover provides insights that are precious, and even got Billie Eilish to take on an acting role, as a cult leader. The Dre we meet is ready to pick a fight, even commit a crime, in the name of defending her idol. No one can say anything derogatory about Ni’dah in her presence. This kind of blind faith is both interesting and scary - and we’ve seen how real this is when her hear stories about the Army. Fishback goes to town with her attack on this role, the proverbial doormat, who’s ready to go into pit bull-mode when it suits her.
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.