/**
  * Update remote asset (metadata only)
  * @return integer
  */
 protected function updateRemoteAsset()
 {
     if (empty($this->duplicateAsset['embed_code'])) {
         $this->logger->videoWarnings("Error when updating remote asset data: empty asset embed code.\n");
         return 0;
     }
     $this->prepareMetaDataForOoyala($generateUrl = false);
     $ooyalaAsset = new OoyalaAsset();
     $assetMeta = $ooyalaAsset->getAssetMetadata($this->metaData);
     // set reupload
     $assetMeta['reupload'] = 1;
     // remove unwanted data
     $emptyMetaKeys = array_diff(array_keys($this->duplicateAsset['metadata']), array_keys($assetMeta));
     foreach ($emptyMetaKeys as $key) {
         $assetMeta[$key] = null;
     }
     if ($this->debugMode()) {
         print "Ready to update remote asset\n";
         print "id:          {$this->metaData['videoId']}\n";
         print "name:        {$this->metaData['destinationTitle']}\n";
         print "embed code:  {$this->duplicateAsset['embed_code']}\n";
         print "asset name:  {$this->duplicateAsset['name']}\n";
         print "metadata:\n";
         foreach (explode("\n", var_export($assetMeta, TRUE)) as $line) {
             print ":: {$line}\n";
         }
     } else {
         $result = OoyalaAsset::updateMetadata($this->duplicateAsset['embed_code'], $assetMeta);
         if (!$result) {
             $this->logger->videoWarnings();
             return 0;
         }
     }
     $categories = empty($this->metaData['pageCategories']) ? [] : explode(", ", $this->metaData['pageCategories']);
     $msg = "Uploaded remote asset: {$this->metaData['destinationTitle']} (id: {$this->metaData['videoId']})\n";
     $this->logger->videoIngested($msg, $categories);
     return 1;
 }