def appName: String = getMandatoryString()

in common/src/main/scala/com/gu/media/youtube/YouTubeAccess.scala [16:57]


  def appName: String = getMandatoryString("name")
  def contentOwner: String = getMandatoryString("youtube.contentOwner")

  val cannotReachYoutube: Boolean = getBoolean("youtube.isDown").getOrElse(false)
  val allowedChannels: Set[String] = getStringSet("youtube.channels.allowed")
  val channelsRequiringPermission: Set[String] = getStringSet("youtube.channels.unlisted")
  val commercialChannels: Set[String] = getStringSet("youtube.channels.commercial")
  val allChannels: Set[String] = allowedChannels ++ channelsRequiringPermission ++ commercialChannels

  val trainingChannels: Set[String] = getStringSet("youtube.channels.training")

  val disallowedVideos: Set[String] = getStringSet("youtube.videos.disallowed")
  val usePartnerApi: Boolean = getString("youtube.usePartnerApi").forall(_.toBoolean)

  def monetizationPolicyId = getMandatoryString("youtube.monetizationPolicyId")
  def trackingPolicyId = getMandatoryString("youtube.trackingPolicyId")

  def minDurationForAds: Long = getString("youtube.minDurationForAds").getOrElse("30").toLong

  // Videos need to be at least 8 minutes to be eligible for midroll advertising
  // see https://support.google.com/youtube/answer/6175006?hl=en-GB
  val minDurationForMidroll: Long = 8 * 60L

  private val httpTransport = new NetHttpTransport()
  private val jacksonFactory = new JacksonFactory()

  def youtubeCredentials: GoogleCredential

  // This needs to be lazy so that the tests don't attempt to initialise the credentials
  lazy val scopedCredentials = youtubeCredentials.createScoped(YouTubeScopes.all())

  private val youTubeRequestLogger = new YouTubeRequestInitializer{
    override def initializeYouTubeRequest(request: YouTubeRequest[_]): Unit = {
      super.initializeYouTubeRequest(request)
      val markers: LogstashMarker = Markers.appendEntries(Map(
        "uri" -> request.getUriTemplate,
        "content" -> request.getHttpContent,
        "method" -> request.getRequestMethod
      ).asJava)
      log.info(markers, "YouTube Client Request")
    }
  }