Skip to Content
SourcesYouTube

YouTube

YouTube

Scan YouTube channels and videos, fetching metadata and transcripts for detection.

Category
Social Media
Source type
YOUTUBE
Produces
video

Video is data nobody searches. A demo recording that shows a live dashboard, a webinar where someone reads out an account number, a training video with a staging environment on screen — all invisible until the words and the pixels are turned into text.

What you need to connect

Either channel URLs or handles (@YourCompany), or explicit video URLs — at least one of the two. Public videos need no credentials. For age-restricted or members-only videos, supply a cookie file.

What Classifyre reads

One asset per video, whose content is a transcript:

  1. If the video has captions, they are used — in your preferred language order.
  2. If it doesn’t, the audio is transcribed by speech recognition.
  3. On-screen text is read from sampled frames, so a password visible in a screen recording is found even when nobody says it out loud.

Video metadata — title, description, channel, upload date, view count — is recorded alongside.

Metadata on every asset

Asset kind · video

FieldTypeAlways presentWhat it is
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

Lineage

Lineage

This source records no lineage. Nothing in the system it reads describes data moving from one place to another, so no FLOW edges are produced. Related items are still linked — see Lineage & Relationships for what those links mean and how they differ from lineage.

Worth knowing

  • Transcription costs time. A channel of hour-long videos is a long scan; the sampling strategy is what keeps each run bounded.
  • Unlisted videos are scannable if you have the URL — and are exactly where internal recordings tend to live.
  • A proxy can be configured when scanning at a scale that attracts rate limiting.

Configuration

Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.

Required

Without these, the source will not save.

FieldTypeRequiredWhat it doesDefault
requiredobjectYesProvide at least one of channels or video_urls (enforced at runtime).no extra properties
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.
channels[]stringNo
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.
video_urls[]stringNo

Secrets

Stored encrypted and never shown again after you save them. See Configuration & Fields.

FieldTypeRequiredWhat it doesDefault
maskedobjectNoOptional credentials. Leave empty for public videos.no extra properties
cookiesstringNoNetscape-format cookie file contents, used by yt-dlp to access age-restricted or members-only videos.

Optional

Everything you can tune. Sensible defaults apply when you leave them alone.

FieldTypeRequiredWhat it doesDefault
optionalobjectNono extra properties
connectionobjectNoNetwork controls for yt-dlp and transcript fetching.no extra properties
connection.ignore_errorsbooleanNoContinue past individual videos that fail to extract instead of aborting the run.true
connection.proxy_urlstringNoOptional HTTP/HTTPS/SOCKS proxy URL to mitigate rate-limiting when scanning at scale.
connection.request_timeout_secondsintegerNoSocket timeout for yt-dlp network operations.min 1, max 30030
transcriptobjectNoTranscript/caption fetching controls.no extra properties
transcript.languagesarrayNoPreferred caption language codes in priority order (e.g. ["en"]). Empty means accept any available language.
transcript.languages[]stringNo
Last updated on