diff --git a/brightcove.drush.inc b/brightcove.drush.inc
index 04e222de00d40c59ccbdf21681cb0e862c19d93d..600c500cd29202de603b06564010cbf8ad4399db 100644
--- a/brightcove.drush.inc
+++ b/brightcove.drush.inc
@@ -6,6 +6,7 @@
  */
 
 use Drupal\brightcove\BrightcoveUtil;
+use Drush\Drush;
 
 /**
  * Implements hook_drush_command().
@@ -30,8 +31,8 @@ function brightcove_drush_command() {
  * Implements drush_hook_COMMAND().
  */
 function drush_brightcove_sync_all() {
-  drush_print('Initiating Brightcove-to-Drupal sync...');
+  Drush::output()->writeln('Initiating Brightcove-to-Drupal sync...');
   BrightcoveUtil::runStatusQueues('sync', \Drupal::service('queue'));
   drush_backend_batch_process();
-  drush_print('Sync complete.');
+  Drush::output()->writeln('Sync complete.');
 }
diff --git a/brightcove.info.yml b/brightcove.info.yml
index 68c026efb56fa7d9f3eb20b266cbe5004da09f1c..54c5f4ebfb8073bea873606cd93864ca88e178fb 100644
--- a/brightcove.info.yml
+++ b/brightcove.info.yml
@@ -2,6 +2,7 @@ name: Brightcove
 type: module
 description: Brightcove Video Connect
 core: 8.x
+core_version_requirement: ^8 || ^9
 package: Brightcove
 configure: entity.brightcove_api_client.collection
 dependencies:
