diff --git a/homeassistant/components/vivotek/camera.py b/homeassistant/components/vivotek/camera.py
index 665db37344044fedbabd1a73a802416a20a107c6..f4a195f5b0c03b063795d3b5cb73baad29de2123 100644
--- a/homeassistant/components/vivotek/camera.py
+++ b/homeassistant/components/vivotek/camera.py
@@ -7,12 +7,15 @@ import voluptuous as vol
 
 from homeassistant.components.camera import PLATFORM_SCHEMA, SUPPORT_STREAM, Camera
 from homeassistant.const import (
+    CONF_AUTHENTICATION,
     CONF_IP_ADDRESS,
     CONF_NAME,
     CONF_PASSWORD,
     CONF_SSL,
     CONF_USERNAME,
     CONF_VERIFY_SSL,
+    HTTP_BASIC_AUTHENTICATION,
+    HTTP_DIGEST_AUTHENTICATION,
 )
 from homeassistant.helpers import config_validation as cv
 
@@ -34,6 +37,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
         vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
         vol.Required(CONF_PASSWORD): cv.string,
         vol.Required(CONF_USERNAME): cv.string,
+        vol.Optional(CONF_AUTHENTICATION, default=HTTP_BASIC_AUTHENTICATION): vol.In(
+            [HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION]
+        ),
         vol.Optional(CONF_SSL, default=False): cv.boolean,
         vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean,
         vol.Optional(CONF_FRAMERATE, default=2): cv.positive_int,
@@ -54,6 +60,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
             verify_ssl=config[CONF_VERIFY_SSL],
             usr=config[CONF_USERNAME],
             pwd=config[CONF_PASSWORD],
+            digest_auth=config[CONF_AUTHENTICATION] == HTTP_DIGEST_AUTHENTICATION,
             sec_lvl=config[CONF_SECURITY_LEVEL],
         ),
         stream_source=f"rtsp://{creds}@{config[CONF_IP_ADDRESS]}:554/{config[CONF_STREAM_PATH]}",
diff --git a/homeassistant/components/vivotek/manifest.json b/homeassistant/components/vivotek/manifest.json
index c97a8461da923e570de65e695bf2c39573f3b153..afd7535aa0fdfab89b25d23f24e96909f9352077 100644
--- a/homeassistant/components/vivotek/manifest.json
+++ b/homeassistant/components/vivotek/manifest.json
@@ -3,7 +3,7 @@
   "name": "Vivotek",
   "documentation": "https://www.home-assistant.io/integrations/vivotek",
   "requirements": [
-    "libpyvivotek==0.3.1"
+    "libpyvivotek==0.4.0"
   ],
   "dependencies": [],
   "codeowners": [
diff --git a/requirements_all.txt b/requirements_all.txt
index fedfa2f61ec656e824d87260654a7cda3096710d..f69a9b8c080d5114b1d46056c60a74941374643a 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -762,7 +762,7 @@ libpurecool==0.5.0
 libpyfoscam==1.0
 
 # homeassistant.components.vivotek
-libpyvivotek==0.3.1
+libpyvivotek==0.4.0
 
 # homeassistant.components.mikrotik
 librouteros==2.3.0