Like I’ve told you. If you want to know if someone has spoken in chat you have to connect to chat and read the messages as they happen. There are NO documented endpoint to retrieve who has spoken in chat, or historical chat data.
As for viewers there is no way to know who specifically is viewing a stream. It is possible to collect some mixture of metrics based on extension activity, presence in chat, chat activity, etc… but none of that has certainty to it.
Many 3rd party services that do analytics or try to track viewership data do so using various metrics but there will always be a degree of inaccuracy because no 3rd party has access to accurate viewer data, so they collect metrics from many sources themselves, and the exact data used is often not disclosed.