diff --git a/src/Plugin/video_embed_field/Provider/YouTube.php b/src/Plugin/video_embed_field/Provider/YouTube.php
index 7270787..eae35b5 100644
--- a/src/Plugin/video_embed_field/Provider/YouTube.php
+++ b/src/Plugin/video_embed_field/Provider/YouTube.php
@@ -48,7 +48,16 @@ class YouTube extends ProviderPluginBase {
    * {@inheritdoc}
    */
   public function getRemoteThumbnailUrl() {
-    return sprintf('http://img.youtube.com/vi/%s/hqdefault.jpg', $this->getVideoId());
+    $url = 'http://img.youtube.com/vi/%s/%s.jpg';
+    $high_resolution = sprintf($url, $this->getVideoId(), 'maxresdefault');
+    $backup = sprintf($url, $this->getVideoId(), 'mqdefault');
+    try {
+      $this->httpClient->head($high_resolution);
+      return $high_resolution;
+    }
+    catch (\Exception $e) {
+      return $backup;
+    }
   }
 
   /**
diff --git a/src/ProviderPluginBase.php b/src/ProviderPluginBase.php
index 256afa4..a0f7b10 100644
--- a/src/ProviderPluginBase.php
+++ b/src/ProviderPluginBase.php
@@ -45,7 +45,7 @@ abstract class ProviderPluginBase implements ProviderPluginInterface, ContainerF
    *
    * @param string $configuration
    *   The configuration of the plugin.
-   * @param \GuzzleHttp\ClientInterface $http_client
+   * @param \GuzzleHttp\Client $http_client
    *    An HTTP client.
    *
    * @throws \Exception
diff --git a/tests/src/Kernel/MockHttpClient.php b/tests/src/Kernel/MockHttpClient.php
index 6c5570b..58ade66 100644
--- a/tests/src/Kernel/MockHttpClient.php
+++ b/tests/src/Kernel/MockHttpClient.php
@@ -50,4 +50,11 @@ class MockHttpClient implements ClientInterface {
     throw new \Exception(static::EXCEPTION_MESSAGE);
   }
 
+  /**
+   * Patch up a magic method call.
+   */
+  public function head($url) {
+    throw new \Exception(static::EXCEPTION_MESSAGE);
+  }
+
 }
