def METHOD_NAME(
    self,
    output: AnyOutput,
) -> Dict[str, Stats]:
    response = self._session.get(
        url=self.get_output_url(output),
        auth=(output.admin_user, output.admin_password or ""),
        timeout=self._timeout,
    )
    response.raise_for_status()
    root = etree.fromstring(  # nosec
        response.content,
        parser=etree.XMLParser(resolve_entities=False),
    )
    stats = {}
    # Shoutcast specific parsing
    if output.kind == "shoutcast":
        listeners_el = root.find("CURRENTLISTENERS")
        listeners = 0 if listeners_el is None else int(listeners_el.text)
        stats["shoutcast"] = Stats(
            listeners=listeners,
        )
        return stats
    # Icecast specific parsing
    for source in root.iterchildren("source"):
        mount = source.attrib.get("mount")
        if mount is None:
            continue
        listeners_el = source.find("listeners")
        listeners = 0 if listeners_el is None else int(listeners_el.text)
        mount = mount.lstrip("/")
        stats[mount] = Stats(
            listeners=listeners,
        )
    return stats