Let’s start with a rant
“Zoom bietet eine tolle User Experience (UX) und lässt den Anwender verschiedene Meetings bequem verwalten. Meetings lassen sich benennen, abspeichern und in einem übersichtlichen Menü auswählen und starten.”
So oder zumindest so ähnlich könnte eine eingedampfte Product Vision von Zoom aussehen. Nur leider hat es scheinbar noch kein PO bei Zoom geschafft, das in der Prio hoch zu drücken und umsetzen zu lassen
Warum auch, Zoom hat es auch ohne vernünftige UX geschafft zum Marktführer für Video Calls aufzusteigen. Killer-Feature ist halt die sehr gute Kompression von Audio und Video, um qualitativ hochwertige Calls auch bei geringer Bandbreite durchzuführen. Wie geschaffen für Länder, in denen die Internet-Infrastruktur keine Priorität hat und vernachlässigt wird.
Lange Rede, kurzer Sinn: Mir geht die tägliche Bedienung von Zoom extrem auf die Nerven.
Hilf dir selbst
Für mich als Kommandozeilen-Junkie ist die schönste UX, wenn Dinge mit einfachen Kommandos auf der Shell funktionieren. Daher habe ich ein kleines Tool gebaut, mit dem sich Zoom-Meetings via CLI und Keyword starten lassen.
Die Meetings werden in einer YAML-Datei hinterlegt und lassen sich mit dem korrespondierenden Keyword starten.
zoom-lauchner start kubernetes-training
Das Kommando öffnet Zoom und verbindet sich in einen Zoom-Raum. In diesem Fall in unser Kubernetes-Training.
Die YAML-Datei sieht so aus:
zooms:
kubernetes-training: <https link>
qudosoft: <https link>
Das Tool wandelt den HTTPS-Link in das Zoom-Protocol “zoommtg” um und startet Zoom mittels “xdg-open”, wenn es unter Linux läuft, oder “open“, wenn’s ne Apfel-Kiste ist. Unter Windows klappt es wohl auch… vielleicht
Etwas anderes macht ein Browser auch nicht, beim Klick auf einen HTTPS-Zoom-Link.
Ein HTTPS-Zoom-Link hat folgende Struktur:
https://<zoomhost>/j/<meetingID>/?pwd=<password hash>
Diese Struktur lässt sich durch einfache Ersetzung in die “zoommtg”-Struktur umwandeln.
Hier der `sed` Befehl dafür:
zoommtgURL="$(echo $https-zoom-url | sed 's/^https:/zoommtg:/;s|/j/|/join?action=join\&confno=|;s/?pwd=/\&pwd=/')"
Die “zoommtg”-Struktur sieht dann wie folgt aus:
zoommtg://zoom.us?action=join&confno=&pwd=
Wird der “pwd”-Parameter weglassen, fragt Zoom beim Start des Meetings nach dem Passwort.
Wie ich den Spaß mit golang implementiert habe, ist in meinem Github Repo Zoom Launcher in `zoomLinkConverter.go` und den dazugehörigen Test zu sehen.
Es gibt immer was zu lernen
Wer Bock hat, nen bissl golang zu vertiefen, kann sich den Code anschauen. Das Tool
- verwendet cobra, ein Framework um Kommandozeilen-Tools zu bauen,
- zeigt, wie man Applikationen aus einem Go-Tool starten kann
- verwendet die Lib `gopkg.in/yaml.v2`, um das Marshalling (Konvertieren) einer YAML-Struktur in eine golang-Type-Struktur zu realisieren.
- Weiterhin zeigt `zoomLinkConverter_test.go` wie parametrisierte Unit-Tests umgesetzt werden.
In the end
Habt ihr Feedback, Verbesserungsvorschläge oder Feature Wünsche? Dann schreibt es gerne in die Kommentare oder nutzt die Möglichkeiten von GitHub.
Viel Spaß mit dem Tool 🙂