/** * @param $youtubeUrl * @param $bitrate * @return bool|mixed|MyCurlFile */ public function downloadMp3ByDirpy($youtubeUrl, $bitrate) { $this->log("------ Download MP3 by Dirpy.Com"); $metadata = $this->getDirpyMp3Metadata($youtubeUrl, $bitrate); if ($metadata == null) { $this->log("ERROR: Not get meta data for link: " . $youtubeUrl); Yii::log("ERROR: Not get meta data for link: " . $youtubeUrl, CLogger::LEVEL_ERROR, "ProcessMp3"); return false; } $url = $this->renderMP3DownloadLinkForDirpy($youtubeUrl, $metadata); $url = $this->baseDirpyURL . "/download" . $url . "&downloadToken=" . $this->getDownloadToken(); // $this->log("---- URL DOWNLOAD ${url}"); $fileName = CVietnameseTools::makeCodeName($metadata['filename']) . '.mp3'; $this->log("------ Downloading MP3"); $response = $this->myCurl->download($url, $fileName); if ($response != false) { $folderSave = '/tmp/'; $file = $folderSave . $fileName; $mp3File = new MP3File($file); $mp3Second = $mp3File->getDurationEstimate(); $metadataTimeSecond = $this->getSecondOfTime($metadata['end_time']); $this->log("------ Checking duration mp3 file downloaded " . $mp3Second . " and compare with meta time " . $metadataTimeSecond); if ($mp3Second >= $metadataTimeSecond) { return $response; } return false; } return $response; }
public function downloadDirpyMp3($youtubeUrl, $bitrate) { $this->log("-- Download MP3 by Dirpy.Com"); $metadata = $this->getDirpyMp3Metadata($youtubeUrl, $bitrate); if ($metadata == null) { Yii::log("Not get meta data for link: " . $youtubeUrl, CLogger::LEVEL_ERROR, "ProcessMp3"); return false; } // $url = $this->generateDirpyMp3Link($youtubeUrl, $metadata); $url = $this->renderMP3DownloadLinkForDirpy($youtubeUrl, $metadata); $downloadToken = $this->getDownloadToken(); $url = $this->baseMp3URL . "/download" . $url . "&downloadToken=" . $downloadToken; // $this->log("---- URL DOWNLOAD ${url}"); $fileName = CVietnameseTools::makeCodeName($metadata['filename']) . '.mp3'; $response = $this->ch->download($url, $fileName); return $response; }
public static function makeMp3Name($str) { $str = CVietnameseTools::removeSigns($str); $str = strtolower($str); $pattern = implode(array_merge(CVietnameseTools::$_en_lower)); $pattern = "/[^\\s{$pattern}1234567890]/"; //return $pattern; $str = preg_replace($pattern, '', $str); //return implode('_',explode(' ', CVietnameseTools::proper($str))); $result = str_replace(" ", "-", CVietnameseTools::proper($str)); return $result; }
public function actionTestEpisode() { /** * @var PmVideos[] $videos */ $cats = array_keys(Yii::app()->params['prefixmp3']); // $videos = PmVideos::model()->notaudio()->sourceyt()->active()->belongcategories($cats)->findAll(); $criteria = new CDbCriteria(); $criteria->addInCondition('uniq_id', array('836452c77')); $videos = PmVideos::model()->findAll($criteria); $this->log("Number video not have audio: " . count($videos)); foreach ($videos as $video) { $this->log('File name: ' . CVietnameseTools::makeCodeName($video->video_title) . '_' . CVietnameseTools::makeName($video->artist) . '_wWw.PhatAm.com' . ' - ' . $video->uniq_id); $episodes = $video->pmEpisodes; $this->log("Searching Episode"); $this->log($episodes); $this->log("-- Number of EPISODE: " . count($episodes)); if (count($episodes) > 0) { // continue; $this->log("-- Process Video with " . count($episodes) . " EPISODE"); $audioInfo = $this->processTestEpisode($video, $episodes); $this->log("-- Audio Info "); $this->log($audioInfo); } } }