diff --git a/src/BlazyFormatterManager.php b/src/BlazyFormatterManager.php
index b1fe650..7858905 100644
--- a/src/BlazyFormatterManager.php
+++ b/src/BlazyFormatterManager.php
@@ -24,7 +24,7 @@ class BlazyFormatterManager extends BlazyManager {
     $entity_id      = $entity->id();
     $bundle         = $entity->bundle();
     $field_name     = $field->getName();
-    $field_type     = $field->getType();
+    $field_type     = method_exists($field, 'getSource') ? $field->getSource() : $field->getType();
     $field_clean    = str_replace("field_", '', $field_name);
     $target_type    = $field->getFieldStorageDefinition()->getSetting('target_type');
     $view_mode      = empty($settings['current_view_mode']) ? '_custom' : $settings['current_view_mode'];
diff --git a/src/Dejavu/BlazyEntityBase.php b/src/Dejavu/BlazyEntityBase.php
index 670d918..c536d54 100644
--- a/src/Dejavu/BlazyEntityBase.php
+++ b/src/Dejavu/BlazyEntityBase.php
@@ -81,7 +81,7 @@ abstract class BlazyEntityBase extends EntityReferenceFormatterBase {
     return [
       'current_view_mode' => $this->viewMode,
       'entity_type'       => $entity_type,
-      'field_type'        => $field->getType(),
+      'field_type'        => method_exists($field, 'getSource') ? $field->getSource() : $field->getType(),
       'field_name'        => $field->getName(),
       'plugin_id'         => $this->getPluginId(),
       'settings'          => $this->getSettings(),
diff --git a/src/Dejavu/BlazyVideoTrait.php b/src/Dejavu/BlazyVideoTrait.php
index 1a02681..443e646 100644
--- a/src/Dejavu/BlazyVideoTrait.php
+++ b/src/Dejavu/BlazyVideoTrait.php
@@ -171,7 +171,7 @@ trait BlazyVideoTrait {
 
     $bundle = $media->bundle();
     $fields = $media->getFields();
-    $config = $media->getType()->getConfiguration();
+    $config = method_exists($media, 'getSource') ? $media->getSource()->getConfiguration() : $media->getType()->getConfiguration();
     $source = isset($config['source_url_field']) ? $config['source_url_field'] : '';
 
     $source_field[$bundle]    = isset($config['source_field']) ? $config['source_field'] : $source;
diff --git a/src/Form/BlazyAdminFormatterBase.php b/src/Form/BlazyAdminFormatterBase.php
index ba8267f..9a930b2 100644
--- a/src/Form/BlazyAdminFormatterBase.php
+++ b/src/Form/BlazyAdminFormatterBase.php
@@ -216,13 +216,14 @@ abstract class BlazyAdminFormatterBase extends BlazyAdminBase {
     foreach ($target_bundles as $bundle => $label) {
       if ($fields = $storage->loadByProperties(['entity_type' => $entity_type, 'bundle' => $bundle])) {
         foreach ((array) $fields as $field_name => $field) {
+          $field_type = method_exists($field, 'getSource') ? $field->getSource() : $field->getType();
           if (in_array($field->getName(), $excludes)) {
             continue;
           }
           if (empty($allowed_field_types)) {
             $options[$field->getName()] = $field->getLabel();
           }
-          elseif (in_array($field->getType(), $allowed_field_types)) {
+          elseif (in_array($field_type, $allowed_field_types)) {
             $options[$field->getName()] = $field->getLabel();
           }
 
diff --git a/src/Plugin/Field/FieldFormatter/BlazyFileFormatterBase.php b/src/Plugin/Field/FieldFormatter/BlazyFileFormatterBase.php
index ed721ad..9f3fcf3 100644
--- a/src/Plugin/Field/FieldFormatter/BlazyFileFormatterBase.php
+++ b/src/Plugin/Field/FieldFormatter/BlazyFileFormatterBase.php
@@ -100,7 +100,7 @@ abstract class BlazyFileFormatterBase extends FileFormatterBase implements Conta
       'current_view_mode' => $this->viewMode,
       'entity_type'       => $entity_type,
       'field_name'        => $field->getName(),
-      'field_type'        => $field->getType(),
+      'field_type'        => method_exists($field, 'getSource') ? $field->getSource() : $field->getType(),
       'grid_form'         => $multiple,
       'image_style_form'  => TRUE,
       'media_switch_form' => TRUE,
@@ -132,7 +132,8 @@ abstract class BlazyFileFormatterBase extends FileFormatterBase implements Conta
    */
   protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) {
     // Add the default image if the type is image.
-    if ($items->isEmpty() && $this->fieldDefinition->getType() === 'image') {
+    $field_type = method_exists($this->fieldDefinition, 'getSource') ? $this->fieldDefinition->getSource() : $this->fieldDefinition->getType();
+    if ($items->isEmpty() && $field_type === 'image') {
       $default_image = $this->getFieldSetting('default_image');
       // If we are dealing with a configurable field, look in both
       // instance-level and field-level settings.
diff --git a/src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php b/src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php
index 9df8592..872bbb9 100644
--- a/src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php
@@ -123,7 +123,8 @@ class BlazyVideoFormatter extends BlazyVideoBase implements ContainerFactoryPlug
    * {@inheritdoc}
    */
   public static function isApplicable(FieldDefinitionInterface $field_definition) {
-    return $field_definition->getFieldStorageDefinition()->getType() === 'video_embed_field';
+    $field_type = method_exists($field_definition->getFieldStorageDefinition(), 'getSource') ? $field_definition->getFieldStorageDefinition()->getSource() : $field_definition->getFieldStorageDefinition()->getType();
+    return $field_type === 'video_embed_field';
   }
 
 }
