private def createAsset()

in common/src/main/scala/com/gu/media/youtube/YouTubePartnerApi.scala [15:42]


  private def createAsset(title: String, videoId: String, atomId: String): Either[VideoUpdateError, Asset] = {
    MAMLogger.info(s"Creating YouTube asset for $videoId", atomId, videoId)
    val metadata = new Metadata()
      .setTitle(title)
      .setDescription(videoId)
      .setCustomId(atomId)

    val asset = new Asset()
      .setMetadata(metadata)
      .setType("web")

    try {
      val request = partnerClient.assets()
        .insert(asset)
        .setOnBehalfOfContentOwner(contentOwner)

      YoutubeRequestLogger.logRequest(YoutubeApiType.PartnerApi, YoutubeRequestType.CreateAsset)
      val createdAsset = request.execute()
      MAMLogger.info(s"YouTube asset created successfully for $videoId", atomId, videoId)
      Right(createdAsset)
    } catch {
      case e: GoogleJsonResponseException => {
        val error: GoogleJsonError = e.getDetails
        MAMLogger.error(s"Failed to create asset for $videoId. ${error.toString} ${error.getMessage}", atomId, videoId)
        Left(VideoUpdateError(s"Error in creating an asset: ${error.toString()}", Some(error.getMessage)))
      }
    }
  }