/**
  * @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;
 }
Example #2
0
 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);
         }
     }
 }