Skip to Content
SourcesYouTube

YouTube

Required
Fields required for a valid configuration.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYesProvide at least one of channels or video_urls (enforced at runtime).no extra properties
required.channelsarrayNoChannel URLs or handles to list videos from (e.g. https://www.youtube.com/@OpenAI or @OpenAI). At least one of channels/video_urls is required.
required.channels[]stringNo
required.video_urlsarrayNoExplicit video watch URLs to scan (e.g. https://www.youtube.com/watch?v=dQw4w9WgXcQ). At least one of channels/video_urls is required.
required.video_urls[]stringNo
Masked
Sensitive fields under(secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectNoOptional credentials. Leave empty for public videos.no extra properties
masked.cookiesstringNoNetscape-format cookie file contents, used by yt-dlp to access age-restricted or members-only videos.
Optional
Optional configuration fields.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNoNetwork controls for yt-dlp and transcript fetching.no extra properties
optional.connection.ignore_errorsbooleanNoContinue past individual videos that fail to extract instead of aborting the run.true
optional.connection.proxy_urlstringNoOptional HTTP/HTTPS/SOCKS proxy URL to mitigate rate-limiting when scanning at scale.
optional.connection.request_timeout_secondsintegerNoSocket timeout for yt-dlp network operations.30min 1, max 300
optional.transcriptobjectNoTranscript/caption fetching controls.no extra properties
optional.transcript.languagesarrayNoPreferred caption language codes in priority order (e.g. ["en"]). Empty means accept any available language.
optional.transcript.languages[]stringNo
optional.transcript.skip_transcriptbooleanNoWhen true, skip transcript fetching entirely (metadata-only assets, no detector content).false
Extracted Metadata

Video

FieldTypeRequiredDescription
video_idstringYesYouTube video id (11-char watch id)
titlestringYesVideo title
channel_idstringNoChannel id the video belongs to
channel_namestringNoChannel/uploader display name
duration_secondsintegerNoVideo duration in seconds
view_countintegerNoView count at extraction time
like_countintegerNoLike count at extraction time
upload_datestringNoUpload date (YYYYMMDD as reported by yt-dlp)
transcript_availablebooleanNoWhether a transcript/caption track was fetched
transcript_sourcestringNoOrigin of the transcript text: 'captions' (caption track) or 'whisper' (audio transcribed with faster-whisper)
transcript_languagestringNoLanguage code of the fetched transcript
transcript_is_generatedbooleanNoWhether the transcript is auto-generated (vs creator-uploaded)
caption_tracksstring[]NoAvailable caption language codes
Examples
Brand channels transcript scan
Scan the latest videos from brand channels and run PII/secrets detection over English transcripts

Config Payload

{
  "type": "YOUTUBE",
  "required": {
    "channels": [
      "https://www.youtube.com/@OpenAI",
      "@AnthropicAI"
    ]
  },
  "optional": {
    "transcript": {
      "languages": [
        "en"
      ]
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 25
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    },
    {
      "type": "SECRETS",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "weekday_morning",
  "cron": "30 7 * * 1-5",
  "timezone": "UTC"
}
Specific videos audit
Scan an explicit list of video URLs and process all of their transcripts

Config Payload

{
  "type": "YOUTUBE",
  "required": {
    "video_urls": [
      "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "https://www.youtube.com/watch?v=aqz-KE-bpKQ"
    ]
  },
  "sampling": {
    "strategy": "AUTOMATIC"
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}
Random sampling via proxy
Randomly sample videos from a channel through a proxy to mitigate rate limiting

Config Payload

{
  "type": "YOUTUBE",
  "required": {
    "channels": [
      "https://www.youtube.com/@GoogleDevelopers/videos"
    ]
  },
  "optional": {
    "connection": {
      "proxy_url": "http://proxy.internal:8080",
      "request_timeout_seconds": 60
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 50
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}