diff --git a/brightcove.install b/brightcove.install
index 6c647d382e44b66a6b7b3de95536b3213cde3c3b..df958bbd806cbb9bcc2518f8bc5c0c6ad1c224b6 100644
--- a/brightcove.install
+++ b/brightcove.install
@@ -134,8 +134,8 @@ function brightcove_update_8100(&$sandbox) {
   foreach ($entries as $entry) {
     $sandbox['progress']++;
 
-    if (REQUEST_TIME < $entry->expires) {
-      $key_value_expirable->setWithExpire($entry->token, $entry->video_id, $entry->expires - REQUEST_TIME);
+    if (\Drupal::time()->getRequestTime() < $entry->expires) {
+      $key_value_expirable->setWithExpire($entry->token, $entry->video_id, $entry->expires - \Drupal::time()->getRequestTime());
     }
   }
 
@@ -211,7 +211,7 @@ function brightcove_update_8105() {
   // Migrate brightcove_video entity name field before updating the entity
   // definitions.
   $schema = \Drupal::database()->schema();
-  /* @var \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface $entity_definition_update_manager */
+  /** @var \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface $entity_definition_update_manager */
   $entity_definition_update_manager = Drupal::service('entity.definition_update_manager');
   $entity_type_manager = Drupal::entityTypeManager();
   $name_column_specifications = [
@@ -224,14 +224,14 @@ function brightcove_update_8105() {
   $entity_definition_update_manager->installEntityType($entity_type_definition);
 
   // Apply entity definition updates.
-  \Drupal::entityDefinitionUpdateManager()->applyUpdates();
+  \Drupal::entityDefinitionUpdateManager()->EntityDefinitionUpdateManagerInterface::getChangeList();
 }
 
 /**
  * Create default subscription for each available client.
  */
 function brightcove_update_8106() {
-  /* @var BrightcoveAPIClient[] $clients */
+  /** @var \Drupal\brightcove\Entity\BrightcoveAPIClient[] $clients */
   $clients = BrightcoveAPIClient::loadMultiple();
   $messages = [];
   foreach ($clients as $client) {
diff --git a/brightcove.module b/brightcove.module
index 922d6622514afe1e73abcfd9d685f987e114c160..848bab16c95a564ae1f13d68cbf3fcff4dd270a5 100644
--- a/brightcove.module
+++ b/brightcove.module
@@ -258,7 +258,7 @@ function _brightcove_get_player_field(BrightcoveVideoPlaylistCMSEntityInterface
       $player_field = [
         '#theme' => [$player->isResponsive() ? 'brightcove_player_responsive' : 'brightcove_player_fixed'],
         '#account' => $api_client->getAccountId(),
-        '#data_usage' => 'cms:drupal:' . \DRUPAL::VERSION . ':' . system_get_info('module', 'brightcove')['version'] . ':javascript',
+        '#data_usage' => 'cms:drupal:' . \DRUPAL::VERSION . ':' . \Drupal::service('extension.list.module')->getExtensionInfo('brightcove')['version'] . ':javascript',
         '#id' => $id,
         '#is_playlist' => $player->isPlaylist(),
         '#player' => BrightcoveUtil::getDefaultPlayer($entity),
@@ -363,7 +363,7 @@ function brightcove_theme_suggestions_brightcove_video_alter(array &$suggestions
  */
 function brightcove_entity_access(EntityInterface $entity, $operation, AccountInterface $account) {
   // Disable editing/deleting video tags.
-  if (($entity instanceof TermInterface && $entity->getVocabularyId() == BrightcoveVideo::TAGS_VID || $entity instanceof VocabularyInterface && $entity->id() == BrightcoveVideo::TAGS_VID) && ($operation == 'update' || $operation == 'delete')) {
+  if (($entity instanceof TermInterface && $entity->bundle() == BrightcoveVideo::TAGS_VID || $entity instanceof VocabularyInterface && $entity->id() == BrightcoveVideo::TAGS_VID) && ($operation == 'update' || $operation == 'delete')) {
     return AccessResult::forbidden();
   }
   return AccessResult::neutral();
diff --git a/modules/brightcove_proxy/brightcove_proxy.info.yml b/modules/brightcove_proxy/brightcove_proxy.info.yml
index 69a4493e34368885483bf5266c32b32eb9ec7ee0..f817c8b79e771530eb259d1887518ef2f59c6c57 100644
--- a/modules/brightcove_proxy/brightcove_proxy.info.yml
+++ b/modules/brightcove_proxy/brightcove_proxy.info.yml
@@ -2,6 +2,7 @@ name: Brightcove Proxy
 description: Proxy configuration for Brightcove Video Connect.
 type: module
 core: 8.x
+core_version_requirement: ^8 || ^9
 package: Brightcove
 configure: brightcove_proxy.config_form
 dependencies:
diff --git a/modules/media_brightcove/media_brightcove.info.yml b/modules/media_brightcove/media_brightcove.info.yml
index 461c09c558cbeb938274f2b2037c92bd00250aaf..8d25e39c37947d0e3500b8f5696e1f0573480e07 100644
--- a/modules/media_brightcove/media_brightcove.info.yml
+++ b/modules/media_brightcove/media_brightcove.info.yml
@@ -2,6 +2,7 @@ name: Media Brightcove
 description: Provides a "Brightcove Video" media source.
 type: module
 core: 8.x
+core_version_requirement: ^8 || ^9
 package: Brightcove
 dependencies:
   - drupal:media
diff --git a/modules/media_brightcove/src/Plugin/Validation/Constraint/BrightcoveVideoConstraintValidator.php b/modules/media_brightcove/src/Plugin/Validation/Constraint/BrightcoveVideoConstraintValidator.php
index 6e63b259bcbb44135d05f7884a2cd1b3071c3d5f..1c3a3607bbc7fad399ce8fe0d5d0ffb5586d05be 100644
--- a/modules/media_brightcove/src/Plugin/Validation/Constraint/BrightcoveVideoConstraintValidator.php
+++ b/modules/media_brightcove/src/Plugin/Validation/Constraint/BrightcoveVideoConstraintValidator.php
@@ -18,7 +18,7 @@ class BrightcoveVideoConstraintValidator extends ConstraintValidator {
     if (!($value instanceof EntityReferenceFieldItemList)) {
       $this->context->addViolation($constraint->message);
     }
-    /** @var EntityReferenceFieldItemList $value */
+    /** @var \Drupal\Core\Field\EntityReferenceFieldItemList $value */
     $target_type = $value->getFieldDefinition()
       ->getFieldStorageDefinition()
       ->getSetting('target_type');
diff --git a/modules/media_entity_brightcove/media_entity_brightcove.info.yml b/modules/media_entity_brightcove/media_entity_brightcove.info.yml
index 697926b7fcc24a0d275f4efd5fd677d1651b5afb..df09547bd01ca99ade48b348f9c9daaf7a0d29cd 100644
--- a/modules/media_entity_brightcove/media_entity_brightcove.info.yml
+++ b/modules/media_entity_brightcove/media_entity_brightcove.info.yml
@@ -2,6 +2,7 @@ name: Media Entity Brightcove
 description: Allows you to add a "Brightcove Video" entity media type.
 type: module
 core: 8.x
+core_version_requirement: ^8 || ^9
 hidden: true
 package: Brightcove
 dependencies:
diff --git a/src/Access/BrightcovePlaylistAccessControlHandler.php b/src/Access/BrightcovePlaylistAccessControlHandler.php
index 7cbbfcea14ba423cb697133a6864062613adf448..f17956b94e380b47daa7778208fa4b059988a8e5 100644
--- a/src/Access/BrightcovePlaylistAccessControlHandler.php
+++ b/src/Access/BrightcovePlaylistAccessControlHandler.php
@@ -18,7 +18,7 @@ class BrightcovePlaylistAccessControlHandler extends EntityAccessControlHandler
    * {@inheritdoc}
    */
   protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
-    /* @var \Drupal\brightcove\Entity\BrightcovePlaylist $entity */
+    /** @var \Drupal\brightcove\Entity\BrightcovePlaylist $entity */
     switch ($operation) {
       case 'view':
         if (!$entity->isPublished()) {
diff --git a/src/BrightcovePlaylistAccessControlHandler.php b/src/BrightcovePlaylistAccessControlHandler.php
index 6678142a2ca732272960badb001723a9a93f8d9e..bc1147059c80d08a4f39fb42028cb3fe52664eb1 100644
--- a/src/BrightcovePlaylistAccessControlHandler.php
+++ b/src/BrightcovePlaylistAccessControlHandler.php
@@ -18,7 +18,7 @@ class BrightcovePlaylistAccessControlHandler extends EntityAccessControlHandler
    * {@inheritdoc}
    */
   protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
-    /* @var \Drupal\brightcove\BrightcovePlaylistInterface $entity */
+    /** @var \Drupal\brightcove\BrightcovePlaylistInterface $entity */
     switch ($operation) {
       case 'view':
         if (!$entity->isPublished()) {
diff --git a/src/BrightcovePlaylistListBuilder.php b/src/BrightcovePlaylistListBuilder.php
index 45cabcf2d8437ad24c9beeee6f20947e6b96487f..1ec485ee48ac7e2c39d9ace1b5d7f395ee78f0ca 100644
--- a/src/BrightcovePlaylistListBuilder.php
+++ b/src/BrightcovePlaylistListBuilder.php
@@ -2,12 +2,12 @@
 
 namespace Drupal\brightcove;
 
+use Drupal\Core\Link;
 use Drupal\Core\Datetime\DateFormatter;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityListBuilder;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Routing\LinkGeneratorTrait;
 use Drupal\Core\Session\AccountProxy;
 use Drupal\Core\Url;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -18,7 +18,6 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  * @ingroup brightcove
  */
 class BrightcovePlaylistListBuilder extends EntityListBuilder {
-  use LinkGeneratorTrait;
 
   /**
    * Account proxy.
@@ -101,16 +100,13 @@ class BrightcovePlaylistListBuilder extends EntityListBuilder {
    * {@inheritdoc}
    */
   public function buildRow(EntityInterface $entity) {
-    /* @var $entity \Drupal\brightcove\Entity\BrightcovePlaylist */
+    /** @var \Drupal\brightcove\Entity\BrightcovePlaylist $entity */
     if (($entity->isPublished() && $this->accountProxy->hasPermission('view published brightcove playlists')) || (!$entity->isPublished() && $this->accountProxy->hasPermission('view unpublished brightcove playlists'))) {
-      $name = $this->l(
-        $entity->label(),
-        new Url(
+      $name = Link::fromTextAndUrl($entity->label(), new Url(
           'entity.brightcove_playlist.canonical', [
             'brightcove_playlist' => $entity->id(),
           ]
-        )
-      );
+      ));
     }
     else {
       $name = $entity->label();
diff --git a/src/BrightcoveUtil.php b/src/BrightcoveUtil.php
index 6bbae75dd87973a80be2c11e26c257402a914428..3a836b0bbde5ddb75a32a75dc9c17cc7d70a5bdb 100644
--- a/src/BrightcoveUtil.php
+++ b/src/BrightcoveUtil.php
@@ -196,30 +196,30 @@ class BrightcoveUtil {
           if ($entity->getChangedTime() < strtotime($cms_entity->getUpdatedAt())) {
             $url = Url::fromRoute("brightcove_manual_update_{$entity_type}", ['entity_id' => $entity->id()], ['query' => ['token' => \Drupal::getContainer()->get('csrf_token')->get("brightcove_{$entity_type}/{$entity->id()}/update")]]);
 
-            drupal_set_message(t("There is a newer version of this :type on Brightcove, you may want to <a href=':url'>update the local version</a> before editing it.", [
+            \Drupal::messenger()->addWarning(t("There is a newer version of this :type on Brightcove, you may want to <a href=':url'>update the local version</a> before editing it.", [
               ':type' => $entity_type,
               ':url' => $url->toString(),
-            ]), 'warning');
+            ]));
           }
         }
       }
       catch (APIException $e) {
         if (!empty($entity_type)) {
           $url = Url::fromRoute("entity.brightcove_{$entity_type}.delete_form", ["brightcove_{$entity_type}" => $entity->id()]);
-          drupal_set_message(t("This :type no longer exists on Brightcove. You may want to <a href=':url'>delete the local version</a> too.", [
+          \Drupal::messenger()->addError(t("This :type no longer exists on Brightcove. You may want to <a href=':url'>delete the local version</a> too.", [
             ':type' => $entity_type,
             ':url' => $url->toString(),
-          ]), 'error');
+          ]));
         }
         else {
-          drupal_set_message($e->getMessage(), 'error');
+          \Drupal::messenger()->addError($e->getMessage());
         }
       }
     }
     else {
-      drupal_set_message(t('Brightcove API connection error: :error', [
+      \Drupal::messenger()->addError(t('Brightcove API connection error: :error', [
         ':error' => self::getApiClient($entity->getApiClient())->getClientStatusMessage(),
-      ]), 'error');
+      ]));
     }
   }
 
@@ -328,7 +328,7 @@ class BrightcoveUtil {
   public static function runQueue($queue, &$context) {
     // This is a static function called by Batch API, so it's not possible to
     // use dependency injection here.
-    /* @var \Drupal\Core\Queue\QueueWorkerInterface $queue_worker */
+    /** @var \Drupal\Core\Queue\QueueWorkerInterface $queue_worker */
     $queue_worker = \Drupal::getContainer()->get('plugin.manager.queue_worker')->createInstance($queue);
     $queue = \Drupal::queue($queue);
 
diff --git a/src/BrightcoveVideoListBuilder.php b/src/BrightcoveVideoListBuilder.php
index 562872408eb03338a0ae5fed7feb7e1a3445ba4e..a636fbc4d63c9345c34e659531a06bef77c847f7 100644
--- a/src/BrightcoveVideoListBuilder.php
+++ b/src/BrightcoveVideoListBuilder.php
@@ -2,12 +2,12 @@
 
 namespace Drupal\brightcove;
 
+use Drupal\Core\Link;
 use Drupal\Core\Datetime\DateFormatter;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityListBuilder;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Routing\LinkGeneratorTrait;
 use Drupal\Core\Session\AccountProxy;
 use Drupal\Core\Url;
 use Drupal\file\Entity\File;
@@ -20,7 +20,6 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  * @ingroup brightcove
  */
 class BrightcoveVideoListBuilder extends EntityListBuilder {
-  use LinkGeneratorTrait;
 
   /**
    * Account proxy.
@@ -106,16 +105,13 @@ class BrightcoveVideoListBuilder extends EntityListBuilder {
    * {@inheritdoc}
    */
   public function buildRow(EntityInterface $entity) {
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveVideo */
+    /** @var \Drupal\brightcove\Entity\BrightcoveVideo $entity */
     if (($entity->isPublished() && $this->accountProxy->hasPermission('view published brightcove videos')) || (!$entity->isPublished() && $this->accountProxy->hasPermission('view unpublished brightcove videos'))) {
-      $name = $this->l(
-        $entity->label(),
-        new Url(
-          'entity.brightcove_video.canonical', [
-            'brightcove_video' => $entity->id(),
-          ]
-        )
-      );
+      $name = Link::fromTextAndUrl($entity->label(), new Url(
+        'entity.brightcove_video.canonical', [
+          'brightcove_video' => $entity->id(),
+        ]
+      ));
     }
     else {
       $name = $entity->label();
diff --git a/src/Controller/BrightcoveSubscriptionController.php b/src/Controller/BrightcoveSubscriptionController.php
index 6132f66f20c339d73c4bab6b3f01d7919c363e4b..f7b736bcb439fbffd75f5a342e1aa1bd08a965f8 100644
--- a/src/Controller/BrightcoveSubscriptionController.php
+++ b/src/Controller/BrightcoveSubscriptionController.php
@@ -205,7 +205,7 @@ class BrightcoveSubscriptionController extends ControllerBase {
         }
 
         if (!$warning_set && !$subscription_found) {
-          drupal_set_message($this->t('There are subscriptions which are not available on Brightcove.<br>You can either <strong>create</strong> them on Brightcove or <strong>delete</strong> them if no longer needed.'), 'warning');
+          $this->messenger()->addWarning($this->t('There are subscriptions which are not available on Brightcove.<br>You can either <strong>create</strong> them on Brightcove or <strong>delete</strong> them if no longer needed.'));
           $warning_set = TRUE;
         }
 
@@ -248,10 +248,10 @@ class BrightcoveSubscriptionController extends ControllerBase {
       }
     }
     if (!empty($api_clients_without_default_subscription)) {
-      drupal_set_message($this->t('There are missing default subscription(s) for the following API Client(s): %api_clients<br><a href="@link">Create missing subscription(s)</a>.', [
+      $this->messenger()->addWarning($this->t('There are missing default subscription(s) for the following API Client(s): %api_clients<br><a href="@link">Create missing subscription(s)</a>.', [
         '%api_clients' => implode(', ', $api_clients_without_default_subscription),
         '@link' => Url::fromRoute('entity.brightcove_subscription.create_defaults')->toString(),
-      ]), 'warning');
+      ]));
     }
 
     $page['subscriptions'] = [
@@ -280,7 +280,7 @@ class BrightcoveSubscriptionController extends ControllerBase {
       $brightcove_subscription->saveToBrightcove();
     }
     catch (BrightcoveSubscriptionException $e) {
-      drupal_set_message($this->t('Failed to create Subscription on Brightcove: @error', ['@error' => $e->getMessage()]), 'error');
+      $this->messenger()->addError($this->t('Failed to create Subscription on Brightcove: @error', ['@error' => $e->getMessage()]));
     }
 
     return $this->redirect('entity.brightcove_subscription.list');
@@ -300,10 +300,10 @@ class BrightcoveSubscriptionController extends ControllerBase {
     try {
       $subscription = BrightcoveSubscription::load($id);
       $subscription->saveToBrightcove();
-      drupal_set_message($this->t('Default subscription for the "@api_client" API client has been successfully enabled.', ['@api_client' => $subscription->getApiClient()->label()]));
+      $this->messenger()->addStatus($this->t('Default subscription for the "@api_client" API client has been successfully enabled.', ['@api_client' => $subscription->getApiClient()->label()]));
     }
     catch (\Exception $e) {
-      drupal_set_message($this->t('Failed to enable the default subscription: @error', ['@error' => $e->getMessage()]), 'error');
+      $this->messenger()->addError($this->t('Failed to enable the default subscription: @error', ['@error' => $e->getMessage()]));
     }
     return $this->redirect('entity.brightcove_subscription.list');
   }
@@ -322,10 +322,10 @@ class BrightcoveSubscriptionController extends ControllerBase {
     try {
       $subscription = BrightcoveSubscription::load($id);
       $subscription->deleteFromBrightcove();
-      drupal_set_message($this->t('Default subscription for the "@api_client" API client has been successfully disabled.', ['@api_client' => $subscription->getApiClient()->label()]));
+      $this->messenger()->addStatus($this->t('Default subscription for the "@api_client" API client has been successfully disabled.', ['@api_client' => $subscription->getApiClient()->label()]));
     }
     catch (\Exception $e) {
-      drupal_set_message($this->t('Failed to disable the default subscription: @error', ['@error' => $e->getMessage()]), 'error');
+      $this->messenger()->addError($this->t('Failed to disable the default subscription: @error', ['@error' => $e->getMessage()]));
     }
     return $this->redirect('entity.brightcove_subscription.list');
   }
@@ -392,10 +392,10 @@ class BrightcoveSubscriptionController extends ControllerBase {
         }
       }
 
-      drupal_set_message($this->t('Default subscriptions has been successfully created.'));
+      $this->messenger()->addStatus($this->t('Default subscriptions has been successfully created.'));
     }
     catch (\Exception $e) {
-      drupal_set_message($this->t('Failed to create default subscription(s), @error', ['@error' => $e->getMessage()]), 'error');
+      $this->messenger()->addError($this->t('Failed to create default subscription(s), @error', ['@error' => $e->getMessage()]));
       watchdog_exception('brightcove', $e, 'Failed to create default subscription(s), @error', ['@error' => $e->getMessage()]);
     }
 
diff --git a/src/Controller/BrightcoveVideoController.php b/src/Controller/BrightcoveVideoController.php
index a1a78753c82297b50754d82ab6b3d221c04e88cf..7b640823f0e5113e6a95c14d048770d24375af42 100644
--- a/src/Controller/BrightcoveVideoController.php
+++ b/src/Controller/BrightcoveVideoController.php
@@ -200,7 +200,7 @@ class BrightcoveVideoController extends ControllerBase {
 
                         // Try to find the ingested text track on the video
                         // object and recreate it.
-                        $cms = BrightcoveUtil::getCmsApi($video_entity->getApiClient());;
+                        $cms = BrightcoveUtil::getCmsApi($video_entity->getApiClient());
                         $video = $cms->getVideo($video_entity->getBrightcoveId());
                         $api_text_tracks = $video->getTextTracks();
                         $found_api_text_track = NULL;
diff --git a/src/Entity/BrightcoveTextTrack.php b/src/Entity/BrightcoveTextTrack.php
index 8ba54931d7659d5aedb0487c68147f3f17b25902..65ab291798aff62909ca8188b1ab8595638d988c 100644
--- a/src/Entity/BrightcoveTextTrack.php
+++ b/src/Entity/BrightcoveTextTrack.php
@@ -268,7 +268,7 @@ class BrightcoveTextTrack extends ContentEntityBase implements BrightcoveTextTra
    * {@inheritdoc}
    */
   public function setPublished($published) {
-    return $this->set('status', $published ? NODE_PUBLISHED : NODE_NOT_PUBLISHED);
+    return $this->set('status', $published ? NodeInterface::PUBLISHED : NodeInterface::NOT_PUBLISHED);
   }
 
   /**
diff --git a/src/Entity/BrightcoveVideo.php b/src/Entity/BrightcoveVideo.php
index 99f5da220dfbf24ecd13e26a1c68d7cc4c0c8b00..39b90f2205364bc4db56c535b7eb2b4160ca75be 100644
--- a/src/Entity/BrightcoveVideo.php
+++ b/src/Entity/BrightcoveVideo.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\brightcove\Entity;
 
+use Drupal\Core\File\FileSystemInterface;
 use Brightcove\API\Exception\APIException;
 use Brightcove\API\Request\IngestImage;
 use Brightcove\API\Request\IngestRequest;
@@ -169,7 +170,7 @@ class BrightcoveVideo extends BrightcoveVideoPlaylistCmsEntity implements Bright
       if ($needs_save) {
         $image_content = file_get_contents($img_src);
         // Prepare directory and if it was a success try to save the image.
-        if (file_prepare_directory($image_dir, FILE_MODIFY_PERMISSIONS | FILE_CREATE_DIRECTORY)) {
+        if (\Drupal::service('file_system')->prepareDirectory($image_dir, FileSystemInterface::MODIFY_PERMISSIONS | FileSystemInterface::CREATE_DIRECTORY)) {
           $image_name = $matches[1];
           $file = file_save_data($image_content, "{$image_dir}/{$image_name}");
 
@@ -921,13 +922,13 @@ class BrightcoveVideo extends BrightcoveVideoPlaylistCmsEntity implements Bright
       }
       catch (APIException $e) {
         if ($e->getCode() == 404) {
-          drupal_set_message(t('The video was not found on Brightcove, only the local version was deleted.'), 'warning');
+          \Drupal::messenger()->addWarning(t('The video was not found on Brightcove, only the local version was deleted.'));
           parent::delete();
         }
         else {
-          drupal_set_message(t('There was an error while trying to delete the Video from Brightcove: @error', [
+          \Drupal::messenger()->addError(t('There was an error while trying to delete the Video from Brightcove: @error', [
             '@error' => ($e->getMessage()),
-          ]), 'error');
+          ]));
         }
       }
     }
diff --git a/src/Entity/BrightcoveVideoPlaylistCmsEntity.php b/src/Entity/BrightcoveVideoPlaylistCmsEntity.php
index 35fd023c10b6ea188aca62c6909fe1f7875c245a..027a3cf99fc05640a344431ab9efbdbb31592961 100644
--- a/src/Entity/BrightcoveVideoPlaylistCmsEntity.php
+++ b/src/Entity/BrightcoveVideoPlaylistCmsEntity.php
@@ -77,7 +77,7 @@ abstract class BrightcoveVideoPlaylistCmsEntity extends BrightcoveCmsEntity impl
    * {@inheritdoc}
    */
   public function setPublished($published) {
-    return $this->set('status', $published ? NODE_PUBLISHED : NODE_NOT_PUBLISHED);
+    return $this->set('status', $published ? NodeInterface::PUBLISHED : NodeInterface::NOT_PUBLISHED);
   }
 
 }
diff --git a/src/EventSubscriber/BrightcoveInitSubscriber.php b/src/EventSubscriber/BrightcoveInitSubscriber.php
index c4bfa08951a61496c24adc18f8391a289f01c534..8326a9eb3a675109f396761ec99728e3691da936 100644
--- a/src/EventSubscriber/BrightcoveInitSubscriber.php
+++ b/src/EventSubscriber/BrightcoveInitSubscriber.php
@@ -19,7 +19,7 @@ class BrightcoveInitSubscriber implements EventSubscriberInterface {
    *   GET response event.
    */
   public function initializeBrightcoveClient(GetResponseEvent $event) {
-    Client::$consumer = 'Drupal/' . \Drupal::VERSION . ' Brightcove/' . (system_get_info('module', 'brightcove')['version'] ?: 'dev');
+    Client::$consumer = 'Drupal/' . \Drupal::VERSION . ' Brightcove/' . (\Drupal::service('extension.list.module')->getExtensionInfo('brightcove')['version'] ?: 'dev');
   }
 
   /**
diff --git a/src/Form/BrightcoveAPIClientDeleteForm.php b/src/Form/BrightcoveAPIClientDeleteForm.php
index 3f32d12e935dc72815c257d6810b0ee15ee0efb2..e913c4a24b52016511210602fee47d14b461a2b8 100644
--- a/src/Form/BrightcoveAPIClientDeleteForm.php
+++ b/src/Form/BrightcoveAPIClientDeleteForm.php
@@ -6,7 +6,6 @@ use Drupal\brightcove\BrightcoveUtil;
 use Drupal\brightcove\Entity\BrightcoveSubscription;
 use Drupal\Core\Database\Connection;
 use Drupal\Core\Entity\EntityConfirmFormBase;
-use Drupal\Core\Entity\Query\QueryFactory;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Queue\QueueInterface;
 use Drupal\Core\Url;
@@ -18,11 +17,11 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
 
   /**
-   * Query factory.
+   * Entity Type Manager.
    *
-   * @var \Drupal\Core\Entity\Query\QueryFactory
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
-  protected $queryFactory;
+  protected $entityTypeManager;
 
   /**
    * Database connection.
@@ -76,8 +75,8 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
   /**
    * Constructs a new BrightcoveAPIClientDeleteForm.
    *
-   * @param \Drupal\Core\Entity\Query\QueryFactory $query_factory
-   *   Query factory.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
    * @param \Drupal\Core\Database\Connection $connection
    *   Database connection.
    * @param \Drupal\Core\Queue\QueueInterface $playlist_local_delete_queue
@@ -93,8 +92,8 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
    * @param \Drupal\Core\Queue\QueueInterface $subscription_delete_queue
    *   Subscription delete queue object.
    */
-  public function __construct(QueryFactory $query_factory, Connection $connection, QueueInterface $playlist_local_delete_queue, QueueInterface $video_local_delete_queue, QueueInterface $player_delete_queue, QueueInterface $custom_field_delete_queue, QueueInterface $text_track_delete_queue, QueueInterface $subscription_delete_queue) {
-    $this->queryFactory = $query_factory;
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, Connection $connection, QueueInterface $playlist_local_delete_queue, QueueInterface $video_local_delete_queue, QueueInterface $player_delete_queue, QueueInterface $custom_field_delete_queue, QueueInterface $text_track_delete_queue, QueueInterface $subscription_delete_queue) {
+    $this->entity_type_manager = $entity_type_manager;
     $this->connection = $connection;
     $this->playlistLocalDeleteQueue = $playlist_local_delete_queue;
     $this->videoLocalDeleteQueue = $video_local_delete_queue;
@@ -161,7 +160,7 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
     }
 
     // Collect all playlists belonging for the api client.
-    $playlists = $this->queryFactory->get('brightcove_playlist')
+    $playlists = $this->entityTypeManager->get('brightcove_playlist')
       ->condition('api_client', $entity->id())
       ->execute();
     foreach ($playlists as $playlist) {
@@ -180,7 +179,7 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
     }
 
     // Collect all videos belonging for the api client.
-    $videos = $this->queryFactory->get('brightcove_video')
+    $videos = $this->entityTypeManager->get('brightcove_video')
       ->condition('api_client', $entity->id())
       ->execute();
     foreach ($videos as $video) {
@@ -188,7 +187,7 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
     }
 
     // Collect all players belonging for the api client.
-    $players = $this->queryFactory->get('brightcove_player')
+    $players = $this->entityTypeManager->get('brightcove_player')
       ->condition('api_client', $entity->id())
       ->execute();
     foreach ($players as $player) {
@@ -196,7 +195,7 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
     }
 
     // Collect all custom fields belonging for the api client.
-    $custom_fields = $this->queryFactory->get('brightcove_custom_field')
+    $custom_fields = $this->entityTypeManager->get('brightcove_custom_field')
       ->condition('api_client', $entity->id())
       ->execute();
     foreach ($custom_fields as $custom_field) {
@@ -250,7 +249,7 @@ class BrightcoveAPIClientDeleteForm extends EntityConfirmFormBase {
 
     // Delete api client.
     $entity->delete();
-    drupal_set_message($this->t('Entity @type: deleted @label.', [
+    $this->messenger()->addStatus($this->t('Entity @type: deleted @label.', [
       '@type' => $this->entity->bundle(),
       '@label' => $this->entity->label(),
     ]));
diff --git a/src/Form/BrightcoveAPIClientForm.php b/src/Form/BrightcoveAPIClientForm.php
index 86113cae582b94073bd0036b86bef122734a445c..45bfe750faea1b0aadf8c216210a0b29634b6f8a 100644
--- a/src/Form/BrightcoveAPIClientForm.php
+++ b/src/Form/BrightcoveAPIClientForm.php
@@ -14,7 +14,6 @@ use Drupal\brightcove\Entity\BrightcoveSubscription;
 use Drupal\Core\Config\Config;
 use Drupal\Core\Entity\EntityForm;
 use Drupal\Core\Entity\EntityStorageInterface;
-use Drupal\Core\Entity\Query\QueryFactory;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface;
 use Drupal\Core\Queue\QueueInterface;
@@ -62,11 +61,11 @@ class BrightcoveAPIClientForm extends EntityForm {
   protected $subscriptionsQueue;
 
   /**
-   * Query factory.
+   * Entity Type Manager.
    *
-   * @var \Drupal\Core\Entity\Query\QueryFactory
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
    */
-  protected $queryFactory;
+  protected $entityTypeManager;
 
   /**
    * Key/Value expirable store.
@@ -93,13 +92,13 @@ class BrightcoveAPIClientForm extends EntityForm {
    * @param \Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface $key_value_expirable_store
    *   Key/Value expirable store for "brightcove_access_token".
    */
-  public function __construct(Config $config, EntityStorageInterface $player_storage, QueueInterface $player_queue, QueueInterface $custom_field_queue, QueueInterface $subscriptions_queue, QueryFactory $query_factory, KeyValueStoreExpirableInterface $key_value_expirable_store) {
+  public function __construct(Config $config, EntityStorageInterface $player_storage, QueueInterface $player_queue, QueueInterface $custom_field_queue, QueueInterface $subscriptions_queue, EntityTypeManagerInterface $entity_type_manager, KeyValueStoreExpirableInterface $key_value_expirable_store) {
     $this->config = $config;
     $this->playerStorage = $player_storage;
     $this->playerQueue = $player_queue;
     $this->customFieldQueue = $custom_field_queue;
     $this->subscriptionsQueue = $subscriptions_queue;
-    $this->queryFactory = $query_factory;
+    $this->entityTypeManager = $entity_type_manager;
     $this->keyValueExpirableStore = $key_value_expirable_store;
   }
 
@@ -209,7 +208,7 @@ class BrightcoveAPIClientForm extends EntityForm {
     }
 
     // Count BrightcoveAPIClients.
-    $api_clients_number = $this->queryFactory->get('brightcove_api_client')
+    $api_clients_number = $this->entityTypeManager->get('brightcove_api_client')
       ->count()->execute();
     $form['default_client'] = [
       '#type' => 'checkbox',
@@ -317,7 +316,7 @@ class BrightcoveAPIClientForm extends EntityForm {
 
     switch ($status) {
       case SAVED_NEW:
-        drupal_set_message($this->t('Created the %label Brightcove API Client.', [
+        $this->messenger()->addStatus($this->t('Created the %label Brightcove API Client.', [
           '%label' => $brightcove_api_client->label(),
         ]));
 
@@ -341,7 +340,7 @@ class BrightcoveAPIClientForm extends EntityForm {
         break;
 
       default:
-        drupal_set_message($this->t('Saved the %label Brightcove API Client.', [
+        $this->messenger()->addStatus($this->t('Saved the %label Brightcove API Client.', [
           '%label' => $brightcove_api_client->label(),
         ]));
     }
@@ -350,7 +349,7 @@ class BrightcoveAPIClientForm extends EntityForm {
       $this->config->set('defaultAPIClient', $brightcove_api_client->id())->save();
     }
 
-    $form_state->setRedirectUrl($brightcove_api_client->urlInfo('collection'));
+    $form_state->setRedirectUrl($brightcove_api_client->toUrl('collection'));
   }
 
 }
diff --git a/src/Form/BrightcovePlaylistForm.php b/src/Form/BrightcovePlaylistForm.php
index 05b9baae7c3579348ffcfc5e1798fad3caffc7ff..b2faa74a88f48680951bd224c1d058c8715a0c4c 100644
--- a/src/Form/BrightcovePlaylistForm.php
+++ b/src/Form/BrightcovePlaylistForm.php
@@ -21,7 +21,7 @@ class BrightcovePlaylistForm extends BrightcoveVideoPlaylistForm {
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form = parent::buildForm($form, $form_state);
 
-    /* @var $entity \Drupal\brightcove\Entity\BrightcovePlaylist */
+    /** @var \Drupal\brightcove\Entity\BrightcovePlaylist $entity */
     $entity = $this->entity;
 
     // Get api client from the form settings.
@@ -97,7 +97,7 @@ class BrightcovePlaylistForm extends BrightcoveVideoPlaylistForm {
    * {@inheritdoc}
    */
   public function save(array $form, FormStateInterface $form_state) {
-    /* @var $entity \Drupal\brightcove\Entity\BrightcovePlaylist */
+    /** @var \Drupal\brightcove\Entity\BrightcovePlaylist $entity */
     $entity = $this->entity;
 
     try {
@@ -105,20 +105,20 @@ class BrightcovePlaylistForm extends BrightcoveVideoPlaylistForm {
 
       switch ($status) {
         case SAVED_NEW:
-          drupal_set_message($this->t('Created the %label Brightcove Playlist.', [
+          $this->messenger()->addStatus($this->t('Created the %label Brightcove Playlist.', [
             '%label' => $entity->label(),
           ]));
           break;
 
         default:
-          drupal_set_message($this->t('Saved the %label Brightcove Playlist.', [
+          $this->messenger()->addStatus($this->t('Saved the %label Brightcove Playlist.', [
             '%label' => $entity->label(),
           ]));
       }
       $form_state->setRedirect('entity.brightcove_playlist.canonical', ['brightcove_playlist' => $entity->id()]);
     }
     catch (APIException $e) {
-      drupal_set_message($e->getMessage(), 'error');
+      $this->messenger()->addError($e->getMessage());
     }
   }
 
diff --git a/src/Form/BrightcoveSubscriptionDeleteForm.php b/src/Form/BrightcoveSubscriptionDeleteForm.php
index 3b2a34925df12ee044901f397c76c74326ba5163..92b84dad2ce55cc4ba11b168faffd191a3c353b3 100644
--- a/src/Form/BrightcoveSubscriptionDeleteForm.php
+++ b/src/Form/BrightcoveSubscriptionDeleteForm.php
@@ -61,7 +61,7 @@ class BrightcoveSubscriptionDeleteForm extends ConfirmFormBase {
   public function buildForm(array $form, FormStateInterface $form_state) {
     // Prevent deletion of the default Subscription entity.
     if (!empty($this->brightcoveSubscription) && $this->brightcoveSubscription->isDefault()) {
-      drupal_set_message($this->t('The API client default Subscription cannot be deleted.'), 'error');
+      $this->messenger()->addError($this->t('The API client default Subscription cannot be deleted.'));
       return $this->redirect('entity.brightcove_subscription.list');
     }
 
@@ -76,10 +76,10 @@ class BrightcoveSubscriptionDeleteForm extends ConfirmFormBase {
       $this->brightcoveSubscription->delete(FALSE);
     }
     catch (APIException $e) {
-      drupal_set_message($e->getMessage(), 'error');
+      $this->messenger()->addError($e->getMessage());
     }
 
-    drupal_set_message($this->t('Subscription has been successfully deleted.'));
+    $this->messenger()->addStatus($this->t('Subscription has been successfully deleted.'));
     $form_state->setRedirect('entity.brightcove_subscription.list');
   }
 
diff --git a/src/Form/BrightcoveSubscriptionForm.php b/src/Form/BrightcoveSubscriptionForm.php
index 1ce5f4307d95b08a912df69b3bad03569a79a1f3..f0e57d08b1a9c15fac6872b383b123bb095a3ba5 100644
--- a/src/Form/BrightcoveSubscriptionForm.php
+++ b/src/Form/BrightcoveSubscriptionForm.php
@@ -95,17 +95,17 @@ class BrightcoveSubscriptionForm extends FormBase {
       ]);
       $brightcove_subscription->save(TRUE);
 
-      drupal_set_message($this->t('Created Brightcove Subscription with %endpoint endpoint.', [
+      $this->messenger()->addStatus($this->t('Created Brightcove Subscription with %endpoint endpoint.', [
         '%endpoint' => $brightcove_subscription->getEndpoint(),
       ]));
     }
     catch (\Exception $e) {
       // In case of an exception, show an error message and rebuild the form.
       if ($e->getMessage()) {
-        drupal_set_message($this->t('Failed to create subscription: %error', ['%error' => $e->getMessage()]), 'error');
+        $this->messenger()->addError($this->t('Failed to create subscription: %error', ['%error' => $e->getMessage()]));
       }
       else {
-        drupal_set_message($this->t('Failed to create subscription.'), 'error');
+        $this->messenger()->addError($this->t('Failed to create subscription.'));
       }
 
       $form_state->setRebuild(TRUE);
diff --git a/src/Form/BrightcoveTextTrackForm.php b/src/Form/BrightcoveTextTrackForm.php
index a25da09120fb939c9121b8b77f4433e02f5f8c06..6063c1b95b157290dd940c014da4dcf478599095 100644
--- a/src/Form/BrightcoveTextTrackForm.php
+++ b/src/Form/BrightcoveTextTrackForm.php
@@ -16,7 +16,7 @@ class BrightcoveTextTrackForm extends ContentEntityForm {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveTextTrack */
+    /** @var \Drupal\brightcove\Entity\BrightcoveTextTrack $entity */
     $form = parent::buildForm($form, $form_state);
     return $form;
   }
@@ -30,13 +30,13 @@ class BrightcoveTextTrackForm extends ContentEntityForm {
 
     switch ($status) {
       case SAVED_NEW:
-        drupal_set_message($this->t('Created the %label Brightcove Text Track.', [
+        $this->messenger()->addStatus($this->t('Created the %label Brightcove Text Track.', [
           '%label' => $entity->label(),
         ]));
         break;
 
       default:
-        drupal_set_message($this->t('Saved the %label Brightcove Text Track.', [
+        $this->messenger()->addStatus($this->t('Saved the %label Brightcove Text Track.', [
           '%label' => $entity->label(),
         ]));
     }
diff --git a/src/Form/BrightcoveVideoForm.php b/src/Form/BrightcoveVideoForm.php
index ee165eff1e6958bb286aed4976528311ab664c29..3158ddb7385135815d5b568a0316530053b40b88 100644
--- a/src/Form/BrightcoveVideoForm.php
+++ b/src/Form/BrightcoveVideoForm.php
@@ -24,7 +24,7 @@ class BrightcoveVideoForm extends BrightcoveVideoPlaylistForm {
 
     $form['#attached']['library'][] = 'brightcove/brightcove.video';
 
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveVideo */
+    /** @var \Drupal\brightcove\Entity\BrightcoveVideo $entity */
     $entity = $this->entity;
 
     // Get api client from the form settings.
@@ -216,7 +216,7 @@ class BrightcoveVideoForm extends BrightcoveVideoPlaylistForm {
   public function validateForm(array &$form, FormStateInterface $form_state) {
     parent::validateForm($form, $form_state);
 
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveVideo */
+    /** @var \Drupal\brightcove\Entity\BrightcoveVideo $entity */
     $entity = $this->entity;
 
     switch ($form_state->getValue('upload_type')) {
@@ -243,7 +243,7 @@ class BrightcoveVideoForm extends BrightcoveVideoPlaylistForm {
    * {@inheritdoc}
    */
   public function save(array $form, FormStateInterface $form_state) {
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveVideo */
+    /** @var \Drupal\brightcove\Entity\BrightcoveVideo $entity */
     $entity = $this->entity;
 
     try {
@@ -262,20 +262,20 @@ class BrightcoveVideoForm extends BrightcoveVideoPlaylistForm {
 
       switch ($status) {
         case SAVED_NEW:
-          drupal_set_message($this->t('Created the %label Brightcove Video.', [
+          $this->messenger()->addStatus($this->t('Created the %label Brightcove Video.', [
             '%label' => $entity->label(),
           ]));
           break;
 
         default:
-          drupal_set_message($this->t('Saved the %label Brightcove Video.', [
+          $this->messenger()->addStatus($this->t('Saved the %label Brightcove Video.', [
             '%label' => $entity->label(),
           ]));
       }
       $form_state->setRedirect('entity.brightcove_video.canonical', ['brightcove_video' => $entity->id()]);
     }
     catch (APIException $e) {
-      drupal_set_message($e->getMessage(), 'error');
+      $this->messenger()->addError($e->getMessage());
     }
   }
 
diff --git a/src/Form/BrightcoveVideoPlaylistForm.php b/src/Form/BrightcoveVideoPlaylistForm.php
index 87d3045680273a48d4024fbb5b83bdb87551182e..31cf7b4a1d500b1637be473dd0e57f565ff8cca8 100644
--- a/src/Form/BrightcoveVideoPlaylistForm.php
+++ b/src/Form/BrightcoveVideoPlaylistForm.php
@@ -7,7 +7,7 @@ use Drupal\brightcove\Entity\BrightcovePlayer;
 use Drupal\Core\Ajax\AjaxResponse;
 use Drupal\Core\Ajax\ReplaceCommand;
 use Drupal\Core\Entity\ContentEntityForm;
-use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeBundleInfo;
 use Drupal\Core\Form\FormStateInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -26,13 +26,13 @@ abstract class BrightcoveVideoPlaylistForm extends ContentEntityForm {
   /**
    * Constructs a ContentEntityForm object.
    *
-   * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
+   * @param \Drupal\Core\Entity\EntityTypeBundleInfo
    *   The entity manager.
    * @param string $defaultAPIClient
    *   The default API Client.
    */
-  public function __construct(EntityManagerInterface $entity_manager, $defaultAPIClient) {
-    parent::__construct($entity_manager);
+  public function __construct(EntityTypeBundleInfo $entity_bundle_info, $defaultAPIClient) {
+    parent::__construct($entity_bundle_info);
     $this->defaultAPIClient = $defaultAPIClient;
   }
 
@@ -52,7 +52,7 @@ abstract class BrightcoveVideoPlaylistForm extends ContentEntityForm {
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form = parent::buildForm($form, $form_state);
 
-    /* @var $entity \Drupal\brightcove\Entity\BrightcoveVideoPlaylistCmsEntity */
+    /** @var \Drupal\brightcove\Entity\BrightcoveVideoPlaylistCmsEntity $entity */
     $entity = $this->entity;
     $triggering_element = $form_state->getTriggeringElement();
 
diff --git a/src/Plugin/Validation/Constraint/BrightcoveVideoByApiClientConstraintValidator.php b/src/Plugin/Validation/Constraint/BrightcoveVideoByApiClientConstraintValidator.php
index 0d53caf63a0cf57704171bf8058bf7ce6fa13647..08cb7066824cc3310ed369149f8b28db62cf3c6b 100644
--- a/src/Plugin/Validation/Constraint/BrightcoveVideoByApiClientConstraintValidator.php
+++ b/src/Plugin/Validation/Constraint/BrightcoveVideoByApiClientConstraintValidator.php
@@ -14,15 +14,15 @@ class BrightcoveVideoByApiClientConstraintValidator extends ConstraintValidator
    * {@inheritdoc}
    */
   public function validate($value, Constraint $constraint) {
-    /* @var \Drupal\Core\Field\EntityReferenceFieldItemList $videos */
-    /* @var \Drupal\brightcove\Plugin\Validation\Constraint\BrightcoveVideoByApiClientConstraint $constraint */
+    /** @var \Drupal\Core\Field\EntityReferenceFieldItemList $videos */
+    /** @var \Drupal\brightcove\Plugin\Validation\Constraint\BrightcoveVideoByApiClientConstraint $constraint */
 
     // Get API client.
     $api_client = $value->get('api_client')->getValue();
     if (!empty($api_client[0]['target_id'])) {
       // Get the videos field settings.
       $videos = $value->get('videos');
-      /* @var \Drupal\Core\Field\TypedData\FieldItemDataDefinition $item_definitions */
+      /** @var \Drupal\Core\Field\TypedData\FieldItemDataDefinition $item_definitions */
       $item_definitions = $videos->getItemDefinition();
       $settings = $item_definitions->getSettings();
 
