Getting meeting participants with raised hand

Also… in case this is of use to anyone who comes across this… Here is the solution I had to resort to for my use case…

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…

So… if you join the meeting using the web browser, then hit F12 to get the developer console up you can paste this code into the console…

jQuery('i.participants-icon__participants-raisehand').closest('div.participants-item__item-layout').find('span.participants-item__display-name').each(function(){console.log($(this).text())});

This will print out in the console a list of all attendees with their hand raised.

Or for the really fancy version paste all of this into the console…

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+"\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();

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 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 think this should work in Webinars too, but I haven’t tested it yet.
  • 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.
2 Likes