function colis_get_info_by_name($name) { $type = 'none'; $ext = strtolower(FileSystemTool::getFileExtension($name)); $ext2Type = ['jpg' => 'image', 'jpeg' => 'image', 'gif' => 'image', 'png' => 'image', 'mp4' => 'video']; if (array_key_exists($ext, $ext2Type)) { $type = $ext2Type[$ext]; } $finalName = null; if (0 === strpos($name, 'http://') || 0 === strpos($name, 'https://')) { $finalName = $name; // handling youtube urls if ('video' === $type) { $type = 'externalVideo'; } elseif (false !== ($youTubeId = YouTubeTool::getId($finalName))) { $type = 'youtube'; } } else { // look for a file named name in a specific dir... $finalName = ITEMS_DIR_URL . '/' . $name; } switch ($type) { case 'image': return ['type' => $type, 'src' => $finalName]; break; case 'youtube': $v = YouTubeVideo::create()->setVideoId($youTubeId)->setApiKey(YOUTUBE_API_KEY); $iframe = '<iframe src="https://www.youtube.com/embed/' . $youTubeId . '" frameborder="0" allowfullscreen></iframe>'; return ['type' => $type, 'title' => $v->getTitle(), 'description' => nl2br($v->getDescription()), 'duration' => $v->getDuration(), 'thumbnail' => $v->getThumbnail(), 'iframe' => $iframe]; break; case 'externalVideo': $realPath = WEB_ROOT_DIR . $finalName; return ['type' => $type, 'src' => $finalName]; break; case 'video': $realPath = WEB_ROOT_DIR . $finalName; $duration = getVideoDuration($realPath); return ['type' => 'localVideo', 'src' => $finalName, 'duration' => $duration]; break; default: return ["type" => $type]; break; } }
function regenVideoThumbs($vid) { global $config; $err = NULL; $duration = getVideoDuration($vid); if (!$duration) { $err = 'Failed to get video duration! Converted video not found!?'; } $fc = 0; $flv = $config['FLVDO_DIR'] . '/' . $vid . '.flv'; if ($err == '') { settype($duration, 'float'); $timers = array(ceil($duration / 2), ceil($duration / 2), ceil($duration / 3), ceil($duration / 4)); @mkdir($config['TMP_DIR'] . '/thumbs/' . $vid); foreach ($timers as $timer) { if ($config['thumbs_tool'] == 'ffmpeg') { $cmd = $config['ffmpeg'] . ' -i ' . $flv . ' -f image2 -ss ' . $timer . ' -s ' . $config['img_max_width'] . 'x' . $config['img_max_height'] . ' -vframes 2 -y ' . $config['TMP_DIR'] . '/thumbs/' . $vid . '/%08d.jpg'; } else { $cmd = $config['mplayer'] . ' ' . $flv . ' -ss ' . $timer . ' -nosound -vo jpeg:outdir=' . $config['TMP_DIR'] . '/thumbs/' . $vid . ' -frames 2'; } exec($cmd); $tmb = $fc == 0 ? $vid : $fc . '_' . $vid; $fd = get_thumb_dir($vid) . '/' . $tmb . '.jpg'; $ff = $config['TMP_DIR'] . '/thumbs/' . $vid . '/00000002.jpg'; if (!file_exists($ff)) { $ff = $config['TMP_DIR'] . '/thumbs/' . $vid . '/00000001.jpg'; } if (!file_exists($ff)) { $ff = $config['BASE_DIR'] . '/images/default.gif'; } createThumb($ff, $fd, $config['img_max_width'], $config['img_max_height']); ++$fc; } delete_directory($config['TMP_DIR'] . '/thumbs/' . $vid); } return $err; }
/** Function for adding video and update status / featured. */ public function add_newvideo() { /** Variable declaration and initialization */ $match = ''; /** Assign youtube URL without id */ $youtubeVideoURL = 'http://www.youtube.com/watch?v='; /** Check video status is exists */ if (isset($this->_status) || isset($this->_featured)) { /** Call function to update video status */ $this->status_update($this->_videoId, $this->_status, $this->_featured); } /** Check whether to add / update video */ if ($this->_addnewVideo) { /** Get video name parameters from the request */ $videoName = filter_input(INPUT_POST, 'name'); /** Get video description parameters from the request */ $videoDescription = filter_input(INPUT_POST, 'description'); /** Get embed_code parameters from the request */ $embedcode = filter_input(INPUT_POST, 'embed_code'); /** Get publish parameters from the request */ $videoPublish = filter_input(INPUT_POST, 'publish'); /** Get feature parameters from the request */ $videoFeatured = filter_input(INPUT_POST, 'feature'); /** Get download parameters from the request */ $videoDownload = filter_input(INPUT_POST, 'download'); /** Get midrollads parameters from the request */ $videomidrollads = filter_input(INPUT_POST, 'midrollads'); /** Get imaad parameters from the request */ $videoimaad = filter_input(INPUT_POST, 'imaad'); /** Get postrollads parameters from the request */ $videoPostrollads = filter_input(INPUT_POST, 'postrollads'); /** Get prerollads parameters from the request */ $videoPrerollads = filter_input(INPUT_POST, 'prerollads'); /** Get googleadsense parameters from the request */ $google_adsense = filter_input(INPUT_POST, 'googleadsense'); /** Get google_adsense_value parameters from the request */ $google_adsense_value = filter_input(INPUT_POST, 'google_adsense_value'); /** * Get member id from request. * If not get current user id */ $member_id = filter_input(INPUT_POST, 'member_id'); if (empty($member_id)) { $current_user = wp_get_current_user(); $member_id = $current_user->ID; } /** Get upload video form params */ $video1 = filter_input(INPUT_POST, 'normalvideoform-value'); /** Get upload hd video form params */ $video2 = filter_input(INPUT_POST, 'hdvideoform-value'); /** Get thumb image form params */ $img1 = filter_input(INPUT_POST, 'thumbimageform-value'); /** Get preview image form params */ $img2 = filter_input(INPUT_POST, 'previewimageform-value'); /** Get streamer path option for rtmp streaming */ $islive = filter_input(INPUT_POST, 'islive-value'); /** Get is live option for rtmp streaming */ $streamname = filter_input(INPUT_POST, 'streamerpath-value'); /** Get Youtube video url from request */ $videoLinkurl = filter_input(INPUT_POST, 'youtube-value'); /** Set video duration */ $duration = '0:00'; /** Get video added method */ $video_added_method = filter_input(INPUT_POST, 'filetypevalue'); /** Get amazon bucket params */ $amazon_buckets = filter_input(INPUT_POST, 'amazon_buckets'); /** Check youtbe / youtu.be / dailymotion / viddler video url is exists */ if ($videoLinkurl != '') { /** Attach http with video url */ if (preg_match('#https?://#', $videoLinkurl) === 0) { $videoLinkurl = 'http://' . $videoLinkurl; } /** Remove spaces in video url */ $act_filepath = addslashes(trim($videoLinkurl)); } if ($videoLinkurl != '' && $act_filepath != '') { /** Set file type 1 for YouTube/ viddler /dailymotion */ $file_type = '1'; /** Check video url contains youtbe / youtu.be / dailymotion / viddler */ if (strpos($act_filepath, 'youtube') > 0 || strpos($act_filepath, 'youtu.be') > 0) { /** Get youtube video id from plugin helper */ $youtubeVideoID = getYoutubeVideoID($act_filepath); /** Get thumb URL for YouTube videos */ $act_opimage = $previewurl = 'http://img.youtube.com/vi/' . $youtubeVideoID . '/maxresdefault.jpg'; /** Get preview URL for YouTube videos */ $act_image = $img = 'http://img.youtube.com/vi/' . $youtubeVideoID . '/mqdefault.jpg'; /** Get YouTube video URL and fetch information */ $act_filepath = $youtubeVideoURL . $youtubeVideoID; $ydetails = hd_getsingleyoutubevideo($youtubeVideoID); /** Get youTube video duration */ $youtube_time = $ydetails['items'][0]->contentDetails->duration; if (!empty($youtube_time)) { /** Convert duration into h:m:s format */ $di = new DateInterval($youtube_time); $string = ''; $min = $di->i; if ($di->h > 0) { $string .= $di->h . ':'; /** Check if minutes is <= 9 while hours value is exist */ if ($min <= 9) { $min = '0' . $min; } } $duration = $string . $min . ':' . $di->s; } } else { if (strpos($act_filepath, 'dailymotion') > 0) { /** Check video URL is dailymotion * If yes, then get id from the url and get thumb, preview image */ $split_id = getDailymotionVideoID($act_filepath); $img = $act_image = $act_opimage = $previewurl = 'http://www.dailymotion.com/thumbnail/video/' . $split_id[0]; } else { if (strpos($act_filepath, 'viddler') > 0) { /** Check video url is viddler * If yes, then get id from the url and get thumb, preview image */ $imgstr = explode('/', $act_filepath); $img = $act_image = $act_opimage = $previewurl = 'http://cdn-thumbs.viddler.com/thumbnail_2_' . $imgstr[4] . '_v1.jpg'; } else { $img = ''; } } } } else { /** Get video upload form value */ $act_filepath1 = $_REQUEST['normalvideoform-value']; /** Combine upload directory path and file name */ $act_filepath1 = $this->_srt_path . $act_filepath1; /** * Check whether custom url option is used * If yes, then get video url, thumb url and remove spaces * Else, set video url, thumb url as empty */ $act_filepath = $act_optimage = ''; if (isset($_POST['custom_url'])) { $act_filepath = addslashes(trim($_POST['customurl'])); $act_optimage = addslashes(trim('thumb_' . $_POST['custom_url'])); } /** Get ffmpeg settings value */ $ffmpeg_path = $this->_settingsData->ffmpeg_path; /** Set file type as 2 for upload method */ $file_type = '2'; /** Get uploaded video duration from plugin helper using ffmpeg */ $ffmpegResult = getVideoDuration($ffmpeg_path, $act_filepath1); $duration = $ffmpegResult[0]; $matches = $ffmpegResult[1]; if (!empty($duration)) { /** Convert duration into hours:minutes format */ $duration_array = explode(':', $matches[1][0]); $sec = ceil($duration_array[0] * 3600 + $duration_array[1] * 60 + $duration_array[2]); $duration = $this->converttime($sec); } } /** If upload new image for existing video, then rename the images name */ if ($this->_videoId) { $newImagePath = $this->_srt_path . $img1; $newPreviewImagePath = $this->_srt_path . $img2; $newThumbFileName = explode('_', $img1); $newPreviewThumbFileName = explode('_', $img2); /** * Check if added method is upload */ if ($video_added_method == 2) { /** * Check thumb image is exst in the directory * If exit then rename the new thumb image with the video id */ if (file_exists($newImagePath)) { $img1 = $this->_videoId . '_' . $newThumbFileName[1]; rename($newImagePath, $this->_srt_path . $img1); } if (file_exists($newPreviewImagePath) && !empty($newPreviewThumbFileName[1])) { /** * Check preview image is exst in the directory * If exit then rename the new preview image with the video id */ $img2 = $this->_videoId . '_' . $newPreviewThumbFileName[1]; rename($newPreviewImagePath, $this->_srt_path . $img2); } } /** * Check if video added method is embed code */ if ($video_added_method == 5) { $newThumbFileName = explode('_', $img1); /** * Check image is exst in the directory * If exit then rename the new image with the video id */ if (file_exists($newImagePath)) { $img1 = $img2 = $this->_videoId . '_' . $newThumbFileName[1]; rename($newImagePath, $this->_srt_path . $img1); } } } /** * Get Amazon S3 bucket settings from database */ $player_colors = getPlayerColorArray(); /** * Check if bucket option is enabled and name is exist */ if ($player_colors['amazonbuckets_enable'] && $player_colors['amazonbuckets_name']) { /** * Get bucket name */ $s3bucket_name = $player_colors['amazonbuckets_name']; /** * Check video is exist * If exist then get bucket video for uploaded videos */ $video1 = $this->getAmazonURLOrUploadFile($video1, $s3bucket_name); /** Get bucket hd video for uploaded videos */ $video2 = $this->getAmazonURLOrUploadFile($video2, $s3bucket_name); /** Get bucket thumb image for uploaded videos */ $img1 = $this->getAmazonURLOrUploadFile($img1, $s3bucket_name); /** Get bucket preview image for uploaded videos */ $img2 = $this->getAmazonURLOrUploadFile($img2, $s3bucket_name); } /** Get customurl parameter */ $act_image = addslashes(trim($_POST['customurl'])); $act_hdpath = $act_name = $act_opimage = ''; /** If video url is not empty then get image and preview image */ if (!empty($act_filepath)) { /** Set file type 1 for YouTube, dailymotion and viddler videos */ $file_type = '1'; if (strpos($act_filepath, 'youtube') > 0 || strpos($act_filepath, 'youtu.be') > 0) { /** * Get Youtube video id * Based on that get video URL , image, preview image */ $match = getYoutubeVideoID($act_filepath); $act_filepath = $youtubeVideoURL . $match; /** Get thumbimage for youtube video */ $act_image = 'http://i3.ytimg.com/vi/' . $match . '/mqdefault.jpg'; /** Get previewimage for youtube video */ $act_opimage = 'http://i3.ytimg.com/vi/' . $match . '/maxresdefault.jpg'; /** Call fucntion to get YouTube video information */ $ydetails = hd_getsingleyoutubevideo($match); if ($ydetails) { if ($act_name == '') { /** Get youtube video title */ $act_name = addslashes($ydetails['items'][0]->snippet->title); } } else { /** Else display error for youtube videos*/ render_error(__('Could not retrieve Youtube video information', APPTHA_VGALLERY)); } } else { if (strpos($act_filepath, 'dailymotion') > 0) { /** Get dailymotion video id */ $split_id = getDailymotionVideoID($act_filepath); /** Get dailymotion video and thumb url */ $act_image = $act_opimage = 'http://www.dailymotion.com/thumbnail/video/' . $split_id[0]; } else { if (strpos($act_filepath, 'viddler') > 0) { /** Get viddler video id */ $imgstr = explode('/', $act_filepath); /** Get viddler video thumb and preview image */ $act_image = $act_opimage = 'http://cdn-thumbs.viddler.com/thumbnail_2_' . $imgstr[4] . '_v1.jpg'; } else { $imgstr = ''; } } } } else { if ($video1 != '') { $act_filepath = $video1; } if ($video2 != '') { $act_hdpath = $video2; } if ($img1 != '') { $act_image = $img1; } if ($img2 != '') { $act_opimage = $img2; } } /** Set filetype as 5 for embed method */ if (!empty($embedcode)) { $video_added_method = $file_type = '5'; } /** Get video details for URL type videos */ if ($video_added_method == 3) { $act_filepath = $_POST['customurl']; $act_image = $_POST['customimage']; $act_opimage = $_POST['custompreimage']; $act_hdpath = $_POST['customhd']; } /** Get video details for rtmp videos */ if (!empty($streamname)) { $file_type = '4'; /** Get filepath3 from params */ $thumb_image = filter_input(INPUT_POST, 'filepath3'); $act_image = $thumb_image; $act_opimage = $thumb_image; } if ($video_added_method == 4) { /** Get custom url from params */ $act_filepath = filter_input(INPUT_POST, 'customurl'); /** Get customhd from params */ $act_hdpath = filter_input(INPUT_POST, 'customhd'); /** Get customimage from params */ $act_image = filter_input(INPUT_POST, 'customimage'); /** Get custompreimage from params */ $act_opimage = filter_input(INPUT_POST, 'custompreimage'); } /** Store video form values into single array */ $videoData = array('name' => $videoName, 'description' => $videoDescription, 'embedcode' => $embedcode, 'file' => $act_filepath, 'file_type' => $video_added_method, 'member_id' => $member_id, 'duration' => $duration, 'hdfile' => $act_hdpath, 'streamer_path' => $streamname, 'islive' => $islive, 'image' => $act_image, 'opimage' => $act_opimage, 'link' => $videoLinkurl, 'featured' => $videoFeatured, 'download' => $videoDownload, 'postrollads' => $videoPostrollads, 'midrollads' => $videomidrollads, 'imaad' => $videoimaad, 'prerollads' => $videoPrerollads, 'publish' => $videoPublish, 'google_adsense' => $google_adsense, 'google_adsense_value' => $google_adsense_value, 'amazon_buckets' => $amazon_buckets); /** * Get current date and assign default value * for srt files, language and slug */ //$videoData ['post_date'] = date ( 'Y-m-d H:i:s' ); if (empty($this->_videoId)) { $videoData['ordering'] = getAllVideosCount(); $videoData['slug'] = $videoData['srtfile1'] = $videoData['srtfile2'] = $videoData['subtitle_lang1'] = $videoData['subtitle_lang2'] = ''; } /** Call funtion to perform add / update action */ $this->addUpdateVideoData($videoData); } }