Skip to content

Instantly share code, notes, and snippets.

@skwirrel
Last active May 20, 2024 09:46
Show Gist options
  • Save skwirrel/1dce9a77da8996df3e01539f7c721913 to your computer and use it in GitHub Desktop.
Save skwirrel/1dce9a77da8996df3e01539f7c721913 to your computer and use it in GitHub Desktop.
Javascript Console Hack for Getting NonVerbal Communication In a Zoom Meeting

Getting A Summary of Nonverbal Communication In a Zoom Meeting

For the background to this gist see here: https://devforum.zoom.us/t/getting-meeting-participants-with-raised-hand/10718/9

Here is the solution I had to resort to for getting a list of nonverbal communication from a Zoom meeting.

I have a meeting with 100’s of participants and we wanted to run a simple impromptu “show of hands” poll without using the specific polling feature. All I needed was a list of all the attendees with their hand raised at a certain point in time…

Usage

  1. Join the meeting using the web browser NOT the Zoom client. This requires following the small "Join meeting in browser" link on the meeting joining web page.
  2. Open up the Participant panel (and then the attendees section if its a webinar)
  3. Hit F12 (or Ctrl-Shift-I) to get the developer console up
  4. Paste the code below into the console.

This will list all participants grouped by non-verbal communication (with anyone who has no nonverbal communication active listed in a “The Rest” category). It shows the number in each group in bracktes in the heading of each grouping.

It will also automatically copy the result to the clipboard for you - oh… and it adds the date and time at the top.

Once you have pasted the above code you can re-run it at any point during the meeting by just running this in the console… getNonVerbal();

WARNINGS

  • THIS IS VERY HACKY.
  • I have only tested it in Chrome. YMMV.
  • Any changes (by Zoom) to the way that the Zoom interface is laid out or coded will break this.
function copyText(text) {
// Copy the output to the clipboard
var textArea = document.createElement("textarea");
textArea.value = text;
// Avoid scrolling to bottom
textArea.style.top = "0";
textArea.style.left = "0";
textArea.style.position = "fixed";
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
var successful = document.execCommand('copy');
document.body.removeChild(textArea);
}
function getNonVerbal() {
allParticipants = jQuery('li.participants-li');
output='Nonverbal Communication as at '+(new Date())+"\n\n";
for (let [nonverbal, selector] of Object.entries({
'Raised Hand':'i.participants-icon__participants-raisehand',
'Yes':'i.nonverbal-icon.yes-icon',
'No':'i.nonverbal-icon.no-icon',
'Slower':'i.nonverbal-icon.slower-icon',
'Faster':'i.nonverbal-icon.faster-icon',
'Thumbs Down':'i.nonverbal-icon.dislike-icon',
'Thumbs Up':'i.nonverbal-icon.like-icon',
'Clapping':'i.nonverbal-icon.clap-icon',
'Coffee':'i.nonverbal-icon.coffee-icon',
'Away':'i.nonverbal-icon.away-icon',
'The Rest':'',
})) {
var people = [];
var matching;
if (!selector) matching = allParticipants;
else matching = jQuery(selector).closest('li.participants-li')
matching.each(function(){
people.push($(this).find('span.participants-item__name-section').text());
allParticipants = allParticipants.not('#'+this.id);
});
if (people.length) {
output += nonverbal+" ("+people.length+")\n";
output += "============================================================\n";
output += people.join("\n");
output += "\n\n";
}
}
copyText(output);
console.log(output);
console.log('This should have been copied to the clipboard for you');
}
getNonVerbal();
@Dungla12
Copy link

how to use

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment