Product Analysis · Source connector
YouTube ELT Connector
Extract brings YouTube product analysis data into data warehouses and databases for analysis with the rest of your business data. Teams use it to measure product usage, retention, and feature adoption. Flexible scheduling keeps reporting current for routine analysis and time-sensitive decisions.
View setup guide
Use cases
What teams use this connector for
Product adoption analysis
Use YouTube data to measure product usage, feature adoption, and changes in engagement.
Cohort and retention reporting
Combine YouTube behavior data with customer records to compare cohorts and retention trends.
Experience optimization
Identify YouTube usage patterns and friction points that can guide product improvements.
Flexible reporting cadence
Refresh YouTube reporting every 15 minutes, hourly, daily, or on a custom schedule as business needs change.
Warehouse and database analysis
Use Extract to make YouTube product analysis data available in data warehouses and databases such as Snowflake, BigQuery, Redshift, and PostgreSQL for governed analysis.
Connector data
Available streams
| Stream | Description | Sync mode |
|---|---|---|
playlist_basic_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
channel_province_a3 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist_combined_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist_localization | Fields include key, playlist_id, description, title. | Incremental |
channel_basic_a3 | Fields include annotation_click_through_rate, annotation_clickable_impressions, annotation_clicks, annotation_closable_impressions. | Incremental |
playlist_traffic_source_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
video | Fields include id, content_details.caption, content_details.content_rating.acb_rating, content_details.content_rating.agcom_rating. | Full refresh |
video_localization | Fields include key, video_id, description, title. | Incremental |
channel_device_os_a3 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist_thumbnail | Fields include key, playlist_id, height, url. | Incremental |
channel_playback_location_a3 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
channel_traffic_source_a3 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
video_tag_suggestion | Fields include category_restricts, tag, video_id. | Incremental |
channel | Fields include id, branding_settings.channel.country, branding_settings.channel.default_language, branding_settings.channel.description. | Full refresh |
playlist_device_os_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist_playback_location_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
channel_demographics_a1 | Fields include age_group, channel_id, country_code, day. | Incremental |
channel_localization | Fields include channel_id, key, description, title. | Incremental |
channel_combined_a3 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist_province_a2 | Fields include average_view_duration_seconds, channel_id, country_code, day. | Incremental |
playlist | Fields include id, content_details.item_count, etag, kind. | Full refresh |
video_audio_stream | Fields include bitrate_bps, channel_count, codec, vendor. | Incremental |
channel_subtitles_a3 | Fields include channel_id, country_code, day, engaged_views. | Incremental |
channel_thumbnail | Fields include channel_id, key, height, url. | Incremental |
video_thumbnail | Fields include key, video_id, height, url. | Incremental |
video_stream | Fields include aspect_ratio, bitrate_bps, codec, frame_rate_fps. | Incremental |
channel_demographics | Fields include age_group, channel_id, gender, viewer_percentage. | Full refresh |
channel_device_os_daily | Fields include channel_id, day, device_type, engaged_views. | Incremental |
channel_geography_country | Fields include average_view_duration, channel_id, country, estimated_minutes_watched. | Full refresh |
channel_geography_province | Fields include average_view_duration, channel_id, estimated_minutes_watched, province. | Full refresh |
channel_playback_location_daily | Fields include channel_id, day, engaged_views, estimated_minutes_watched. | Incremental |
channel_time_daily | Fields include average_view_duration, channel_id, comments, day. | Incremental |
channel_traffic_source_daily | Fields include channel_id, day, engaged_views, estimated_minutes_watched. | Incremental |
playlist_device_os | Fields include channel_id, device_type, engaged_views, estimated_minutes_watched. | Full refresh |
playlist_geography_country | Fields include average_view_duration, channel_id, country, estimated_minutes_watched. | Full refresh |
playlist_playback_location | Fields include channel_id, engaged_views, estimated_minutes_watched, insight_playback_location_type. | Full refresh |
playlist_time_daily | Fields include average_view_duration, channel_id, day, estimated_minutes_watched. | Incremental |
playlist_traffic_source | Fields include channel_id, engaged_views, estimated_minutes_watched, insight_traffic_source_type. | Full refresh |
video_geography_country | Fields include average_view_duration, channel_id, country, estimated_minutes_watched. | Full refresh |
video_time_daily | Fields include average_view_duration, channel_id, day, estimated_minutes_watched. | Incremental |
video_traffic_source | Fields include channel_id, engaged_views, estimated_minutes_watched, insight_traffic_source_type. | Full refresh |
Schema
Data model at a glance
playlist_basic_a2
average_view_duration_secondsnumberchannel_idstringcountry_codestringdaystringengaged_viewsintegerlive_or_on_demandstringplaylist_idstringplaylist_saves_addedinteger
channel_province_a3
average_view_duration_secondsnumberchannel_idstringcountry_codestringdaystringengaged_viewsintegerlive_or_on_demandstringprovince_codestringred_viewsinteger
playlist_combined_a2
average_view_duration_secondsnumberchannel_idstringcountry_codestringdaystringdevice_typestringengaged_viewsintegerlive_or_on_demandstringoperating_systemstring
playlist_localization
keystringplaylist_idstringdescriptionstringtitlestring
channel_basic_a3
annotation_click_through_ratenumberannotation_clickable_impressionsintegerannotation_clicksintegerannotation_closable_impressionsintegerannotation_close_ratenumberannotation_closesintegerannotation_impressionsintegeraverage_view_duration_percentagenumber
playlist_traffic_source_a2
average_view_duration_secondsnumberchannel_idstringcountry_codestringdaystringengaged_viewsintegerlive_or_on_demandstringplaylist_idstringplaylist_saves_addedinteger
No verified relationships are available in this schema preview.
Connector pairings
Popular destinations
Commonly paired with YouTube in Extract workflows.
Why Extract
Why Extract for YouTube
- Rust-native performanceUse Rust-native data movement to refresh YouTube reporting every 15 minutes, hourly, daily, or on a custom schedule as volume grows.
- Full run transparencyInspect YouTube API activity, execution steps, and timing in Extract's run-level logs when data needs review.
- ELT + Reverse ETL in oneCombine YouTube data with customer and finance models, then send approved outputs through a separately configured Reverse ETL destination.
FAQ
Frequently asked questions
How does Extract handle incremental and full YouTube syncs?
An incremental sync processes only new or changed data since a stored checkpoint or new date partition, while a full sync processes the complete selected dataset or date range again. By avoiding repeated processing and writes for the full dataset, incremental syncs can reduce destination database updates and warehouse compute costs. Stream schemas define full refresh, partition-based extraction. Behavior varies by stream and configuration. Extract records run details so teams can verify each sync.
Can I backfill historical YouTube data with Extract?
Historical coverage for YouTube: No connector-specific backfill parameter is exposed. Initial historical coverage depends on the stream and provider. Use the setup guide and run details to confirm the available source records and selected settings.
How can teams monitor YouTube data quality and freshness?
Compare expected reporting periods and record totals in your models, then use Extract's run-level logs to inspect YouTube API activity, execution steps, and timing. This helps teams distinguish a source-data delay from a failed or incomplete run.
How often can Extract sync data from YouTube?
Extract supports schedules every 15 minutes, hourly, daily, or on a custom cadence. Teams can choose a frequency that matches routine reporting, time-sensitive monitoring, or operational activation needs.
What does the YouTube data model look like in the destination?
The Available streams table describes the datasets Extract can read from YouTube. The inline schema previews entities and fields. Only relationships verified from the exported schema are shown. Use the full schema link for more details.