diff --git a/config/schema/video_embed_field.schema.yml b/config/schema/video_embed_field.schema.yml
index 8229b1e..52c4bdc 100644
--- a/config/schema/video_embed_field.schema.yml
+++ b/config/schema/video_embed_field.schema.yml
@@ -16,6 +16,21 @@ field.formatter.settings.video_embed_field_video:
     autoplay:
       type: boolean
       label: 'Autoplay'
+    autoplayadmin:
+      type: boolean
+      label: 'Autoplay for Admin'
+    loop:
+      type: boolean
+      label: 'Loop'
+    mute:
+      type: boolean
+      label: 'Mute'
+    controls:
+      type: boolean
+      label: 'Controls'
+    rel:
+      type: boolean
+      label: 'Related'
     responsive:
       type: boolean
       label: 'Responsive'
@@ -33,6 +48,18 @@ field.formatter.settings.video_embed_hybrid:
     autoplay:
       type: boolean
       label: 'Autoplay'
+    loop:
+      type: boolean
+      label: 'Loop'
+    mute:
+      type: boolean
+      label: 'Mute'
+    controls:
+      type: boolean
+      label: 'Controls'
+    rel:
+      type: boolean
+      label: 'Related'
     responsive:
       type: boolean
       label: 'Responsive'
diff --git a/modules/video_embed_wysiwyg/config/schema/video_embed_wysiwyg.schema.yml b/modules/video_embed_wysiwyg/config/schema/video_embed_wysiwyg.schema.yml
index f571d64..3c2d6b0 100644
--- a/modules/video_embed_wysiwyg/config/schema/video_embed_wysiwyg.schema.yml
+++ b/modules/video_embed_wysiwyg/config/schema/video_embed_wysiwyg.schema.yml
@@ -13,6 +13,18 @@ ckeditor.plugin.video_embed:
             autoplay:
               label: 'Autoplay'
               type: boolean
+            loop:
+              label: 'Loop'
+              type: boolean
+            mute:
+              label: 'Mute'
+              type: boolean
+            controls:
+              label: 'Controls'
+              type: boolean
+            rel:
+              label: 'Related'
+              type: boolean
             responsive:
               label: 'Responsive'
               type: boolean
diff --git a/modules/video_embed_wysiwyg/src/Plugin/Filter/VideoEmbedWysiwyg.php b/modules/video_embed_wysiwyg/src/Plugin/Filter/VideoEmbedWysiwyg.php
index f0c50e7..8247308 100644
--- a/modules/video_embed_wysiwyg/src/Plugin/Filter/VideoEmbedWysiwyg.php
+++ b/modules/video_embed_wysiwyg/src/Plugin/Filter/VideoEmbedWysiwyg.php
@@ -88,7 +88,7 @@ class VideoEmbedWysiwyg extends FilterBase implements ContainerFactoryPluginInte
       }
 
       $autoplay = $this->currentUser->hasPermission('never autoplay videos') ? FALSE : $embed_data['settings']['autoplay'];
