YouTube
YouTube channels, playlists, videos, comments, captions and Analytics reports, plus video and playlist metadata updates kept private or unlisted. No uploads or deletes.
Report on channel and video performance, keep video titles, descriptions and playlists in step with a CMS or campaign plan, and route comments into support and community flows.
Source actions
14
Destination actions
4
Data types
10
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
analytics groups
- List Analytics groupsSource
YouTube Analytics groups (custom collections of videos or playlists) owned by the channel.
analytics_groups.list
analytics reports
- Run Analytics reportSourceIncremental
YouTube Analytics query (reports.query) for the authorised channel: metrics by dimensions over a date range, one row per record.
analytics_reports.list
captions
- List caption tracksSource
Caption tracks on a video: language, name, kind and status. Track files are not downloaded.
captions.list
channels
- Get channelSource
One public channel by ID, with statistics.
channels.get - List my channelsSource
Channels owned by the authorised account, with statistics and the uploads playlist.
channels.list
comment replies
- List comment repliesSource
Replies to one top-level comment.
comment_replies.list
comment threads
- List comment threadsSource
Top-level comments (with reply counts) on one video, or on every video of a channel.
comment_threads.list
playlist items
- Add video to playlistDestinationNot retried automaticallyApproval before production
Adds a video to a playlist, optionally at a position.
playlist_items.create - List playlist itemsSource
Videos in a playlist, in playlist order. Use a channel's uploadsPlaylistId to list every upload.
playlist_items.list
playlists
- Create playlistDestinationNot retried automaticallyApproval before production
Creates a private (default) or unlisted playlist on the authorised channel.
playlists.create - Get playlistSource
One playlist by ID.
playlists.get - List playlistsSource
Playlists of the authorised channel, or of another channel by ID.
playlists.list - Update playlist detailsDestinationProvider duplicate protectionApproval before production
Updates a playlist's title and description (snippet only). Privacy is never changed.
playlists.update
video categories
- List video categoriesSource
Assignable video categories for a region, for use in videos.update.
video_categories.list
videos
- Get videoSource
One video with details, status and statistics.
videos.get - List videos by IDSource
Up to 50 videos by ID with details, status and statistics.
videos.list - Search my videosSource
Searches the authorised channel's own videos (search.list with forMine). Expensive in quota: prefer playlist_items.list on the uploads playlist for full syncs.
videos.search - Update video detailsDestinationProvider duplicate protectionApproval before production
Updates a video's title, description, tags, category and default language (snippet only). Privacy and publishing settings are never changed.
videos.update
Authentication
Google OAuth client and refresh token
Plans and access
Any Google account with a YouTube channel. You need your own Google Cloud project with the YouTube Data API v3 (and YouTube Analytics API for reports) enabled and an OAuth client. Each project has a daily quota (10,000 units by default). Apps that are not verified by Google are limited to test users, and refresh tokens for apps in Testing status expire after 7 days.
Test environment
YouTube has no sandbox. Use a test channel (a Brand Account) and keep created playlists private.
Rate limits
YouTube enforces a daily quota per Google Cloud project (default 10,000 units, reset at midnight Pacific time) plus per-minute limits. Lists cost 1 unit, captions.list 50, writes 50; search.list is the expensive call (see videos.search). Quota errors are HTTP 403 with reason quotaExceeded or rateLimitExceeded and are classified as rate limits.
Pagination
Data API lists use pageToken and nextPageToken (maxResults up to 50, comments up to 100). Analytics reports use startIndex (1-based) and maxResults.
Provider events
YouTube offers PubSubHubbub push notifications for new channel uploads; Nexra does not subscribe to them. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Uploads are not offered: videos.insert needs a binary (resumable) upload, which Nexra recipes do not perform. Caption and thumbnail uploads are excluded for the same reason.
- Never deletes videos, playlists, playlist items, comments or captions, and never sets anything to public. Video updates change the snippet only (title, description, tags, category, language) and leave privacy untouched; playlists are created private or unlisted.
- YouTube replaces the whole snippet on update: a description, tag list or default language you do not send is removed. Read the video or playlist first and send every snippet field you want to keep.
- Comment, reply, rating, moderation, subscription, live-streaming, membership and channel-branding writes are not offered.
- Caption tracks can be listed but not downloaded: captions.download returns a file and only works for videos the caller owns, and it is excluded as a binary download.
- There is no updatedSince filter. videos.search accepts publishedAfter for new uploads; playlists and comment threads are full reads.
- Content-owner (CMS partner) parameters such as onBehalfOfContentOwner are not offered.
- Quota costs follow Google's quota table as updated 2026-09-15: search.list and videos.insert now have their own bucket of 100 calls per day; earlier documentation listed search.list at 100 units per call. Both readings are noted on videos.search.
Developer reference
- Create the Google credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose YouTube, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/youtube and the Connections API.