| Server IP : 46.105.57.169 / Your IP : 216.73.216.84 Web Server : Apache System : Linux webd003.cluster120.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : maitricfuz ( 93378) PHP Version : 8.4.10 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/m/a/i/maitricfuz/www/saint-martin-lg/plugins/system/nrframework/NRFramework/Helpers/ |
Upload File : |
<?php
/**
* @author Tassos Marinos <info@tassos.gr>
* @link https://www.tassos.gr
* @copyright Copyright © 2024 Tassos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
namespace Tassos\Framework\Helpers;
defined('_JEXEC') or die;
class Video
{
/**
* Returns the Video URL details.
*
* Supported platforms:
* - YouTube
* - Vimeo
*
* @param string $url
*
* @return array
*/
public static function getDetails($url)
{
$id = '';
$provider = '';
if (preg_match(self::getYouTubePattern(), $url, $matches))
{
$id = !empty($matches[1]) ? $matches[1] : $matches[2];
$provider = 'youtube';
}
else if (preg_match(self::getVimeoPattern(), $url, $matches))
{
$id = !empty($matches[1]) ? $matches[1] : null;
$provider = 'vimeo';
}
else if (preg_match(self::getFacebookVideoPattern(), $url))
{
$id = $url;
$provider = 'facebookvideo';
}
else if (preg_match(self::getDailymotionPattern(), $url, $matches))
{
$id = end($matches);
$provider = 'dailymotion';
}
return [
'id' => $id,
'provider' => $provider
];
}
/**
* Get YouTube Pattern.
*
* @return string
*/
public static function getYouTubePattern()
{
return '/^https?:\/\/(?:m\.|www\.)?youtube\.com\/(?:watch\?(?:.*&)?v=|embed\/|shorts\/|live\/)?([a-zA-Z0-9_-]{11})(?:[&?][^\s]*)?|^https?:\/\/youtu\.be\/([a-zA-Z0-9_-]{11})(?:[&?][^\s]*)?/';
}
/**
* Get Vimeo Pattern.
*
* @return string
*/
public static function getVimeoPattern()
{
return '/^https?:\/\/(?:www\.)?(?:player\.)?vimeo\.com\/(\d+)/';
}
/**
* Get Facebook Video Pattern.
*
* @return string
*/
public static function getFacebookVideoPattern()
{
return '/^(?:(?:https?:)?\\/\\/)?(?:www\\.)?facebook\\.com\\/(?:watch\\/\\?v=|[\\w\\.]+\\/videos\\/(?:[\\w\\.]+\\/)?|reel\\/)(\\d+)/';
}
/**
* Get Dailymotion Pattern.
*
* @return string
*/
public static function getDailymotionPattern()
{
return '/(?:dailymotion\.com\/(?:video|hub)\/|dai\.ly\/)([a-zA-Z0-9]+)/';
}
}