public static function importYtb($ytbLink, $folder, &$errorMsg = '')
{
$ytbCode = str_replace("&feature=related", "", PhocaGalleryYoutube::getCode(strip_tags($ytbLink)));
$ytb = array();
$ytb['title'] = '';
$ytb['desc'] = '';
$ytb['filename'] = '';
$ytb['link'] = strip_tags($ytbLink);
if (!function_exists("curl_init")) {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_NOT_LOADED_CURL');
return false;
} else {
if ($ytbCode == '') {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_URL_NOT_CORRECT');
return false;
} else {
$paramsC = ComponentHelper::getParams('com_phocagallery');
$key = $paramsC->get('youtube_api_key', '');
$ssl = $paramsC->get('youtube_api_ssl', 1);
// Data
//$cUrl = curl_init("http://gdata.youtube.com/feeds/api/videos/".strip_tags($ytbCode));
$cUrl = curl_init('https://www.googleapis.com/youtube/v3/videos?id=' . strip_tags($ytbCode) . '&part=snippet&key=' . strip_tags($key));
$ssl = 0;
if ($ssl == 0) {
curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, false);
} else {
curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, true);
}
curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
$json = curl_exec($cUrl);
curl_close($cUrl);
$o = json_decode($json);
if (!empty($o) && isset($o->error->message)) {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_ERROR_IMPORTING_DATA') . '(' . strip_tags($o->error->message) . ')';
return false;
} else {
if (!empty($o) && isset($o->items[0]->snippet)) {
$oS = $o->items[0]->snippet;
if (isset($oS->title)) {
$ytb['title'] = (string) $oS->title;
}
if ($ytb['title'] == '' && isset($oS->localized->title)) {
$ytb['title'] = (string) $oS->localized->title;
}
if (isset($oS->description)) {
$ytb['desc'] = (string) $oS->description;
}
if ($ytb['desc'] == '' && isset($oS->localized->description)) {
$ytb['desc'] = (string) $oS->localized->description;
}
$img = '';
if (isset($oS->thumbnails->standard->url)) {
$cUrl = curl_init(strip_tags((string) $oS->thumbnails->standard->url));
} else {
if (isset($oS->thumbnails->default->url)) {
$cUrl = curl_init(strip_tags((string) $oS->thumbnails->default->url));
}
}
if (isset($cUrl) && $cUrl != '') {
if ($ssl == 0) {
curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, false);
} else {
curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, true);
}
curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($cUrl);
curl_close($cUrl);
}
$ytb['filename'] = $folder . strip_tags($ytbCode) . '.jpg';
if ($img != '') {
if (File::exists(JPATH_ROOT . '/images/phocagallery' . '/' . $ytb['filename'], $img)) {
//$errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_VIDEO_EXISTS');
//return false;
//Overwrite the images
}
if (!File::write(JPATH_ROOT . '/images/phocagallery' . '/' . $ytb['filename'], $img)) {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
return false;
}
}
} else {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_ERROR_IMPORTING_DATA');
return false;
}
}
// API 2
/*$xml = str_replace('<media:', '<phcmedia', $xml);
$xml = str_replace('</media:', '</phcmedia', $xml);
$data = simplexml_load_file($file);
//Title
if (isset($data->title)) {
$ytb['title'] = (string)$data->title;
}
if ($ytb['title'] == '' && isset($data->phcmediagroup->phcmediatitle)) {
$ytb['title'] = (string)$data->phcmediagroup->phcmediatitle;
}
if (isset($data->phcmediagroup->phcmediadescription)) {
$ytb['desc'] = (string)$data->phcmediagroup->phcmediadescription;
}
// Thumbnail
if (isset($data->phcmediagroup->phcmediathumbnail[0]['url'])) {
$cUrl = curl_init(strip_tags((string)$data->phcmediagroup->phcmediathumbnail[0]['url']));
curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
$img = curl_exec($cUrl);
curl_close($cUrl);
}
if ($img != '') {
$cUrl = curl_init("http://img.youtube.com/vi/".strip_tags($ytbCode)."/0.jpg");
curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
$img = curl_exec($cUrl);
curl_close($cUrl);
}
$ytb['filename'] = $folder.strip_tags($ytbCode).'.jpg';
if (File::exists(JPATH_ROOT . '/' .'images' . '/' . 'phocagallery' . '/'. $ytb['filename'], $img)) {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_ERROR_VIDEO_EXISTS');
return false;
}
if (!File::write(JPATH_ROOT . '/' .'images' . '/' . 'phocagallery' . '/'. $ytb['filename'], $img)) {
$errorMsg = Text::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
return false;
}*/
}
}
return $ytb;
}