Skip to main content
YouTube is the world’s largest video-sharing platform, enabling users to upload, view, and share video content. The YouTube Data API and Analytics API provide access to channel statistics, video metrics, playlists, member information, and detailed performance analytics, making it valuable for content creators and businesses to analyze their video performance and audience engagement.

Configuring YouTube as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the YouTube option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need to authorize Nekt to connect to YouTube. You can do this by clicking the Google Authorization button. During the authorization process, you’ll be prompted to select which YouTube account to connect:
  • Personal Account: Your main YouTube account linked directly to your Google account
  • Brand Account: A separate YouTube channel managed through your Google account (commonly used for businesses, organizations, or creators who want to keep their channel separate from their personal account)
Make sure to select the correct account that owns the channel you want to extract data from. If you manage multiple Brand Accounts, you’ll see a list of all available channels to choose from.
Once you authorize your account, add the following information:
  • Channel ID: The YouTube channel ID to sync data from. You can find it by Clicking your channel avatar in the top-right corner > Settings > Advanced Settings > Channel ID (check this link for more details).
  • Start Date (Optional): The earliest record date to sync. This helps filter historical data if you don’t need all historical records.
Click Next.

2. Select streams

Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you. The available streams include: Core Data Streams:
  • Channels, Members, Playlists, Playlist Items, Video Categories, Videos
Analytics Reports:
  • Report Channel Daily Stats
  • Report Video Daily Stats
  • Report Playlist Daily Stats
  • Report Channel Stats by Age and Gender
  • Report Channel Stats by Country
  • Report Channel Stats by OS and Device
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from YouTube and their corresponding fields:

Core Data Streams

Stream containing detailed information about YouTube channels, including statistics, branding, and content details.Key Fields:
  • id: The channel’s unique system ID
  • kind: The type of the API resource
  • etag: The ETag of the resource
  • pageInfo: Pagination information
    • totalResults: Total number of results
    • resultsPerPage: Number of results per page
  • snippet: Basic channel information
    • title: The channel’s title
    • description: The channel’s description
    • customUrl: The channel’s custom URL
    • publishedAt: When the channel was created
    • thumbnails: Channel thumbnail images in various sizes (default, medium, high)
    • defaultLanguage: The channel’s default language
    • localized: Localized channel title and description
    • country: Country associated with the channel
  • statistics: Channel performance metrics
    • viewCount: Total number of channel views
    • subscriberCount: Number of subscribers
    • hiddenSubscriberCount: Whether subscriber count is hidden
    • videoCount: Number of videos uploaded
  • contentDetails: Content-related information
    • relatedPlaylists: IDs of related playlists (likes, favorites, uploads, watchHistory, watchLater)
  • status: Channel status information
    • privacyStatus: The channel’s privacy status
    • isLinked: Whether linked to a Google+ account
    • longUploadsStatus: Whether the channel can create long uploads
    • madeForKids: Whether the channel is designated as child-directed
    • selfDeclaredMadeForKids: Self-declaration of child-directed content
  • brandingSettings: Channel branding configuration
    • channel: Channel settings (title, description, keywords, tracking, moderation settings)
    • image: Banner images in various formats (mobile, tablet, TV, desktop)
