Skip to main content

YouTube

Manage a YouTube channel: read and edit video metadata, moderate comments, curate playlists, search, and read channel analytics.

Connect a YouTube channel to run it without leaving an automation: read the channel and its videos, edit a video's title, description, tags, category or privacy, read and moderate comments (reply, hold, reject, ban or delete), list and build playlists, search YouTube, and pull views, watch time and subscriber changes from the Analytics API. Managing and measuring an existing channel - uploading video is not part of this integration.

Connect

Sign in with Google. Sign in with Google to manage a YouTube channel's videos, comments, playlists and analytics. An organization admin configures the OAuth app once under Integrations → OAuth apps; after that, connecting is a consent screen.

  • Connecting signs in as YOU, and acts on the YouTube channel that Google account owns. If the account owns several channels, YouTube uses the one selected during sign-in.

  • The connection asks for YouTube's read/write scope (youtube.force-ssl) and read-only analytics. It does NOT ask for upload access - nothing here uploads video.

  • This integration signs in through its own OAuth client rather than the shared Google one. Your organization's admin configures it under Integrations → OAuth apps.

  • Enable the YouTube Data API v3 and the YouTube Analytics API on that Cloud project, or every call fails with an 'API not enabled' error that looks like a permission problem.

Tools

ToolAccessWhat it does
Get channel (yekar.youtube.get-channel)ReadThe YouTube channel this connection signs in as: title, custom URL, lifetime views, subscriber and video counts, and the uploads playlist id that every video listing is built on. A channel that HIDES its subscriber count reports null here with subscribersHidden true - YouTube sends a zero for that case, and passing it through would state something false. Costs 1 quota unit.
List videos (yekar.youtube.list-videos)ReadA page of the channel's videos, newest first, each with its video id and watch URL. YouTube has no "my videos" endpoint - a channel's uploads ARE a playlist - so with no playlistId this resolves the uploads playlist first, which costs one extra quota unit. Private and unlisted videos of your own channel are included; use Get video for a video's stats and status. Costs about 2 quota units.
Get video (yekar.youtube.get-video)ReadOne video's title, description, tags, privacy, view/like/comment counts and - the field worth reading - its rejectionReason. A video can be 'public' and still BLOCKED by YouTube for copyright or policy, in which case nobody can watch it however public it claims to be. Works for any public video, not just your own; statistics a channel has hidden come back null rather than zero. Costs 1 quota unit.
Update video (yekar.youtube.update-video)WriteChange a video's title, description, tags, category or privacy. Only the fields you pass change: YouTube's update endpoint REPLACES the whole snippet and silently clears anything omitted, so this tool reads the video first and merges - which is what makes editing one field safe. That read costs one extra unit. Total cost about 51 quota units.
List comment threads (yekar.youtube.list-comment-threads)ReadA page of a video's comment threads: each top-level comment with its id (for replying and moderating), the author, and YOUTUBE'S count of replies. The replies array is a partial preview capped by the API, never the whole thread - trust replyCount, not its length. A video with comments turned off is reported as such rather than as an empty result. Costs 1 quota unit.
Reply to comment (yekar.youtube.reply-to-comment)WriteReply to a comment as the connected channel. The reply is public immediately and appears under the channel's name. YouTube supports only ONE level of replies - passing a reply's id attaches to the same top-level thread rather than nesting. To start a new top-level comment on a video, there is no tool here: that needs a different endpoint and reads as the channel talking to itself, which is rarely what an automation wants. Costs 50 quota units.
Moderate comment (yekar.youtube.moderate-comment)WriteSet the moderation status of comments on YOUR OWN videos - publish, hold for review, or reject. Rejection hides the comment from viewers without deleting it, so it stays reviewable in YouTube Studio; that is the reversible choice. banAuthor goes further and suppresses everything that person writes on the channel from now on, which is a decision about a person rather than a comment, so it only applies alongside rejected. YouTube answers with an empty body on success. Costs 50 quota units.
Delete comment (yekar.youtube.delete-comment)WritePermanently delete a comment. There is no undo and it disappears from YouTube Studio too - unlike Moderate comment with 'rejected', which hides it from viewers while keeping it reviewable. Prefer rejecting when the judgement might be wrong. Costs 50 quota units.
List playlists (yekar.youtube.list-playlists)ReadThe channel's own playlists, each with its id, privacy and YouTube's count of the videos in it. The uploads playlist is NOT here - it is a system playlist, and Get channel returns its id. Costs 1 quota unit.
Create playlist (yekar.youtube.create-playlist)WriteCreate a playlist on the connected channel. It defaults to PRIVATE, deliberately: a playlist created by an automation is empty at the moment it exists, and an empty public playlist on a channel is a visible mistake. Make it public once it has content. Costs 50 quota units.
Add video to playlist (yekar.youtube.add-video-to-playlist)WriteAdd a video to one of the channel's playlists. YouTube allows the SAME video to appear in a playlist more than once and does not deduplicate, so calling this twice adds it twice - check the playlist first if that matters. Returns the playlist ITEM id, which is the handle for removing it later (a video id is not). Costs 50 quota units.
Search videos (yekar.youtube.search-videos)ReadSearch YouTube for videos, channels or playlists - public content, not just your own. EXPENSIVE: one search costs 100 quota units against a default daily allowance of 10,000, so roughly 100 searches exhaust a project's whole day while ordinary reads cost 1 apiece. Use a channelId filter and a small limit rather than searching in a loop. The total YouTube reports for a search is an ESTIMATE by its own documentation, so it is labelled estimatedTotal and should not be treated as a count.
Get analytics (yekar.youtube.get-analytics)ReadChannel or per-video analytics: views, watch time, average view duration and subscriber changes over a date range, optionally broken down by day or by video. This is the YouTube ANALYTICS API, a different service from everything else here - its calls do not spend Data API quota. Data is finalised on a 2–3 day lag, so a range reaching up to today includes provisional days; the result flags that rather than letting a partial day read as a collapse in views. No totals are computed here: ask for a report with no dimensions if you want one, since summing an averaged column would be wrong.

Notes

  • Sign in with Google to connect. Tools act on the YouTube channel that Google account owns; a Google account with no channel connects successfully and can then do nothing, so make sure you sign in as the channel owner.
  • Enable BOTH the YouTube Data API v3 and the YouTube Analytics API on the Cloud project behind this connection's OAuth client. A missing one fails every call with an error that reads like a permission problem but is a checkbox.
  • Mind the QUOTA. A project gets 10,000 units a day, resetting at midnight Pacific. A read costs 1 unit, a write 50, and a SEARCH 100 - so about a hundred searches exhaust the day. Each tool's description states its cost; prefer List videos and Get video over Search videos when you already know the channel.
  • Update video changes only the fields you pass. That is this integration's doing, not YouTube's: the underlying endpoint replaces the whole record and would clear the description and tags of any video edited by title alone.
  • Moderating comments works only on comments left on YOUR OWN videos. Rejecting hides a comment while keeping it in YouTube Studio; deleting is permanent. Banning an author suppresses everything they write on the channel from then on.
  • Analytics is finalised on a 2–3 day lag, so a report ending today includes provisional days. The result says when it does - a partial day is not a drop in views.
  • Video upload is not offered here. Upload in YouTube Studio (or your own pipeline), then use this integration to set the metadata, curate playlists and moderate the comments.
  • Everything acts as the ONE channel this connection signs in as, so a reply comes from the channel rather than from whoever triggered the automation. Bind automations using it as a service connection unless every user has their own channel.