Use your GoPro camera as Webcam in Microsoft Teams for Mac

With the GoPro Webcam app, you can use recent GoPro cameras as a webcam. However, recent updates of Microsoft Teams have broken that functionality on MacOS. This blog shows how to fix it (until Microsoft fixes it properly).

May 12, 2021
productivity hacks

If you own a recent GoPro camera (Hero 7/8/9+) you can use it as a webcam on your computer without any additional hardware. You can find the instructions on the GoPro website. I’ve been using that for a while now, with the GoPro adhesive mount stuck to the back of one of my monitors. It’s a nice alternative (COVID has made webcams stupidly expensive) if you already own a GoPro. However, not all apps seem to be able to use the camera, and especially Microsoft Teams on MacOS has become a bit of a pain for me personally, as I need it for work all the time.

The problem

The problem is simple. While my GoPro works fine as a webcam in apps like Zoom, or even in the web version of Teams (provided you use Chrome or Edge as your browser - it won’t work in Safari), the native Teams app will not show the GoPro as a usable camera source. This issue is caused by changes in MacOS as recent as 10.14, where 3rd party video (CoreMediaIO) plugins can be blocked when using signed apps.

The workaround

Microsoft has been supposedly working on a solution for this issue, but the current version available today (1.4.00.8872) still has the issue unfortunately. If you really want to use your GoPro in Teams, you’ll have to work around the restrictions set in MacOS. You can do this by removing the codesign signature from the Teams app. This is a potential security issue, so obviously do this at your own risk!

First, let’s make sure you have the relevant Xcode components on your system:

$ xcode-select --install

To remove the signature, open a terminal on your Mac, and run the commands below. The first command will remove the signature from the Teams app. The second command will do the same for various backend-components that Teams uses. You need to run both commands for this to work.

$ sudo codesign --remove-signature /Applications/Microsoft\ Teams.app

$ cd /Applications/Microsoft\ Teams.app && find . -name *.app -exec sudo codesign --remove-signature {} \;

If you restart your Teams app, it will ask for your password to access the relevant credentials in your Keychain. Enter your password and choose ‘Always allow’. Now your GoPro yshould be usable in Teams, at least until the next update at which point you need to repeat this procedure.

Repeating the procedure

To make repeated ‘fixing’ of Teams easier, I’ve quickly added a function in my bash config. You can add the code below in your ~/.bash_profile, and then a simple fixteams will do the job.

# fixteams - Removes the code-signing signature so that the GoPro camera will work
fixteams() {
  local path_to_teams='/Applications/Microsoft Teams.app'

  if codesign -v "${path_to_teams}" &>/dev/null; then
    echo "Teams is currently code-signed. Enter your password to continue, or hit CTRL+C to abort."
    sudo -v
  else
    echo "Teams not currently code-signed. Nothing to do here.."
    return 1
  fi

  sudo codesign --remove-signature "${path_to_teams}"
  cd "${path_to_teams}"
  find . -name .app -exec sudo codesign --remove-signature {} \;
  cd - &>/dev/null

  echo "Stripping code signatures completed. Dropping elevated permissions.."
  sudo -k
}

This looks like this:

$ fixteams
Teams is currently code-signed. Enter your password to continue, or hit CTRL+C to abort.
Password:
Stripping code signatures completed. Dropping elevated permissions..
$ fixteams
Teams not currently code-signed. Nothing to do here..