diff --git a/core/modules/media/src/Plugin/media/Source/OEmbed.php b/core/modules/media/src/Plugin/media/Source/OEmbed.php index a3d93ff354..e6972b5ee1 100644 --- a/core/modules/media/src/Plugin/media/Source/OEmbed.php +++ b/core/modules/media/src/Plugin/media/Source/OEmbed.php @@ -389,10 +389,17 @@ protected function getLocalThumbnailUri(Resource $resource) { } $remote_thumbnail_url = $remote_thumbnail_url->toString(); + // Use just path as PATHINFO_EXTENSION doesn't ignore query string. + // @see https://www.php.net/manual/en/function.pathinfo.php#88654 + $thumbnail_url_parts = parse_url($remote_thumbnail_url); + if (!$thumbnail_url_parts['path']) { + return NULL; + } + // Compute the local thumbnail URI, regardless of whether or not it exists. $configuration = $this->getConfiguration(); $directory = $configuration['thumbnails_directory']; - $local_thumbnail_uri = "$directory/" . Crypt::hashBase64($remote_thumbnail_url) . '.' . pathinfo($remote_thumbnail_url, PATHINFO_EXTENSION); + $local_thumbnail_uri = "$directory/" . Crypt::hashBase64($remote_thumbnail_url) . '.' . pathinfo($thumbnail_url_parts['path'], PATHINFO_EXTENSION); // If the local thumbnail already exists, return its URI. if (file_exists($local_thumbnail_uri)) {