-      $embed_code = $provider->renderEmbedCode($embed_data['settings']['width'], $embed_data['settings']['height'], $autoplay);
+      $embed_code = $provider->renderEmbedCode($embed_data['settings']['width'], $embed_data['settings']['height'], $autoplay, $embed_data['settings']['loop'], $embed_data['settings']['mute'], $embed_data['settings']['controls'], $embed_data['settings']['rel']);
 
       $embed_code = [
         '#type' => 'container',
diff --git a/modules/video_embed_wysiwyg/tests/src/Functional/TextFormatConfigurationTest.php b/modules/video_embed_wysiwyg/tests/src/Functional/TextFormatConfigurationTest.php
index 3f565f2..97298c3 100644
--- a/modules/video_embed_wysiwyg/tests/src/Functional/TextFormatConfigurationTest.php
+++ b/modules/video_embed_wysiwyg/tests/src/Functional/TextFormatConfigurationTest.php
@@ -143,6 +143,7 @@ class TextFormatConfigurationTest extends BrowserTestBase {
     // Assert all the form fields that appear on the modal, appear as
     // configurable defaults.
     $this->assertSession()->pageTextContains('Autoplay');
+    $this->assertSession()->pageTextContains('Loop');
     $this->assertSession()->pageTextContains('Responsive Video');
     $this->assertSession()->pageTextContains('Width');
     $this->assertSession()->pageTextContains('Height');
@@ -154,6 +155,7 @@ class TextFormatConfigurationTest extends BrowserTestBase {
       'editor[settings][plugins][video_embed][defaults][children][height]' => '456',
       'editor[settings][plugins][video_embed][defaults][children][responsive]' => FALSE,
       'editor[settings][plugins][video_embed][defaults][children][autoplay]' => FALSE,
+      'editor[settings][plugins][video_embed][defaults][children][loop]' => FALSE,
     ], t('Save configuration'));
 
     // Ensure the configured defaults show up on the modal window.
@@ -161,6 +163,7 @@ class TextFormatConfigurationTest extends BrowserTestBase {
     $this->assertSession()->fieldValueEquals('width', '123');
     $this->assertSession()->fieldValueEquals('height', '456');
     $this->assertSession()->fieldValueEquals('autoplay', FALSE);
+    $this->assertSession()->fieldValueEquals('loop', FALSE);
     $this->assertSession()->fieldValueEquals('responsive', FALSE);
   }
 
diff --git a/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php b/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
index c80d663..569433d 100644
--- a/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
+++ b/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
@@ -76,6 +76,7 @@ class EmbedDialogTest extends JavascriptTestBase {
 
     // Assert all the form fields appear on the modal.
     $this->assertSession()->pageTextContains('Autoplay');
+    $this->assertSession()->pageTextContains('Loop');
     $this->assertSession()->pageTextContains('Responsive Video');
     $this->assertSession()->pageTextContains('Width');
     $this->assertSession()->pageTextContains('Height');
@@ -101,7 +102,7 @@ class EmbedDialogTest extends JavascriptTestBase {
     // View the source of the ckeditor and find the output.
     $this->find('.cke_button__source_label')->click();
     $base_path = \Drupal::request()->getBasePath();
-    $this->assertEquals('<p>{"preview_thumbnail":"' . rtrim($base_path, '/') . '/' . $this->publicFilesDirectory . '/styles/video_embed_wysiwyg_preview/public/video_thumbnails/iaf3Sl2r3jE.jpg","video_url":"https://www.youtube.com/watch?v=iaf3Sl2r3jE&amp;t=1553s","settings":{"responsive":1,"width":"854","height":"480","autoplay":1},"settings_summary":["Embedded Video (Responsive, autoplaying)."]}</p>', trim($this->getSession()->getPage()->find('css', '.cke_source')->getValue()));
+    $this->assertEquals('<p>{"preview_thumbnail":"' . rtrim($base_path, '/') . '/' . $this->publicFilesDirectory . '/styles/video_embed_wysiwyg_preview/public/video_thumbnails/iaf3Sl2r3jE.jpg","video_url":"https://www.youtube.com/watch?v=iaf3Sl2r3jE&amp;t=1553s","settings":{"responsive":1,"width":"854","height":"480","autoplay":1,"playlist":"iaf3Sl2r3jE"},"settings_summary":["Embedded Video (Responsive, autoplaying, looping)."]}</p>', trim($this->getSession()->getPage()->find('css', '.cke_source')->getValue()));
   }
 
   /**
@@ -109,7 +110,7 @@ class EmbedDialogTest extends JavascriptTestBase {
    */
   public function testNestedMarkup() {
     $nested_content = '<div class="nested-content">
-<p>{"preview_thumbnail":"/thumb.jpg","video_url":"https://www.youtube.com/watch?v=iaf3Sl2r3jE","settings":{"responsive":1,"width":"854","height":"480","autoplay":1},"settings_summary":["Embedded Video (Responsive, autoplaying)."]}</p>
+<p>{"preview_thumbnail":"/thumb.jpg","video_url":"https://www.youtube.com/watch?v=iaf3Sl2r3jE","settings":{"responsive":1,"width":"854","height":"480","autoplay":1,"playlist":"iaf3Sl2r3jE"},"settings_summary":["Embedded Video (Responsive, autoplaying, looping)."]}</p>
 </div>';
     $node = $this->createNode([
       'type' => 'page',
diff --git a/src/Plugin/Field/FieldFormatter/Video.php b/src/Plugin/Field/FieldFormatter/Video.php
index 361207a..1216f76 100644
--- a/src/Plugin/Field/FieldFormatter/Video.php
+++ b/src/Plugin/Field/FieldFormatter/Video.php
@@ -98,7 +98,10 @@ class Video extends FormatterBase implements ContainerFactoryPluginInterface {
       }
       else {
         $autoplay = $this->currentUser->hasPermission('never autoplay videos') ? FALSE : $this->getSetting('autoplay');
-        $element[$delta] = $provider->renderEmbedCode($this->getSetting('width'), $this->getSetting('height'), $autoplay);
+        if (\Drupal\user\Entity\User::load(\Drupal::currentUser()->id())->hasRole('administrator') && $autoplay = $this->getSetting('autoplayadmin')) {
+          $autoplay = TRUE;
+        }
+        $element[$delta] = $provider->renderEmbedCode($this->getSetting('width'), $this->getSetting('height'), $autoplay, $this->getSetting('loop'), $this->getSetting('mute'), $this->getSetting('controls'), $this->getSetting('rel'));
         $element[$delta]['#cache']['contexts'][] = 'user.permissions';
 
         $element[$delta] = [
@@ -126,7 +129,12 @@ class Video extends FormatterBase implements ContainerFactoryPluginInterface {
       'responsive' => TRUE,
       'width' => '854',
       'height' => '480',
-      'autoplay' => TRUE,
+      'autoplay' => FALSE,
+      'autoplayadmin' => FALSE,
+      'loop' => FALSE,
+      'mute' => FALSE,
+      'controls' => TRUE,
+      'rel' => FALSE,
     ];
   }
 
@@ -141,6 +149,36 @@ class Video extends FormatterBase implements ContainerFactoryPluginInterface {
       '#description' => $this->t('Autoplay the videos for users without the "never autoplay videos" permission. Roles with this permission will bypass this setting.'),
       '#default_value' => $this->getSetting('autoplay'),
     ];
+    $elements['autoplayadmin'] = [
+      '#title' => $this->t('Autoplay for Admin'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('Autoplay the videos for users with the administrator role.'),
+      '#default_value' => $this->getSetting('autoplayadmin'),
+    ];
+    $elements['loop'] = [
+      '#title' => $this->t('Loop'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('Loop the video.'),
+      '#default_value' => $this->getSetting('loop'),
+    ];
+    $elements['mute'] = [
+      '#title' => $this->t('Mute'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('Mute the video.'),
+      '#default_value' => $this->getSetting('mute'),
+    ];
+    $elements['controls'] = [
+      '#title' => $this->t('Controls'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('Show controls.'),
+      '#default_value' => $this->getSetting('controls'),
+    ];
+    $elements['rel'] = [
+      '#title' => $this->t('Related'),
+      '#type' => 'checkbox',
+      '#description' => $this->t('Show related videos.'),
+      '#default_value' => $this->getSetting('rel'),
+    ];
     $elements['responsive'] = [
       '#title' => $this->t('Responsive Video'),
       '#type' => 'checkbox',
@@ -182,9 +220,14 @@ class Video extends FormatterBase implements ContainerFactoryPluginInterface {
    */
   public function settingsSummary() {
     $dimensions = $this->getSetting('responsive') ? $this->t('Responsive') : $this->t('@widthx@height', ['@width' => $this->getSetting('width'), '@height' => $this->getSetting('height')]);
-    $summary[] = $this->t('Embedded Video (@dimensions@autoplay).', [
+    $summary[] = $this->t('Embedded Video (@dimensions@autoplay@autoplayadmin@loop@mute@controls@rel).', [
       '@dimensions' => $dimensions,
       '@autoplay' => $this->getSetting('autoplay') ? $this->t(', autoplaying') : '',
+      '@autoplayadmin' => $this->getSetting('autoplayadmin') ? $this->t(', autoplaying for admin') : '',
+      '@loop' => $this->getSetting('loop') ? $this->t(', looping') : '',
+      '@mute' => $this->getSetting('mute') ? $this->t(', mute') : '',
+      '@controls' => $this->getSetting('controls') ? $this->t(', show controls') : ', hide controls',
+      '@rel' => $this->getSetting('rel') ? $this->t(', show related videos') : ', hide related videos',
     ]);
     return $summary;
   }
diff --git a/src/Plugin/video_embed_field/Provider/Vimeo.php b/src/Plugin/video_embed_field/Provider/Vimeo.php
index 70c7f6b..a5753f0 100644
--- a/src/Plugin/video_embed_field/Provider/Vimeo.php
+++ b/src/Plugin/video_embed_field/Provider/Vimeo.php
@@ -17,13 +17,15 @@ class Vimeo extends ProviderPluginBase {
   /**
    * {@inheritdoc}
    */
-  public function renderEmbedCode($width, $height, $autoplay) {
+  public function renderEmbedCode($width, $height, $autoplay, $loop, $mute, $controls, $rel) {
     $iframe = [
       '#type' => 'video_embed_iframe',
       '#provider' => 'vimeo',
       '#url' => sprintf('https://player.vimeo.com/video/%s', $this->getVideoId()),
       '#query' => [
         'autoplay' => $autoplay,
+        'loop' => $loop,
+        'muted' => $mute,
       ],
       '#attributes' => [
         'width' => $width,
diff --git a/src/Plugin/video_embed_field/Provider/YouTube.php b/src/Plugin/video_embed_field/Provider/YouTube.php
index aa11aea..ffc0a43 100644
--- a/src/Plugin/video_embed_field/Provider/YouTube.php
+++ b/src/Plugin/video_embed_field/Provider/YouTube.php
@@ -17,7 +17,7 @@ class YouTube extends ProviderPluginBase {
   /**
    * {@inheritdoc}
    */
-  public function renderEmbedCode($width, $height, $autoplay) {
+  public function renderEmbedCode($width, $height, $autoplay, $loop, $mute, $controls, $rel) {
     $embed_code = [
       '#type' => 'video_embed_iframe',
       '#provider' => 'youtube',
@@ -25,7 +25,10 @@ class YouTube extends ProviderPluginBase {
       '#query' => [
         'autoplay' => $autoplay,
         'start' => $this->getTimeIndex(),
-        'rel' => '0',
+        'loop' => $loop,
+        'mute' => $mute,
+        'controls' => $controls,
+        'rel' => $rel,
       ],
       '#attributes' => [
         'width' => $width,
@@ -37,6 +40,9 @@ class YouTube extends ProviderPluginBase {
     if ($language = $this->getLanguagePreference()) {
       $embed_code['#query']['cc_lang_pref'] = $language;
     }
+    if ($loop) {
+      $embed_code['#query']['playlist'] = $this->getVideoId();
+    }
     return $embed_code;
   }
 
diff --git a/src/Plugin/video_embed_field/Provider/YouTubePlaylist.php b/src/Plugin/video_embed_field/Provider/YouTubePlaylist.php
index 1043c5a..2f3bef9 100644
--- a/src/Plugin/video_embed_field/Provider/YouTubePlaylist.php
+++ b/src/Plugin/video_embed_field/Provider/YouTubePlaylist.php
@@ -17,13 +17,16 @@ class YouTubePlaylist extends ProviderPluginBase {
   /**
    * {@inheritdoc}
    */
-  public function renderEmbedCode($width, $height, $autoplay) {
+  public function renderEmbedCode($width, $height, $autoplay, $loop, $mute, $controls, $rel) {
     return [
       '#type' => 'video_embed_iframe',
       '#provider' => 'youtube_playlist',
       '#url' => 'https://www.youtube.com/embed/videoseries',
       '#query' => [
         'list' => $this->getVideoId(),
+        'mute' => $mute,
+        'controls' => $controls,
+        'rel' => $rel,
       ],
       '#attributes' => [
         'width' => $width,
diff --git a/src/ProviderPluginInterface.php b/src/ProviderPluginInterface.php
index 863feeb..81c5d17 100644
--- a/src/ProviderPluginInterface.php
+++ b/src/ProviderPluginInterface.php
@@ -72,11 +72,19 @@ interface ProviderPluginInterface extends PluginInspectionInterface {
    *   The height of the video player.
    * @param bool $autoplay
    *   If the video should autoplay.
+   * @param bool $loop
+   *   If the video should loop.
+   * @param bool $mute
+   *   If the video should play muted.
+   * @param bool $controls
+   *   Whether show controls (youtube only).
+   * @param bool $rel
+   *   Whether show related videos (youtube only).
    *
    * @return mixed
    *   A renderable array of the embed code.
    */
-  public function renderEmbedCode($width, $height, $autoplay);
+  public function renderEmbedCode($width, $height, $autoplay, $loop, $mute, $controls, $rel);
 
   /**
    * Get the ID of the video from user input.
diff --git a/tests/modules/video_embed_field_mock_provider/src/Plugin/video_embed_field/Provider/MockProvider.php b/tests/modules/video_embed_field_mock_provider/src/Plugin/video_embed_field/Provider/MockProvider.php
index da282f7..a80fbe8 100644
--- a/tests/modules/video_embed_field_mock_provider/src/Plugin/video_embed_field/Provider/MockProvider.php
+++ b/tests/modules/video_embed_field_mock_provider/src/Plugin/video_embed_field/Provider/MockProvider.php
@@ -33,7 +33,7 @@ class MockProvider implements ProviderPluginInterface {
   /**
    * {@inheritdoc}
    */
-  public function renderEmbedCode($width, $height, $autoplay) {
+  public function renderEmbedCode($width, $height, $autoplay, $loop) {
     return [
       '#markup' => 'Mock provider embed code.',
     ];
diff --git a/tests/src/Functional/FormatterConfigurationTest.php b/tests/src/Functional/FormatterConfigurationTest.php
index 985c005..eaa4a07 100644
--- a/tests/src/Functional/FormatterConfigurationTest.php
+++ b/tests/src/Functional/FormatterConfigurationTest.php
@@ -48,11 +48,13 @@ class FormatterConfigurationTest extends BrowserTestBase {
   public function testVideoConfirmationForm() {
     // Test the settings form and summaries for the video formatter.
     $this->setFormatter('video_embed_field_video');
-    $this->assertSession()->pageTextContains('Embedded Video (Responsive, autoplaying).');
+    $this->assertSession()->pageTextContains('Embedded Video (Responsive, autoplaying, looping).');
     $this->updateFormatterSettings([
       'autoplay' => FALSE,
+      'loop' => FALSE,
       'responsive' => FALSE,
       'width' => 100,
+      'width' => 100,
       'height' => 100,
     ]);
     $this->assertSession()->pageTextContains('Embedded Video (100x100).');
@@ -73,10 +75,11 @@ class FormatterConfigurationTest extends BrowserTestBase {
 
     $this->setFormatter('video_embed_field_colorbox');
     $this->assertSession()->pageTextContains('Thumbnail that launches a modal window.');
-    $this->assertSession()->pageTextContains('Embedded Video (Responsive, autoplaying).');
+    $this->assertSession()->pageTextContains('Embedded Video (Responsive, autoplaying, looping).');
     $this->assertSession()->pageTextContains('Video thumbnail (medium, linked to provider).');
     $this->updateFormatterSettings([
       'autoplay' => FALSE,
+      'loop' => FALSE,
       'responsive' => FALSE,
       'width' => 100,
       'height' => 100,
diff --git a/tests/src/FunctionalJavascript/ColorboxFormatterTest.php b/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
index 685b1a1..dcab368 100644
--- a/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
+++ b/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
@@ -44,6 +44,7 @@ class ColorboxFormatterTest extends JavascriptTestBase {
   public function testColorboxFormatter() {
     $this->setDisplayComponentSettings('video_embed_field_colorbox', [
       'autoplay' => FALSE,
+      'loop' => FALSE,
       'responsive' => TRUE,
     ]);
     $node = $this->createVideoNode('https://example.com/mock_video');
diff --git a/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php b/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
index b7bc673..5ba71cb 100644
--- a/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
+++ b/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
@@ -37,6 +37,7 @@ class LazyLoadFormatterTest extends JavascriptTestBase {
   public function testColorboxFormatter() {
     $this->setDisplayComponentSettings('video_embed_field_lazyload', [
       'autoplay' => TRUE,
+      'loop' => TRUE,
       'responsive' => TRUE,
     ]);
     $node = $this->createVideoNode('https://example.com/mock_video');
diff --git a/tests/src/Kernel/FieldOutputTest.php b/tests/src/Kernel/FieldOutputTest.php
index 5ce00a5..60b8155 100644
--- a/tests/src/Kernel/FieldOutputTest.php
+++ b/tests/src/Kernel/FieldOutputTest.php
@@ -54,6 +54,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
@@ -70,6 +71,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://www.youtube.com/embed/fdbFVWupSsw',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
               'start' => '0',
               'rel' => '0',
             ],
@@ -95,6 +97,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
@@ -111,6 +114,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://www.youtube.com/embed/fdbFVWupSsw',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
               'start' => '100',
               'rel' => '0',
             ],
@@ -136,6 +140,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
@@ -152,6 +157,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://www.youtube.com/embed/fdbFVWupSsw',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
               'start' => '0',
               'rel' => '0',
               'cc_lang_pref' => 'fr',
@@ -189,6 +195,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
@@ -205,6 +212,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://player.vimeo.com/video/80896303',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
             ],
             '#attributes' => [
               'width' => '100',
@@ -228,6 +236,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
@@ -244,6 +253,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://player.vimeo.com/video/80896303',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
             ],
             '#fragment' => 't=150s',
             '#attributes' => [
@@ -297,6 +307,7 @@ class FieldOutputTest extends KernelTestBase {
           'settings' => [
             'link_image_to' => Thumbnail::LINK_PROVIDER,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'width' => 500,
             'height' => 500,
             'responsive' => FALSE,
@@ -305,7 +316,7 @@ class FieldOutputTest extends KernelTestBase {
         [
           '#type' => 'container',
           '#attributes' => [
-            'data-video-embed-field-modal' => '<div class="video-embed-field-provider-vimeo"><iframe width="500" height="500" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1"></iframe></div>',
+            'data-video-embed-field-modal' => '<div class="video-embed-field-provider-vimeo"><iframe width="500" height="500" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1&loop=1"></iframe></div>',
             'class' => ['video-embed-field-launch-modal'],
           ],
           '#attached' => [
@@ -336,6 +347,7 @@ class FieldOutputTest extends KernelTestBase {
           'settings' => [
             'link_image_to' => Thumbnail::LINK_PROVIDER,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'width' => 900,
             'height' => 450,
             'responsive' => TRUE,
@@ -345,7 +357,7 @@ class FieldOutputTest extends KernelTestBase {
         [
           '#type' => 'container',
           '#attributes' => [
-            'data-video-embed-field-modal' => '<div class="video-embed-field-provider-vimeo video-embed-field-responsive-video video-embed-field-responsive-modal" style="width:999px;"><iframe width="900" height="450" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1"></iframe></div>',
+            'data-video-embed-field-modal' => '<div class="video-embed-field-provider-vimeo video-embed-field-responsive-video video-embed-field-responsive-modal" style="width:999px;"><iframe width="900" height="450" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1&loop=1"></iframe></div>',
             'class' => [
               'video-embed-field-launch-modal',
             ],
@@ -378,6 +390,7 @@ class FieldOutputTest extends KernelTestBase {
           'settings' => [
             'link_image_to' => Thumbnail::LINK_PROVIDER,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'width' => 900,
             'height' => 450,
             'responsive' => TRUE,
@@ -387,7 +400,7 @@ class FieldOutputTest extends KernelTestBase {
         [
           '#type' => 'container',
           '#attributes' => [
-            'data-video-embed-field-lazy' => '<div class="video-embed-field-provider-vimeo video-embed-field-responsive-video"><iframe width="900" height="450" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1"></iframe></div>',
+            'data-video-embed-field-lazy' => '<div class="video-embed-field-provider-vimeo video-embed-field-responsive-video"><iframe width="900" height="450" frameborder="0" allowfullscreen="allowfullscreen" src="https://player.vimeo.com/video/80896303?autoplay=1&loop=1"></iframe></div>',
             'class' => [
               'video-embed-field-lazy',
             ],
@@ -431,6 +444,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => TRUE,
           ],
         ],
@@ -451,6 +465,7 @@ class FieldOutputTest extends KernelTestBase {
             '#url' => 'https://player.vimeo.com/video/80896303',
             '#query' => [
               'autoplay' => '1',
+              'loop' => '1',
             ],
             '#attributes' => [
               'width' => '100',
@@ -474,6 +489,7 @@ class FieldOutputTest extends KernelTestBase {
             'width' => 100,
             'height' => 100,
             'autoplay' => TRUE,
+            'loop' => TRUE,
             'responsive' => FALSE,
           ],
         ],
diff --git a/tests/src/Kernel/VideoEmbedIFrameTest.php b/tests/src/Kernel/VideoEmbedIFrameTest.php
index 8a28d50..f2d068e 100644
--- a/tests/src/Kernel/VideoEmbedIFrameTest.php
+++ b/tests/src/Kernel/VideoEmbedIFrameTest.php
@@ -34,20 +34,20 @@ class VideoEmbedIFrameTest extends KernelTestBase {
         [
           '#type' => 'video_embed_iframe',
           '#url' => 'https://www.youtube.com/embed/fdbFVWupSsw',
-          '#query' => ['autoplay' => '1'],
+          '#query' => ['autoplay' => '1', 'playlist' => 'fdbFVWupSsw'],
         ],
-        '<iframe src="https://www.youtube.com/embed/fdbFVWupSsw?autoplay=1"></iframe>',
+        '<iframe src="https://www.youtube.com/embed/fdbFVWupSsw?autoplay=1&playlist=fdbFVWupSsw"></iframe>',
       ],
       'URL, query, attributes' => [
         [
           '#type' => 'video_embed_iframe',
           '#url' => 'https://www.youtube.com/embed/fdbFVWupSsw',
-          '#query' => ['autoplay' => '1'],
+          '#query' => ['autoplay' => '1', 'playlist' => 'fdbFVWupSsw'],
           '#attributes' => [
             'width' => '100',
           ],
         ],
-        '<iframe width="100" src="https://www.youtube.com/embed/fdbFVWupSsw?autoplay=1"></iframe>',
+        '<iframe width="100" src="https://www.youtube.com/embed/fdbFVWupSsw?autoplay=1&playlist=fdbFVWupSsw"></iframe>',
       ],
       'Query' => [
         [
diff --git a/tests/src/Unit/ProviderUrlParseTest.php b/tests/src/Unit/ProviderUrlParseTest.php
index 5790806..3d09728 100644
--- a/tests/src/Unit/ProviderUrlParseTest.php
+++ b/tests/src/Unit/ProviderUrlParseTest.php
@@ -199,7 +199,7 @@ class ProviderUrlParseTest extends UnitTestCase {
     $provider = new YouTube([
       'input' => $url,
     ], '', [], new MockHttpClient());
-    $embed = $provider->renderEmbedCode(100, 100, TRUE);
+    $embed = $provider->renderEmbedCode(100, 100, TRUE, TRUE);
     $language = isset($embed['#query']['cc_lang_pref']) ? $embed['#query']['cc_lang_pref'] : FALSE;
     $this->assertEquals($expected, $language);
   }
@@ -240,7 +240,7 @@ class ProviderUrlParseTest extends UnitTestCase {
     $provider = new YouTube([
       'input' => $url,
     ], '', [], new MockHttpClient());
-    $embed = $provider->renderEmbedCode(100, 100, TRUE);
+    $embed = $provider->renderEmbedCode(100, 100, TRUE, TRUE);
     $this->assertEquals($expected, $embed['#query']['start']);
   }
 
@@ -286,7 +286,7 @@ class ProviderUrlParseTest extends UnitTestCase {
     $this->assertEquals($exception_expected, $exception_triggered);
 
     if (!$exception_triggered) {
-      $embed = $provider->renderEmbedCode(100, 100, TRUE);
+      $embed = $provider->renderEmbedCode(100, 100, TRUE, TRUE);
       $this->assertEquals($expected, isset($embed['#fragment']) ? $embed['#fragment'] : FALSE);
     }
   }
