published

Webex-Virtual-Background-Logo

Use this script to 'insert' content into a virtual background:

  • insert your customers logo in your virtual background
  • insert text in your virtual background
  • insert an event banner in your virtual background

Show me how!

Click the image below to see a video of this script in action.

                

Features

                

                

How does it work?

                

REQUIREMENTS

  • A Cisco Webex Desk Pro video device with a local (user) account.
  • Python 3.x or higher (tested with 3.7.x and 3.9.x)
  • Python 'requests' library (api calls)
  • Python 'pillow' library (image manipulation)
  • Have the Python script run on the same network as your Webex Desk Pro
  • A 'base' image that you want to use as a virtual background.

TESTED on a Webex Desk Pro: RoomOS 10.2.1, Personal Mode, cloud registered

TESTED on Mac: Python 3.9.1, requests 2.25.1, pillow 8.1.0

TESTED on Win 10: Python 3.7.2, requests 2.21.0, pillow 8.1.0

Start

  1. Install Python (instructions)
  2. Install Requests library (instructions)

    short version: "python3 -m pip install requests"

  3. Install Pillow library (instructions)

    short version: "python3 -m pip install pillow"

  4. Create a base64 login token for API access:

    MAC: 'echo -n "myusername:mypassword" | base 64'

    WIN: use an online service like base64encode.org if you trust them

    WIN: put 'myusername:mypassword' in a file called 'xtoken.txt' and in a command prompt run:

     certutil -encode xtoken.txt xtoken.b64 && type xtoken.b64 && del xtoken.*
    
  5. Create a configuration file by running the Python script. If it doesn't find webexlogo_settings.ini it will create one in the right format.

    python webexlogo.py

  6. Edit webexlogo_config.ini and update parameters as described in the next paragraph.
    Instructions are also in the generated .ini file itself.

Settings File

                

                

Define Logo Area

                

Good to know

  • Error "no module named PIL"? Remove the "PIL" library before instaling the "Pillow" library. info (thanks José Rico!)
  • The script caches all downloaded images in the script folder. If needed later it won’t have to download them again.
  • If you update an active background, you need to switch to another mode (like ‘Blur’) and back in order to see the changes.
  • When pulling a list of call participants, it will ignore users with a generic ‘email provider’ domain like hotmail.com, gmail.com, yahoo.com
  • A DeskPro in a Webex Meeting cannot access email addresses of participants. Solution: run script with domain name, logo url, etc.
  • Downloading company logos based on the domain name is done using the Clearbit Logo API.
  • Long URLs with special characters in it ($,%,&) may need quotes:
    python3 webexlogo.py “https://site.com/image?url=longurl”
  • ISSUE: (on Mac): when text contains a questionmark, the Z-shell thinks it has to do something.
  • TIP: if you want to make some notes for yourself in the .ini file, start the line with ';' (semicolon)
  • NEXT release: will allow you to download an existing virtual background

Support?

Feel free to join this Webex Space that I actively monitor: https://eurl.io/#Tg9_W-C23

More like this?

Will be announced in the "Webex Developer" LinkedIn group at: http://cs.co/webexdevlink

Webex Developer Resource overview: http://cs.co/webexdevinfo

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Products

    Webex
  • Programming Languages

    Python
  • License

    Other

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.