Ejemplo n.º 1
0
     echo " ... SKIPPED (Empty metadata).\n";
     $skipped++;
     continue;
 }
 // skip if 'name' field exists
 if (array_key_exists('name', $video['metadata'])) {
     echo " ... SKIPPED ('name' field found in metadata. metadata already mapped).\n";
     $skipped++;
     continue;
 }
 // backup data to csv file
 if (!empty($backupFile)) {
     backupFile($backupFile, $msg, $video);
 }
 // get provider
 $label = OoyalaApiWrapper::getProviderName($video['labels']);
 $label = empty($label) ? "No provider name" : OoyalaApiWrapper::formatProviderName($label);
 echo " ({$label})";
 $newMeta = mapMetadata($ingester, $video['metadata']);
 if (!array_key_exists('name', $newMeta)) {
     $newMeta['name'] = '';
 }
 echo " ... DONE \n\tNEW Metadata:\n";
 compareMetadata($video['metadata'], $newMeta);
 if (!$dryRun) {
     $resp = OoyalaAsset::updateMetadata($video['embed_code'], $newMeta);
     if (!$resp) {
         $failed++;
     }
 }
 if ($compareWithFile) {
Ejemplo n.º 2
0
 /**
  * import videos
  * @param array $params
  * @return integer $articlesCreated
  */
 public function importVideos($params = [])
 {
     wfProfileIn(__METHOD__);
     $articlesCreated = 0;
     $nextPage = '';
     do {
         // connect to provider API
         $url = OoyalaAsset::getApiUrlAssets(self::API_PAGE_SIZE, $nextPage, $params['cond']);
         print "Connecting to {$url}...\n";
         $response = OoyalaAsset::getApiContent($url);
         if ($response === false) {
             $this->logger->videoErrors("ERROR: problem downloading content.\n");
             wfProfileOut(__METHOD__);
             return 0;
         }
         $videos = empty($response['items']) ? [] : $response['items'];
         $nextPage = empty($response['next_page']) ? '' : $response['next_page'];
         $this->logger->videoFound(count($videos));
         foreach ($videos as $video) {
             if (!empty($video['time_restrictions']['start_date']) && strtotime($video['time_restrictions']['start_date']) > $params['now']) {
                 $this->logger->videoSkipped("Skipping {$video['name']} (Id:{$video['embed_code']}). Time restriction.\n");
                 continue;
             }
             $clipData = [];
             $clipData['titleName'] = trim($video['name']);
             $clipData['videoId'] = $video['embed_code'];
             $clipData['thumbnail'] = $video['preview_image_url'];
             $clipData['duration'] = $video['duration'] / 1000;
             $clipData['published'] = empty($video['metadata']['published']) ? '' : strtotime($video['metadata']['published']);
             $clipData['name'] = empty($video['metadata']['name']) ? '' : $video['metadata']['name'];
             $clipData['type'] = empty($video['metadata']['type']) ? '' : $video['metadata']['type'];
             $clipData['category'] = empty($video['metadata']['category']) ? '' : $this->getCategory($video['metadata']['category']);
             $clipData['keywords'] = empty($video['metadata']['keywords']) ? '' : $video['metadata']['keywords'];
             $clipData['description'] = trim($video['description']);
             $clipData['ageRequired'] = empty($video['metadata']['age_required']) ? 0 : $video['metadata']['age_required'];
             $clipData['ageGate'] = empty($clipData['ageRequired']) ? 0 : 1;
             $clipData['hd'] = empty($video['metadata']['hd']) ? 0 : 1;
             $clipData['industryRating'] = '';
             if (!empty($video['metadata']['industryrating'])) {
                 $clipData['industryRating'] = $this->getIndustryRating($video['metadata']['industryrating']);
             }
             $clipData['categoryName'] = OoyalaApiWrapper::getProviderName($video['labels']);
             // check for videos under '/Providers/' labels
             if (empty($clipData['categoryName'])) {
                 $this->logger->videoSkipped("Skipping {$clipData['titleName']} - {$clipData['description']}. No provider name.\n");
                 continue;
             }
             $clipData['provider'] = OoyalaApiWrapper::formatProviderName($clipData['categoryName']);
             $clipData['language'] = empty($video['metadata']['lang']) ? '' : $video['metadata']['lang'];
             $clipData['subtitle'] = empty($video['metadata']['subtitle']) ? '' : $video['metadata']['subtitle'];
             $clipData['genres'] = empty($video['metadata']['genres']) ? '' : $video['metadata']['genres'];
             $clipData['actors'] = empty($video['metadata']['actors']) ? '' : $video['metadata']['actors'];
             $clipData['startDate'] = empty($video['time_restrictions']['start_date']) ? '' : strtotime($video['time_restrictions']['start_date']);
             $clipData['expirationDate'] = empty($video['time_restrictions']['end_date']) ? '' : strtotime($video['time_restrictions']['end_date']);
             $clipData['regionalRestrictions'] = empty($video['metadata']['regional_restrictions']) ? '' : strtoupper($video['metadata']['regional_restrictions']);
             $clipData['targetCountry'] = empty($video['metadata']['targetcountry']) ? '' : $video['metadata']['targetcountry'];
             $clipData['source'] = empty($video['metadata']['source']) ? '' : $video['metadata']['source'];
             $clipData['sourceId'] = empty($video['metadata']['sourceid']) ? '' : $video['metadata']['sourceid'];
             $clipData['series'] = empty($video['metadata']['series']) ? '' : $video['metadata']['series'];
             $clipData['season'] = empty($video['metadata']['season']) ? '' : $video['metadata']['season'];
             $clipData['episode'] = empty($video['metadata']['episode']) ? '' : $video['metadata']['episode'];
             $clipData['characters'] = empty($video['metadata']['characters']) ? '' : $video['metadata']['characters'];
             $clipData['resolution'] = empty($video['metadata']['resolution']) ? '' : $video['metadata']['resolution'];
             $clipData['aspectRatio'] = empty($video['metadata']['aspectratio']) ? '' : $video['metadata']['aspectratio'];
             $clipData['distributor'] = empty($video['metadata']['distributor']) ? '' : $video['metadata']['distributor'];
             $clipData['pageCategories'] = empty($video['metadata']['pagecategories']) ? '' : $video['metadata']['pagecategories'];
             // Howdini has specific metadata which we want to map to our own
             if ($clipData['provider'] == "ooyala/howdini") {
                 $clipData["genres"] = $this->getHowdiniGenre($video['metadata']['category']);
                 $clipData["category"] = "Lifestyle";
                 $clipData["type"] = "How To";
                 $clipData["pageCategories"] = "Lifestyle, Howdini, How To";
                 // Genres need to be applied to categories VID-1787
                 if (!empty($clipData['genres'])) {
                     $clipData["pageCategories"] .= ', ' . $clipData['genres'];
                 }
                 $ooyalaAsset = new OoyalaAsset();
                 // Make sure all Howdini assets use the Howdini ad set
                 $ooyalaAsset->setAdSet($clipData["videoId"], F::app()->wg->OoyalaApiConfig['adSetHowdini']);
             }
             $articlesCreated += $this->createVideo($clipData);
         }
     } while (!empty($nextPage));
     wfProfileOut(__METHOD__);
     return $articlesCreated;
 }