ADVERTISEMENT

STREAMING REVIEWS: A tourism promo film, and time travel with a twist

Published Apr 22, 2023 11:39 pm

Rachel Leigh Cook in a film shot in Vietnam.



The two films reviewed today dropped over the weekend, and are formulaic entries, but they’re noteworthy for reasons we discover. A Tourist’s Guide to Love (Netflix USA/Vietnam) - This is a minor Netflix drop that stars Rachel Leigh Cook as an American-based travel executive, who decides on a whim to change things around. Stuck to a desk for the past few years of her life, personal circumstances compel her to do things differently, and she joins a tour group heading to Vietnam. So yes, it’s Eat Pray Love blended with a Vietnam travelogue, and to say it’s predictable and formulaic would be an understatement. In fact, I’ll confess that my finger was pressing on the Fast Forward button for much of this film’s length, as one could pretty much see where the dialogue and action would be heading. It’s the usual claptrap about not being just a tourist but a traveler. And of course, the lady executive will fall in love, find herself, yadda yadda. But the reason I even review this film is that if it succeeds even marginally; it’ll be remembered as the first Netflix production that’s filmed in Vietnam, and one can’t deny the creative handle attached to this project. And I compare this to the Vanessa Hudgens documentary we made such a fuss about. We don’t even know if that documentary will be picked up by a global streaming service, and I doubt it will engage global viewership. Let’s not forget that the intent has always been to boost tourism here. A Tourist’s Guide to Love will succeed, not based on how many people in Vietnam watch it, but on the global audience, and how it’ll perk up an influx of visitors. Similarly, the Hudgens docu should go beyond Filipinos living abroad, who would have planned visits here, even if they had not watched the doc.
One More Time (Netflix Sweden) - So there’s the more than obvious nod to Groundhog Day, mixed with time travel; but coming from the Swedish producers of The Young Royals, I’ll give credit where it’s due, and say this film does have its own charm. What we get is a 40-year-old woman who’s dissatisfied with her life, and like so many, harks back to what she decides were her glory days. She defines these best days of her life as the time surrounding her 18th birthday, when she was still a student. So the first portion of the film is devoted to establishing that and having her wake up one day in that 18th birthday morning. Disoriented at first, she soon rides with the current and begins to enjoy the experience.
It’s when she wakes up the next morning and the subsequent mornings that she finds herself in a deadly loop of revisiting that same morning, and it dismays her to find there’s now dissatisfaction over the predicament. It’s here that the film, to the aforementioned credit of the producers and writers, branches out to try and be something more substantial. Armed with the knowledge of her 40-year-old self, she sets about trying to improve the future lives of her friends and acquaintances. I won’t dwell on what happens or riddle this review with spoilers, but I will say there is an honest attempt to give something more substantial and deep than what we may have expected the film to amount to. It may have used a tired formula, but it does refresh it in a manner.
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.