Stream for accessing YouTube channel membership information.
Note that this endpoint requires special permissions and can only be used by individual creators for their own channel-memberships-enabled YouTube channel.
Key Fields:
  • id: The unique ID of the member resource
  • kind: Identifies the API resource’s type (value: ‘youtube#member’)
  • etag: The ETag of the resource
  • snippet: Member information
    • creatorChannelId: The YouTube channel ID of the creator who owns the membership
    • memberDetails: Object containing member channel information
      • channelId: The YouTube channel ID of the member
      • channelUrl: The URL of the member’s YouTube channel
      • displayName: The display name of the member
      • profileImageUrl: The URL of the member’s profile image
    • membershipsDetails: Object describing membership details
      • highestAccessibleLevel: The ID of the highest accessible membership level
      • highestAccessibleLevelDisplayName: Display name of the highest accessible level
      • accessibleLevels: List of accessible membership level IDs
      • membershipsDuration: Total duration information
        • memberSince: When the user’s membership started
        • memberTotalDurationMonths: Total duration in months
      • membershipsDurationAtLevel: Duration at each membership level
Stream containing information about playlists in the YouTube channel.Key Fields:
  • id: The playlist’s unique system ID
  • kind: The type of the API resource
  • etag: The ETag of the resource
  • snippet: Basic playlist information
    • publishedAt: When the playlist was created
    • channelId: The ID of the channel that owns the playlist
    • title: The playlist’s title
    • description: The playlist’s description
    • thumbnails: Playlist thumbnail images in various sizes (default, medium, high, standard, maxres)
    • channelTitle: The channel title
    • defaultLanguage: The playlist’s default language
    • localized: Localized playlist title and description
  • status: Playlist status information
    • privacyStatus: The playlist’s privacy status
  • contentDetails: Content information
    • itemCount: The number of videos in the playlist
  • player: Player information
    • embedHtml: An iframe tag that embeds a player that will play the playlist
Stream for managing individual items (videos) within playlists. This stream is a child of the Playlists stream.Key Fields:
  • id: The playlist item’s unique system ID
  • playlist_id: Playlist ID from parent context
  • kind: The type of the API resource
  • etag: The ETag of the resource
  • snippet: Basic item information
    • publishedAt: When the item was added to the playlist
    • channelId: The ID of the channel that owns the playlist
    • title: The item’s title
    • description: The item’s description
    • thumbnails: Item thumbnail images in various sizes (default, medium, high, standard, maxres)
    • channelTitle: The channel title
    • playlistId: The ID of the playlist that contains the item
    • position: The order in which the item appears in the playlist
    • resourceId: Resource information
      • kind: The type of the resource
      • videoId: The ID that YouTube uses to uniquely identify the video
    • videoOwnerChannelTitle: The title of the video owner’s channel
    • videoOwnerChannelId: The ID of the video owner’s channel
  • contentDetails: Content information
    • videoId: The ID that YouTube uses to uniquely identify the video
    • startAt: When the video should start playing (in seconds)
    • endAt: When the video should stop playing (in seconds)
    • note: A user-generated note for this item
    • videoPublishedAt: When the video was published
  • status: Item status information
    • privacyStatus: The playlist item’s privacy status
Stream containing available YouTube video categories. By default, this retrieves categories for the US region.Key Fields:
  • id: The category’s unique system ID
  • kind: The type of the API resource
  • etag: The ETag of the resource
  • snippet: Category information
    • channelId: The channel ID
    • title: The category’s title
    • assignable: Whether videos can be assigned to this category
Stream providing comprehensive information about individual videos from the channel. This stream is a child of the Channels stream.Key Fields:
  • id: The video’s unique system ID
  • kind: The type of the API resource
  • etag: The ETag of the resource
  • snippet: Basic video details
    • publishedAt: When the video was published
    • channelId: ID of the channel that published the video
    • title: Video title
    • description: Description of the video
    • thumbnails: Video thumbnail images in various sizes (default, medium, high, standard, maxres)
    • channelTitle: Title of the channel
    • categoryId: Category ID for the video
    • liveBroadcastContent: Indicates if the video is a live broadcast
    • defaultLanguage: The video’s default language
    • localized: Localized versions of the video’s metadata
    • defaultAudioLanguage: Default audio language
  • contentDetails: Detailed content information
    • duration: The duration of the video (ISO 8601 format)
    • dimension: 2D or 3D video
    • definition: Video definition (hd, sd, etc)
    • caption: Indicates if captions are available
    • licensedContent: Whether the video is licensed content
    • contentRating: Ratings that apply to the video
    • projection: Projection type of the video
  • status: Status details
    • uploadStatus: Upload status
    • privacyStatus: Privacy status
    • license: License of the video
    • embeddable: If the video is embeddable
    • publicStatsViewable: If public stats are viewable
    • madeForKids: Whether the video is made for kids
  • statistics: Video performance metrics
    • viewCount: Number of views
    • likeCount: Number of likes
    • favoriteCount: Number of favorites
    • commentCount: Number of comments
  • player: Player information
    • embedHtml: Embed HTML for the video
  • topicDetails: Topic information
    • topicCategories: List of topic categories
  • localizations: Localized metadata for the video, keyed by language code
  • paidProductPlacementDetails: Paid product placement information
    • hasPaidProductPlacement: If the video has paid product placement

Analytics Reports

These streams provide detailed analytics data from the YouTube Analytics API, enabling deep insights into channel, video, and playlist performance.
Daily aggregated statistics for the entire channel. This stream provides a comprehensive view of channel performance over time.Dimensions:
  • day - Date of the metrics (YYYY-MM-DD format)
Engagement Metrics:
  • views - Number of times the channel’s videos were viewed
  • estimatedMinutesWatched - Total watch time in minutes
  • averageViewDuration - Average view duration in seconds
  • averageViewPercentage - Average percentage of video watched
  • engagedViews - Views where the user watched at least 30 seconds
Audience Metrics:
  • subscribersGained - New subscribers gained
  • subscribersLost - Subscribers lost
  • likes - Number of likes
  • dislikes - Number of dislikes
  • comments - Number of comments
  • shares - Number of shares
Playlist Metrics:
  • videosAddedToPlaylists - Videos added to playlists
  • videosRemovedFromPlaylists - Videos removed from playlists
YouTube Premium Metrics:
  • redViews - Views from YouTube Premium members
  • estimatedRedMinutesWatched - Watch time from YouTube Premium members
Card & Annotation Metrics:
  • cardImpressions - Number of card impressions
  • cardClicks - Number of card clicks
  • cardClickRate - Click-through rate for cards
  • cardTeaserImpressions - Card teaser impressions
  • cardTeaserClicks - Card teaser clicks
  • cardTeaserClickRate - Click-through rate for card teasers
  • annotationImpressions - Annotation impressions
  • annotationClickableImpressions - Clickable annotation impressions
  • annotationClicks - Annotation clicks
  • annotationClickThroughRate - Annotation click-through rate
  • annotationClosableImpressions - Closable annotation impressions
  • annotationCloses - Annotation closes
  • annotationCloseRate - Annotation close rate
Daily statistics for each video in the channel. This stream is a child of the Videos stream, providing granular performance data per video.Dimensions:
  • video_id - The ID of the video
  • video_title - The title of the video
  • day - Date of the metrics (YYYY-MM-DD format)
Metrics: Same comprehensive metrics as Report Channel Daily Stats, but broken down per video:
  • Engagement: views, estimatedMinutesWatched, averageViewDuration, averageViewPercentage, engagedViews
  • Audience: subscribersGained, subscribersLost, likes, dislikes, comments, shares
  • Playlists: videosAddedToPlaylists, videosRemovedFromPlaylists
  • Premium: redViews, estimatedRedMinutesWatched
  • Cards & Annotations: All card and annotation metrics
Daily statistics for each playlist in the channel. This stream is a child of the Playlists stream.Dimensions:
  • playlist_id - The ID of the playlist
  • playlist_title - The title of the playlist
  • day - Date of the metrics (YYYY-MM-DD format)
Metrics:
  • playlistStarts - Number of times viewers started watching the playlist
  • playlistViews - Number of video views within the playlist
  • playlistEstimatedMinutesWatched - Total watch time in the playlist
  • playlistAverageViewDuration - Average view duration within the playlist
  • playlistSaves - Number of times the playlist was saved
  • viewsPerPlaylistStart - Average number of video views per playlist start
  • averageTimeInPlaylist - Average time spent watching the playlist
Audience demographics breakdown showing the age and gender distribution of viewers.Dimensions:
  • ageGroup - Age bracket (e.g., age13-17, age18-24, age25-34, age35-44, age45-54, age55-64, age65-)
  • gender - Viewer gender (male, female)
Metrics:
  • viewerPercentage - Percentage of views from this demographic segment
Geographic breakdown of channel performance by country.Dimensions:
  • country - ISO 3166-1 alpha-2 country code
Metrics:
  • views - Number of views from this country
  • estimatedMinutesWatched - Total watch time from this country
  • engagedViews - Engaged views from this country
  • averageViewDuration - Average view duration
  • averageViewPercentage - Average percentage of video watched
  • likes - Number of likes
  • dislikes - Number of dislikes
  • comments - Number of comments
  • shares - Number of shares
  • subscribersGained - New subscribers from this country
  • subscribersLost - Subscribers lost from this country
Device and operating system breakdown showing how viewers access your content.Dimensions:
  • operatingSystem - Operating system (e.g., ANDROID, IOS, WINDOWS, LINUX, MACINTOSH)
  • deviceType - Device type (e.g., MOBILE, TABLET, DESKTOP, TV, GAME_CONSOLE)
Metrics:
  • views - Number of views from this device/OS combination
  • estimatedMinutesWatched - Total watch time
  • engagedViews - Engaged views
  • averageViewDuration - Average view duration
  • averageViewPercentage - Average percentage of video watched

Data Model

The following diagram illustrates the relationships between the data streams. Analytics report streams are linked to their parent entities.

Implementation Notes

This connector uses two YouTube APIs:
  • YouTube Data API v3: For core data (Channels, Videos, Playlists, Members, Video Categories)
  • YouTube Analytics API: For detailed reporting streams (all “Report” streams)
Analytics data may have a delay of 24-48 hours compared to real-time statistics shown in YouTube Studio.
The following streams support incremental sync using the day dimension as the replication key:
  • Report Channel Daily Stats
  • Report Video Daily Stats
  • Report Playlist Daily Stats
Demographics streams (Age & Gender, Country, OS & Device) provide aggregated totals for the channel and sync in full table mode.
Some streams are children of other streams:
  • Report Video Daily Stats → requires Videos stream (syncs stats per video)
  • Report Playlist Daily Stats → requires Playlists stream (syncs stats per playlist)
  • Playlist Items → requires Playlists stream (syncs items per playlist)
When selecting a child stream, the parent stream will be automatically included.