Skip to content

plot Zoom video‑meeting participant duration data

License

Notifications You must be signed in to change notification settings

robbiemorrison/zoomcsv

Repository files navigation

zoompart.py

Plot Zoom video‑meeting participant duration information.

Overview

This one file utility takes the participant CSV file, processes it a little, and produces a bar graph showing the participation rates. In particular:

  • the utility deduplicates multiple sessions by the same user to produce a single session
  • the gaps and overlaps in multiple sessions are accounted for by default
  • deduplication examines email addresses by default or optionally user names — users often enter slightly different names between sessions and names are therefore less reliable in this regard
  • the utility tallies the number of sessions above a certain user‑defined time threshold to report the number of engaged users
  • the widely disliked "Attentiveness Score" metric is no longer present in the participant CSV file by default and is therefore not considered

Multiple sessions by the same user are quite common and often overlap.

Getting started

A typical call might comprise:

$ zoompart.py \
  --verbose \
  --dat-file \
  --nominal-duration=130 \
  --cutoff=20 \
  --title="Test plot" \
  participants_123456789.csv

To yield to following plot:

SVG plot

No personal data is embedded in either the produced SVG or DAT files. The DAT file contains only the raw numbers used to create the bar graph.

There is not real need to clone this repository, just download or copy‑paste the contents of zoompart.py to a local file, set the execute permission, and run that:

$ chmod u+x zoompart.py
$ ./zoompart.py --help

The various function definitions in the utility could be pulled out and used to drive an interactive jupyter notebooks session instead.

As of April 2020, Zoom names the participant file using the following convention:

  • participants_<meeting-ID-without-dashes>.csv

Software license

The software license is ISC, regarded as equivalent to the MIT permissive license but with simpler wording.

Options

The following options are provided:

long short argument comment
--version -V show utility version string and exit
--help -h show help message and exit
--title -t string specify plot title
--numbered-title -n use custom numbered plot title
--nominal-duration -l set nominal meeting duration in minutes
--cutoff -c set short session threshold in minutes
--ignore-gaps -I consider only beginning and closing timestamps
--dedup-name -N deduplicate on name not email address
--dat-file -d create or overwrite existing DAT file
--no-plot -P omit plot
--save-plot -S save plot automatically (system dependent)
--truncate -T truncate input data for testing purposes
--verbose -v show additional information
--show-df -D show loaded dataframes

ℕ indicates {0, 1, 2, ...}.

The --nominal-duration option draws a horizontal dotted line annotated "nominal duration". It is useful because sometimes participants continue to chat after the event proper has finished.

Users can adjust some hardcoded values in the script to better suit their needs. See the comments in the code for further details.

Requirements

The utility requires the following python dependencies:

  • python3 — tested with version 3.6.2
  • pandas
  • matplotlib

Status and caveats

The script is reasonably mature, although the following caveats apply:

  • the utility has only been tested on Ubuntu 19.04 and it is possible some of the code is Linux‑specific
  • you may need to modify the hash‑bang line to suit your system
  • you may need to adjust your PATH environment accordingly

About

plot Zoom video‑meeting participant duration data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published