
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.Important: The comment streams (
comment_threads and comment_replies) require the “Manage your YouTube account” permission. Sources authorized before it was offered must run the authorization again to sync comments.- 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. For comments, this bounds the work: threads are returned newest first, and pagination stops at the first page whose threads were last active before this date.
- Livestream reports lookback (days) (Optional): How many days back the livestream report streams (concurrent viewers, audience retention and traffic sources) look for broadcasts. Each broadcast in the window costs one request per stream on every sync, so lower this on channels with a long streaming history and raise it only to backfill older broadcasts. (Default: 365)
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, Comment Threads, Comment Replies
- 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
- Report Livestream Concurrent Viewers
- Report Livestream Audience Retention
- Report Livestream Traffic Sources
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 the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once 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 define some additional settings:- Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
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.Fields:
Comment Threads
Comment Threads
Comment Replies
Comment Replies
Replies to the comment threads. This stream is a child of the Comment Threads stream, yielding one row per reply.Fields:
Members
Members
Stream for accessing YouTube channel membership information.Fields:
Playlists
Playlists
Stream containing information about playlists in the YouTube channel.Fields:
Playlist Items
Playlist Items
Stream for managing individual items (videos) within playlists. This stream is a child of the Playlists stream.Fields:
Video Categories
Video Categories
Stream containing available YouTube video categories. By default, this retrieves categories for the US region.Fields:
Videos
Videos
Stream providing comprehensive information about individual videos from the channel. This stream is a child of the Channels stream.Fields:
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.Fields:
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.Fields:
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.Fields:
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.Fields:
Report Channel Stats by Country
Report Channel Stats by Country
Geographic breakdown of channel performance by country.Fields:
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.Fields:
Report Livestream Concurrent Viewers
Report Livestream Concurrent Viewers
Concurrent viewers of a livestream, one row per minute of the broadcast. This stream is a child of the Videos stream.Fields:
Report Livestream Audience Retention
Report Livestream Audience Retention
Audience retention of a livestream, including how many viewers joined and left. This stream is a child of the Videos stream.Fields:
Report Livestream Traffic Sources
Report Livestream Traffic Sources
How viewers reached a livestream, split between the broadcast and its replay. This stream is a child of the Videos stream.Fields:
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, Comment Threads, Comment Replies)
- YouTube Analytics API: For detailed reporting streams (all “Report” streams)
Comments: Quota and Scopes
Comments: Quota and Scopes
The
Comment Threads and Comment Replies streams require the https://www.googleapis.com/auth/youtube.force-ssl OAuth scope. If your connection was authorized before this scope was added, you must re-authorize it and accept the “Manage your YouTube account” permission, otherwise these streams will be skipped with a 403 error.- Quota Cost: Every API request costs 1 quota unit of the YouTube Data API. Threads are read channel-wide (not per video), so a run costs about
threads / 100units plus one request per thread with more than 5 replies. - Pagination and Limits: The
Start Dateparameter bounds the work. Threads are returned newest first, and pagination stops at the first page whose threads were last active before theStart Date. - Filters: Only comments with a
moderationStatusofpublishedare extracted (the moderation queue is not returned).
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)
- Report Livestream Concurrent Viewers → requires Videos stream (syncs data per livestream)
- Report Livestream Audience Retention → requires Videos stream (syncs data per livestream)
- Report Livestream Traffic Sources → requires Videos stream (syncs data per livestream)
- Comment Replies → requires Comment Threads stream (syncs replies per thread)
API Quirks and Pagination
API Quirks and Pagination
The YouTube API exhibits specific behaviors that the connector automatically handles:
- Circular Pagination: The Playlist Items and Comment Threads APIs can sometimes loop over previously seen page tokens (e.g., A → B → … → A). The connector detects these cycles and safely terminates pagination to prevent infinite loops and duplicate records.
- Deduplication: When extracting video IDs for channels, the connector automatically removes duplicates while preserving the correct order, guarding against content shifting across different API page tokens.
Skills for agents
Download YouTube skills file
YouTube connector documentation as plain markdown, for use in AI agent contexts.
idsnippetsnippet.channelIdsnippet.videoIdsnippet.postIdsnippet.textDisplaysnippet.textOriginalsnippet.authorDisplayNamesnippet.authorProfileImageUrlsnippet.authorChannelUrlsnippet.authorChannelIdsnippet.authorChannelId.valuesnippet.canRatesnippet.viewerRatingsnippet.likeCountsnippet.moderationStatussnippet.publishedAtsnippet.updatedAt