ADVERTISEMENT

Hong Kong's snake soup is slithering away but still simmers in a decades-old kitchen

Published Jan 27, 2025 06:04 am

SNAKE PHOTO.jpg

A pet snake crawls out from the cabinet at the family-run snake soup restaurant in Hong Kong, Monday, Jan. 6, 2025. (AP Photo/Chan Long Hei)

 

HONG KONG (AP) — As Hong Kong prepares to welcome the Year of the Snake on Wednesday, Chau Ka-ling displays a moving serpent with practiced ease, holding it like a pet in her decades-old restaurant in the city.

As one of the last keepers of the city’s traditional snake soup industry, Chau saves three live snakes for occasional display in wooden drawers that once housed more serpents for cooking. The cuisine she makes, long cherished in southern Chinese culture for keeping people warm in the winter, is slithering away.

Founded by Chau’s late father in the 1960s, Shia Wong Hip once slaughtered live snakes for its dishes. “Shia Wong” means “Snake King” in Cantonese.

Under her father’s guidance, Chau learned to catch and kill serpents and make soup, eventually becoming known as the city’s “Snake Queen.” A newspaper photo displayed on the wall captured her success in catching an over 2-meter-long venomous king cobra in 1997 at a marine police office in rural Hong Kong at the authorities’ request.

But the restaurant, alongside most of the city's other remaining snake soup shops, switched to using frozen snake meat from Southeast Asia after a 2003 outbreak of SARS, or severe acute respiratory syndrome, killed 299 people in Hong Kong. Scientists have linked the virus's origin to wild animals.

Despite the change, preparing snake soup still takes a long time. The defrosted snake meat must be boiled for at least two hours to achieve the desired tenderness. After it cools, Chau debones it with a sharpened chopstick and tears it into thin pieces by hand.

The snake bones then are simmered with chicken and pork bones for at least six hours to make the soup base. Next, the broth is stewed with snake meat, shredded chicken, ham, fungus and mandarin orange peel before finally being thickened with starch.

When a bowl of soup is served, diners usually garnish it with lemon leaves and crispy chips.

Snake meat, which has a texture similar to chicken after cooking, is rich in protein and low in fat.

During the winter, Chau can sell up to 800 bowls a day ranging in price from $7 to $11. But that figure drops to 100 or less in the summer, when the soup is less popular.

Snake soup shops have closed after the COVID-19 pandemic and as older chefs retire, leaving only about 20 still in operation.

But Chau is determined to keep her business going as long as possible, though she is pessimistic about the industry's future.

She said even if her nephews wanted to join her, she would suggest they learn to make desserts instead.

“This is not a money-making industry and so I don’t see that any young people would like to get into it,” she said.

Related Tags

Chinese New Year WORLDNEWS
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.