def _get_clean_narration(self):

        """
        Return narration without HTML tags/entities.

        Example:

        <div data-oe-version="1.2">uveweve osoas</div>

        -> uveweve osoas

        """
        self.ensure_one()

        narration = self.narration or ''

        # Remove HTML tags safely
        soup = BeautifulSoup(narration, "html.parser")

        clean_text = soup.get_text(separator=' ', strip=True)

        # Extra cleanup for spaces/newlines
        clean_text = re.sub(r'\s+', ' ', clean_text).strip()

        return clean_text