ChrisRegado / streamdeck-googlemeet

A Stream Deck plugin to manage your Google Meet microphone and camera.
MIT License
323 stars 32 forks source link

Browser extension requires English Google account language #7

Closed ChrisRegado closed 2 years ago

ChrisRegado commented 3 years ago

The browser extension (and thus the whole plugin) currently only works for users who have their Google account's language set to English. This is an unfortunate consequence of how the extension locates controls on the Meet web page. Google obfuscates Meet's JavaScript and CSS, so to identify and interact with UI controls such as the mute buttons, the extension searches for human-readable labels like "microphone" and "leave call". However, these labels change depending on the account's language setting.

Note that it's the Google account language that matters, not the user's browser settings. You can change your account's language on https://myaccount.google.com/language. Users may also have multiple Google accounts set to different languages (as in https://github.com/ChrisRegado/streamdeck-googlemeet/issues/6).

Possible solutions here include:

ChrisRegado commented 3 years ago

Commits https://github.com/ChrisRegado/streamdeck-googlemeet/commit/bce5160584a597bc18b39c5ea052d99b8e021aa5 and https://github.com/ChrisRegado/streamdeck-googlemeet/commit/83635f815c12dad6e550872f290faf03491da0fc made it easier to support different languages within the browser extension. We should now be able to add support for additional languages by inspecting Meet UI elements using an account set to that language, and adding label keywords to our existing lists.

woehrl01 commented 3 years ago

@ChrisRegado I just did some research, it looks like that the mangled names are quite stable. At least I found multiple extensions which use the same values for multiple years. See https://github.com/cheluskis/hangremote as an example.

ChrisRegado commented 3 years ago

Nice discovery! It looks like that should work for us too, and it seems better than maintaining a long list of keywords for each language.

ChrisRegado commented 3 years ago

As of release v1.2.0, all buttons except the new Raise/Lower Hand button should work in any language. The Camera and Mic buttons in Meet have easy-to-use identifiers, but some of the other controls require a bit more reverse engineering to figure out.