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, comments, 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.
The Comment Threads and Comment Replies streams need the “Manage your YouTube account” permission, which Google only grants during authorization. If your YouTube source was authorized before this permission was offered, open the source, run the Google Authorization again and accept it; until then those two streams are skipped with a warning in the run log, and every other stream keeps syncing normally.
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. 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)
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, Comment Threads, Comment Replies, 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
  • 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.
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 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.
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.Fields:
One row per top-level comment on any of the channel’s videos, plus comments left on the channel itself. Read channel-wide through commentThreads.list (100 threads per request), newest first.
Requires the “Manage your YouTube account” permission on the authorization. Only comments with moderation status published are returned; the moderation queue is not extracted.
Fields:
One row per reply to a top-level comment. Child of Comment Threads: replies already included in the thread response are used directly; when a thread has more replies than the response carries, the full list is fetched with comments.list.
Requires the “Manage your YouTube account” permission on the authorization.
Fields:
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.
Fields:
Stream containing information about playlists in the YouTube channel.Fields:
Stream for managing individual items (videos) within playlists. This stream is a child of the Playlists stream.Fields:
Stream containing available YouTube video categories. By default, this retrieves categories for the US region.Fields:
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.
Daily aggregated statistics for the entire channel. This stream provides a comprehensive view of channel performance over time.Fields:
Daily statistics for each video in the channel. This stream is a child of the Videos stream, providing granular performance data per video.Fields:
Daily statistics for each playlist in the channel. This stream is a child of the Playlists stream.Fields:
Audience demographics breakdown showing the age and gender distribution of viewers.Fields:
Geographic breakdown of channel performance by country.Fields:
Device and operating system breakdown showing how viewers access your content.Fields:
Concurrent viewers of a livestream, one row per minute of the broadcast. This stream is a child of the Videos stream.Fields:
Audience retention of a livestream, including how many viewers joined and left. This stream is a child of the Videos stream.Fields:
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

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)
Analytics data may have a delay of 24-48 hours compared to real-time statistics shown in YouTube Studio.
  • Permission: commentThreads.list and comments.list are the only read endpoints of the YouTube Data API that reject the read-only permission; they need “Manage your YouTube account” (youtube.force-ssl). A source authorized before that permission was offered gets a warning in the run log and the two comment streams are skipped, without affecting the other streams. Re-run the Google Authorization on the source to enable them.
  • Coverage: comments are read channel-wide, for every video of the channel and for the channel itself, newest first. Only comments with moderation status published are included. Comments that were deleted or removed by moderation disappear from the tables on the next full sync.
  • Start Date: the API has no date filter, so the connector reads threads newest first and stops at the first page whose threads were last active before the Start Date. A thread published before the Start Date is still included when it received a reply after it.
  • Quota: every request costs one unit of the YouTube Data API daily quota. A run costs roughly one unit per 100 comment threads, plus one unit for each thread with more than five replies. On channels with a very large comment history, set a more recent Start Date to keep runs light.
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. Livestream report streams (Concurrent Viewers, Audience Retention, Traffic Sources) also sync in full table mode for a rolling window defined by your lookback configuration. Comment Threads and Comment Replies sync in full table mode so that like counts, edits and deleted comments stay current; the Start Date bounds how far back comments are read.
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)
When selecting a child stream, the parent stream will be automatically included.
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.