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")
}
}