
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.
- 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.
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
- 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.
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.Streams and Fields
Below you’ll find all available data streams from YouTube and their corresponding fields:Core Data Streams
Channels
Channels
Stream containing detailed information about YouTube channels, including statistics, branding, and content details.Key Fields:
id: The channel’s unique system IDkind: The type of the API resourceetag: The ETag of the resourcepageInfo: Pagination informationtotalResults: Total number of resultsresultsPerPage: Number of results per page
snippet: Basic channel informationtitle: The channel’s titledescription: The channel’s descriptioncustomUrl: The channel’s custom URLpublishedAt: When the channel was createdthumbnails: Channel thumbnail images in various sizes (default, medium, high)defaultLanguage: The channel’s default languagelocalized: Localized channel title and descriptioncountry: Country associated with the channel
statistics: Channel performance metricsviewCount: Total number of channel viewssubscriberCount: Number of subscribershiddenSubscriberCount: Whether subscriber count is hiddenvideoCount: Number of videos uploaded
contentDetails: Content-related informationrelatedPlaylists: IDs of related playlists (likes, favorites, uploads, watchHistory, watchLater)
status: Channel status informationprivacyStatus: The channel’s privacy statusisLinked: Whether linked to a Google+ accountlongUploadsStatus: Whether the channel can create long uploadsmadeForKids: Whether the channel is designated as child-directedselfDeclaredMadeForKids: Self-declaration of child-directed content
brandingSettings: Channel branding configurationchannel: Channel settings (title, description, keywords, tracking, moderation settings)image: Banner images in various formats (mobile, tablet, TV, desktop)
Members
Members
Stream for accessing YouTube channel membership information.Key Fields:
id: The unique ID of the member resourcekind: Identifies the API resource’s type (value: ‘youtube#member’)etag: The ETag of the resourcesnippet: Member informationcreatorChannelId: The YouTube channel ID of the creator who owns the membershipmemberDetails: Object containing member channel informationchannelId: The YouTube channel ID of the memberchannelUrl: The URL of the member’s YouTube channeldisplayName: The display name of the memberprofileImageUrl: The URL of the member’s profile image
membershipsDetails: Object describing membership detailshighestAccessibleLevel: The ID of the highest accessible membership levelhighestAccessibleLevelDisplayName: Display name of the highest accessible levelaccessibleLevels: List of accessible membership level IDsmembershipsDuration: Total duration informationmemberSince: When the user’s membership startedmemberTotalDurationMonths: Total duration in months
membershipsDurationAtLevel: Duration at each membership level
Playlists
Playlists
Stream containing information about playlists in the YouTube channel.Key Fields:
id: The playlist’s unique system IDkind: The type of the API resourceetag: The ETag of the resourcesnippet: Basic playlist informationpublishedAt: When the playlist was createdchannelId: The ID of the channel that owns the playlisttitle: The playlist’s titledescription: The playlist’s descriptionthumbnails: Playlist thumbnail images in various sizes (default, medium, high, standard, maxres)channelTitle: The channel titledefaultLanguage: The playlist’s default languagelocalized: Localized playlist title and description
status: Playlist status informationprivacyStatus: The playlist’s privacy status
contentDetails: Content informationitemCount: The number of videos in the playlist
player: Player informationembedHtml: An iframe tag that embeds a player that will play the playlist
Playlist Items
Playlist Items
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 IDplaylist_id: Playlist ID from parent contextkind: The type of the API resourceetag: The ETag of the resourcesnippet: Basic item informationpublishedAt: When the item was added to the playlistchannelId: The ID of the channel that owns the playlisttitle: The item’s titledescription: The item’s descriptionthumbnails: Item thumbnail images in various sizes (default, medium, high, standard, maxres)channelTitle: The channel titleplaylistId: The ID of the playlist that contains the itemposition: The order in which the item appears in the playlistresourceId: Resource informationkind: The type of the resourcevideoId: The ID that YouTube uses to uniquely identify the video
videoOwnerChannelTitle: The title of the video owner’s channelvideoOwnerChannelId: The ID of the video owner’s channel
contentDetails: Content informationvideoId: The ID that YouTube uses to uniquely identify the videostartAt: When the video should start playing (in seconds)endAt: When the video should stop playing (in seconds)note: A user-generated note for this itemvideoPublishedAt: When the video was published
status: Item status informationprivacyStatus: The playlist item’s privacy status
Video Categories
Video Categories
Stream containing available YouTube video categories. By default, this retrieves categories for the US region.Key Fields:
id: The category’s unique system IDkind: The type of the API resourceetag: The ETag of the resourcesnippet: Category informationchannelId: The channel IDtitle: The category’s titleassignable: Whether videos can be assigned to this category
Videos
Videos
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 IDkind: The type of the API resourceetag: The ETag of the resourcesnippet: Basic video detailspublishedAt: When the video was publishedchannelId: ID of the channel that published the videotitle: Video titledescription: Description of the videothumbnails: Video thumbnail images in various sizes (default, medium, high, standard, maxres)channelTitle: Title of the channelcategoryId: Category ID for the videoliveBroadcastContent: Indicates if the video is a live broadcastdefaultLanguage: The video’s default languagelocalized: Localized versions of the video’s metadatadefaultAudioLanguage: Default audio language
contentDetails: Detailed content informationduration: The duration of the video (ISO 8601 format)dimension: 2D or 3D videodefinition: Video definition (hd, sd, etc)caption: Indicates if captions are availablelicensedContent: Whether the video is licensed contentcontentRating: Ratings that apply to the videoprojection: Projection type of the video
status: Status detailsuploadStatus: Upload statusprivacyStatus: Privacy statuslicense: License of the videoembeddable: If the video is embeddablepublicStatsViewable: If public stats are viewablemadeForKids: Whether the video is made for kids
statistics: Video performance metricsviewCount: Number of viewslikeCount: Number of likesfavoriteCount: Number of favoritescommentCount: Number of comments
player: Player informationembedHtml: Embed HTML for the video
topicDetails: Topic informationtopicCategories: List of topic categories
localizations: Localized metadata for the video, keyed by language codepaidProductPlacementDetails: Paid product placement informationhasPaidProductPlacement: 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.Report Channel Daily Stats
Report Channel Daily Stats
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)
views- Number of times the channel’s videos were viewedestimatedMinutesWatched- Total watch time in minutesaverageViewDuration- Average view duration in secondsaverageViewPercentage- Average percentage of video watchedengagedViews- Views where the user watched at least 30 seconds
subscribersGained- New subscribers gainedsubscribersLost- Subscribers lostlikes- Number of likesdislikes- Number of dislikescomments- Number of commentsshares- Number of shares
videosAddedToPlaylists- Videos added to playlistsvideosRemovedFromPlaylists- Videos removed from playlists
redViews- Views from YouTube Premium membersestimatedRedMinutesWatched- Watch time from YouTube Premium members
cardImpressions- Number of card impressionscardClicks- Number of card clickscardClickRate- Click-through rate for cardscardTeaserImpressions- Card teaser impressionscardTeaserClicks- Card teaser clickscardTeaserClickRate- Click-through rate for card teasersannotationImpressions- Annotation impressionsannotationClickableImpressions- Clickable annotation impressionsannotationClicks- Annotation clicksannotationClickThroughRate- Annotation click-through rateannotationClosableImpressions- Closable annotation impressionsannotationCloses- Annotation closesannotationCloseRate- Annotation close rate
Report Video Daily Stats
Report Video Daily Stats
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 videovideo_title- The title of the videoday- Date of the metrics (YYYY-MM-DD format)
- 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
Report Playlist Daily Stats
Report Playlist Daily Stats
Daily statistics for each playlist in the channel. This stream is a child of the Playlists stream.Dimensions:
playlist_id- The ID of the playlistplaylist_title- The title of the playlistday- Date of the metrics (YYYY-MM-DD format)
playlistStarts- Number of times viewers started watching the playlistplaylistViews- Number of video views within the playlistplaylistEstimatedMinutesWatched- Total watch time in the playlistplaylistAverageViewDuration- Average view duration within the playlistplaylistSaves- Number of times the playlist was savedviewsPerPlaylistStart- Average number of video views per playlist startaverageTimeInPlaylist- Average time spent watching the playlist
Report Channel Stats by Age and Gender
Report Channel Stats by Age and Gender
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)
viewerPercentage- Percentage of views from this demographic segment
Report Channel Stats by Country
Report Channel Stats by Country
Geographic breakdown of channel performance by country.Dimensions:
country- ISO 3166-1 alpha-2 country code
views- Number of views from this countryestimatedMinutesWatched- Total watch time from this countryengagedViews- Engaged views from this countryaverageViewDuration- Average view durationaverageViewPercentage- Average percentage of video watchedlikes- Number of likesdislikes- Number of dislikescomments- Number of commentsshares- Number of sharessubscribersGained- New subscribers from this countrysubscribersLost- Subscribers lost from this country
Report Channel Stats by OS and Device
Report Channel Stats by OS and Device
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)
views- Number of views from this device/OS combinationestimatedMinutesWatched- Total watch timeengagedViews- Engaged viewsaverageViewDuration- Average view durationaverageViewPercentage- 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
Analytics API vs Data API
Analytics API vs Data API
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)
Incremental Sync
Incremental Sync
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
Parent-Child Relationships
Parent-Child Relationships
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)