diff --git a/Classes/Controller/VimeoController.php b/Classes/Controller/VimeoController.php
index 08505db1fa6c451d125d828647714dd2e9f48d6a..8f736280eca9ccad14510423274ed79f8a39314e 100644
--- a/Classes/Controller/VimeoController.php
+++ b/Classes/Controller/VimeoController.php
@@ -31,6 +31,7 @@ use SGalinski\SgVimeo\Event\AfterFilterVideosEvent;
 use SGalinski\SgVimeo\Event\AfterMapCustomThumbnailsEvent;
 use SGalinski\SgVimeo\Event\AfterVimeoCallEvent;
 use SGalinski\SgVimeo\Event\BeforeVimeoCallEvent;
+use SGalinski\SgVimeo\Exception\RegionRestrictedException;
 use SGalinski\SgVimeo\Filter\FilterParameterBag;
 use SGalinski\SgVimeo\Service\CachedImageService;
 use SGalinski\SgVimeo\Service\VimeoService;
@@ -122,7 +123,15 @@ class VimeoController extends ActionController {
 			$this->eventDispatcher->dispatch($beforeVimeoCallEvent);
 
 			// Use the possibly modified parameters
-			$response = $vimeoService->getVimeoData($filterParameterBag);
+			try {
+				$response = $vimeoService->getVimeoData($filterParameterBag);
+			} catch (RegionRestrictedException $exception) {
+				$response = [];
+				$response['items'] = [];
+				$response['kind'] = 'channel';
+				$this->view->assign('regionRestricted', true);
+			}
+
 			if (count($response['items']) < 1) {
 				$this->view->assignMultiple([
 					'notFound' => TRUE,
diff --git a/Classes/Exception/RegionRestrictedException.php b/Classes/Exception/RegionRestrictedException.php
new file mode 100644
index 0000000000000000000000000000000000000000..700da94e4edc77ae15e28cf572e1b79d49a4d661
--- /dev/null
+++ b/Classes/Exception/RegionRestrictedException.php
@@ -0,0 +1,37 @@
+<?php
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) sgalinski Internet Services (https://www.sgalinski.de)
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+namespace SGalinski\SgVimeo\Exception;
+
+use RuntimeException;
+
+/**
+ * Class JsonImportException
+ *
+ * @package SGalinski\SgCookieOptin\Exception
+ */
+class RegionRestrictedException extends RuntimeException {
+}
diff --git a/Classes/Form/Element/ChannelWarning.php b/Classes/Form/Element/ChannelWarning.php
new file mode 100644
index 0000000000000000000000000000000000000000..8995a1d67f7bc6b970d4b2b0b0eacc6778b7e632
--- /dev/null
+++ b/Classes/Form/Element/ChannelWarning.php
@@ -0,0 +1,46 @@
+<?php
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) sgalinski Internet Services (https://www.sgalinski.de)
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+namespace SGalinski\SgVimeo\Form\Element;
+
+use TYPO3\CMS\Backend\Form\Element\AbstractFormElement;
+use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
+
+/**
+ * Licence Status Field
+ */
+class ChannelWarning extends AbstractFormElement {
+	public function render(): array {
+		$errorMessage = LocalizationUtility::translate(
+			'flexform.channelsRestricted',
+			'sg_vimeo'
+		);
+
+		$message = '<div class="alert alert-warning" role="warning">' . $errorMessage . '</div>';
+		$resultArray['html'] = $message;
+		return $resultArray;
+	}
+}
diff --git a/Classes/Form/Element/LicenceStatus.php b/Classes/Form/Element/LicenceStatus.php
index 155e4e0ebf7c610cc4f74a7c0230206a034d5388..20f30c1e086fb1c3486b0c1dcb1d1bca94360973 100644
--- a/Classes/Form/Element/LicenceStatus.php
+++ b/Classes/Form/Element/LicenceStatus.php
@@ -58,6 +58,16 @@ class LicenceStatus extends AbstractFormElement {
 		return $resultArray;
 	}
 
+	/**
+	 * Checks the license key and retrieves license check response data.
+	 *
+	 * This function verifies if the current TYPO3 version is supported,
+	 * updates the last AJAX notification check timestamp, and retrieves
+	 * the license check response data.
+	 *
+	 * @return array An array containing license check response data,
+	 *               or an empty array if the TYPO3 version is not supported.
+	 */
 	private function checkLicenceKey() {
 		if (!LicenceCheckService::isTYPO3VersionSupported()
 		) {
diff --git a/Classes/Service/VimeoService.php b/Classes/Service/VimeoService.php
index 25de78273a643acdfbb4a17865f6957a03d87644..4377bc4d980efa9bbd574365d1fcf22fb130579d 100644
--- a/Classes/Service/VimeoService.php
+++ b/Classes/Service/VimeoService.php
@@ -28,6 +28,7 @@ namespace SGalinski\SgVimeo\Service;
 
 use Psr\Log\LoggerAwareInterface;
 use Psr\Log\LoggerAwareTrait;
+use SGalinski\SgVimeo\Exception\RegionRestrictedException;
 use SGalinski\SgVimeo\Filter\FilterParameterBag;
 use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
@@ -321,6 +322,9 @@ class VimeoService implements LoggerAwareInterface {
 			$response = $this->vimeoApiClient->request(
 				self::API_CHANNEL . $channelIdentifier . self::API_VIDEO . '?' . $query
 			);
+			if ($response['status'] === 404 && ($response['body']['error'] ?? '') === 'This resource is restricted in your region.') {
+				throw new RegionRestrictedException($response['body']['error']);
+			}
 		} catch (VimeoRequestException $e) {
 			throw $e;
 		}
diff --git a/Configuration/FlexForms/flexform_sgvimeo_vimeo.xml b/Configuration/FlexForms/flexform_sgvimeo_vimeo.xml
index 73511f0c55aa465d23db8e5ea3398e56ad3849a5..cb55bd40758b115dd33800de42ad5a96d72c0f1f 100644
--- a/Configuration/FlexForms/flexform_sgvimeo_vimeo.xml
+++ b/Configuration/FlexForms/flexform_sgvimeo_vimeo.xml
@@ -28,6 +28,13 @@
 							<eval>trim,required</eval>
 						</config>
 					</settings.id>
+					<settings.channelWarning>
+						<label></label>
+						<config>
+							<type>user</type>
+							<renderType>SgVimeoChannelWarning</renderType>
+						</config>
+					</settings.channelWarning>
 					<settings.filterId>
 						<exclude>0</exclude>
 						<label>LLL:EXT:sg_vimeo/Resources/Private/Language/locallang.xlf:flexform.filterIds</label>
diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf
index b9c98269dceba8de79174be01ff2fb9308f0530d..0d2d0cf718711460f2c90c48bed53e7b5ed2859c 100644
--- a/Resources/Private/Language/de.locallang.xlf
+++ b/Resources/Private/Language/de.locallang.xlf
@@ -289,6 +289,14 @@
 				<source>No videos found</source>
 				<target>Keine Videos gefunden</target>
 			</trans-unit>
+			<trans-unit id="response.regionRestricted">
+				<source>This resource has been restricted in your region by Vimeo.</source>
+				<target>Diese Ressource wurde in Ihrer Region von Vimeo gesperrt.</target>
+			</trans-unit>
+			<trans-unit id="flexform.channelsRestricted">
+				<source>Vimeo has restricted the use of channels for visitors from the EU and UK area!</source>
+				<target>Vimeo hat die Nutzung der Kanäle für Besucher aus der EU und dem Vereinigten Königreich gesperrt!</target>
+			</trans-unit>
 			<trans-unit id="flexform.queryString" resname="flexform.queryString" approved="yes">
 				<source><![CDATA[Query String]]></source>
 				<target><![CDATA[Abfragetext]]></target>
diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf
index 523d9494a246663d34546b876eb718232cdaecc5..672892108d853a36b32197c5b610f0154c51790b 100644
--- a/Resources/Private/Language/locallang.xlf
+++ b/Resources/Private/Language/locallang.xlf
@@ -218,6 +218,12 @@
 			<trans-unit id="response.noItemsFound">
 				<source>No videos found</source>
 			</trans-unit>
+			<trans-unit id="response.regionRestricted">
+				<source>This resource has been restricted in your region by Vimeo.</source>
+			</trans-unit>
+			<trans-unit id="flexform.channelsRestricted">
+				<source>Vimeo has restricted the use of channels for visitors from the EU and UK area!</source>
+			</trans-unit>
 			<trans-unit id="flexform.queryString" resname="flexform.queryString" approved="yes">
 				<source><![CDATA[Query String]]></source>
 			</trans-unit>
diff --git a/Resources/Private/Partials/Error.html b/Resources/Private/Partials/Error.html
new file mode 100644
index 0000000000000000000000000000000000000000..8b8c262925073381f3cd63ab2cb24643bbd6f86a
--- /dev/null
+++ b/Resources/Private/Partials/Error.html
@@ -0,0 +1,3 @@
+<div style="color: red;">
+	{f:translate(key: message)}
+</div>
diff --git a/Resources/Private/Partials/NotFound.html b/Resources/Private/Partials/NotFound.html
deleted file mode 100644
index a639cf80d2814614a51448eba7594a79e0e9e1c7..0000000000000000000000000000000000000000
--- a/Resources/Private/Partials/NotFound.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div style="color: red;">
-	{f:translate(key: 'response.noItemsFound')}
-</div>
diff --git a/Resources/Private/Templates/Bootstrap5/Vimeo/Index.html b/Resources/Private/Templates/Bootstrap5/Vimeo/Index.html
index fdc6b3f19c5f627804d220c9b3bed227f083c172..d6417afd0d391206fd2a267383c502c8b0a2bdcc 100644
--- a/Resources/Private/Templates/Bootstrap5/Vimeo/Index.html
+++ b/Resources/Private/Templates/Bootstrap5/Vimeo/Index.html
@@ -36,7 +36,14 @@
 
 					<f:if condition="{notFound}">
 						<f:then>
-							<f:render partial="NotFound" arguments="{name: filter.name, label: filter.label}" />
+							<f:if condition="{regionRestricted}">
+								<f:then>
+									<f:render partial="Error" arguments="{name: filter.name, label: filter.label, message: 'response.regionRestricted'}" />
+								</f:then>
+								<f:else>
+									<f:render partial="Error" arguments="{name: filter.name, label: filter.label, message: 'response.noItemsFound'}" />
+								</f:else>
+							</f:if>
 						</f:then>
 						<f:else>
 							<f:if condition="{feedCount} < 2">
diff --git a/Resources/Private/Templates/Vimeo/Index.html b/Resources/Private/Templates/Vimeo/Index.html
index 2730de086c75f84311bf2273ed49c16c291f6783..2ed98aa6833847e192b6c0e1d68d35b4199c554f 100644
--- a/Resources/Private/Templates/Vimeo/Index.html
+++ b/Resources/Private/Templates/Vimeo/Index.html
@@ -57,7 +57,14 @@
 
 					<f:if condition="{notFound}">
 						<f:then>
-							<f:render partial="NotFound" arguments="{name: filter.name, label: filter.label}" />
+							<f:if condition="{regionRestricted}">
+								<f:then>
+									<f:render partial="Error" arguments="{name: filter.name, label: filter.label, message: 'response.regionRestricted'}" />
+								</f:then>
+								<f:else>
+									<f:render partial="Error" arguments="{name: filter.name, label: filter.label, message: 'response.noItemsFound'}" />
+								</f:else>
+							</f:if>
 						</f:then>
 						<f:else>
 
diff --git a/ext_localconf.php b/ext_localconf.php
index f7f19ab26db322999abfd7ab34c482d0cea779eb..04869ea577a64cb6a82c36af13502a51d6375420 100644
--- a/ext_localconf.php
+++ b/ext_localconf.php
@@ -1,6 +1,7 @@
 <?php
 
 use SGalinski\SgVimeo\Controller\VimeoController;
+use SGalinski\SgVimeo\Form\Element\ChannelWarning;
 use SGalinski\SgVimeo\Form\Element\LicenceStatus;
 use SGalinski\SgVimeo\Hooks\LicenceCheckHook;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
@@ -43,3 +44,10 @@ $GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][] = [
 	'priority' => 40,
 	'class' => LicenceStatus::class,
 ];
+
+// Add Channel Warning render type
+$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][] = [
+	'nodeName' => 'SgVimeoChannelWarning',
+	'priority' => 40,
+	'class' => ChannelWarning::class,
+];