> ## Documentation Index
> Fetch the complete documentation index at: https://squad.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# YouTube

> What agents can do in YouTube at each access level, and how to connect, limit, and disconnect YouTube.

Connect YouTube so your agents can work in your YouTube account. You choose an access level for each account, and Squad refuses any agent action outside that level.

## Access levels

Each YouTube account has an access level: **Read-only**, **Read + upload**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.

| Level                           | The connect window describes this level as                  | Actions agents can use |
| ------------------------------- | ----------------------------------------------------------- | ---------------------- |
| **Read-only**                   | "See your channel info, videos, playlists, analytics."      | 25 of 51               |
| **Read + upload** (recommended) | "Also upload new videos."                                   | 46 of 51               |
| **Full access**                 | "Full — manage videos, playlists, subscriptions, comments." | 51 of 51               |

**Read + upload** is the recommended level. The connect window selects it for you, and you can choose another level.

The YouTube sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in. It checks every agent action against the level you chose, and it refuses actions outside that level.

## What agents can do at each level

Each level opens with a short summary in plain tasks, then lists every action it adds, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open a level and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my YouTube account?" The agent can search the YouTube actions for you.</Tip>

Each action shows its name, a one-line description where the YouTube action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

<AccordionGroup>
  <Accordion title="Read-only">
    Agents can use 25 of the 51 YouTube actions at this level:

    * View videos
    * View channels
    * View threads
    * View activities
    * Manage captions
    * View categories
    * View comments
    * View events
    * View images
    * View items
    * View languages
    * View messages

    All 25 actions at this level:

    | Works on          | Action                          | What it does                                                                                                                | Slug                                      |
    | ----------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
    | **Activities**    | Get channel activities          | Gets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events. | `YOUTUBE_GET_CHANNEL_ACTIVITIES`          |
    | **Captions**      | List caption track              | Retrieves a list of caption tracks for a YouTube video.                                                                     | `YOUTUBE_LIST_CAPTION_TRACK`              |
    |                   | Load captions                   | Downloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text. | `YOUTUBE_LOAD_CAPTIONS`                   |
    | **Categories**    | List video categories           | List YouTube video categories that can be associated with videos.                                                           | `YOUTUBE_LIST_VIDEO_CATEGORIES`           |
    | **Channels**      | Get channel ID by handle        | Retrieves the YouTube Channel ID for a specific YouTube channel handle.                                                     | `YOUTUBE_GET_CHANNEL_ID_BY_HANDLE`        |
    |                   | List channels                   |                                                                                                                             | `YOUTUBE_LIST_CHANNELS`                   |
    | **Comments**      | List comments                   | List individual comments from YouTube videos.                                                                               | `YOUTUBE_LIST_COMMENTS`                   |
    | **Events**        | List super chat events          | Lists Super Chat events for a channel, showing supporter purchases during live streams.                                     | `YOUTUBE_LIST_SUPER_CHAT_EVENTS`          |
    | **Images**        | List playlist images            | Retrieve playlist images associated with a specific playlist.                                                               | `YOUTUBE_LIST_PLAYLIST_IMAGES`            |
    | **Items**         | List playlist items             | List videos in a playlist, with pagination support.                                                                         | `YOUTUBE_LIST_PLAYLIST_ITEMS`             |
    | **Languages**     | List i18n languages             | Returns a list of application languages that the YouTube website supports.                                                  | `YOUTUBE_LIST_I18N_LANGUAGES`             |
    | **Messages**      | List live chat messages         | List live chat messages for a specific chat.                                                                                | `YOUTUBE_LIST_LIVE_CHAT_MESSAGES`         |
    | **Playlists**     | List user playlists             | Retrieves playlists owned by the authenticated user, implicitly using mine=True.                                            | `YOUTUBE_LIST_USER_PLAYLISTS`             |
    | **Ratings**       | Get video rating                | Retrieves the ratings that the authorized user gave to a list of specified videos.                                          | `YOUTUBE_GET_VIDEO_RATING`                |
    | **Regions**       | List i18n regions               | Retrieve a list of content regions that the YouTube website supports.                                                       | `YOUTUBE_LIST_I18N_REGIONS`               |
    | **Reports**       | Get channel statistics          | Gets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts.                   | `YOUTUBE_GET_CHANNEL_STATISTICS`          |
    |                   | List video abuse report reasons | Retrieve a list of abuse report reasons that can be used to report abusive videos on YouTube.                               | `YOUTUBE_LIST_VIDEO_ABUSE_REPORT_REASONS` |
    | **Sections**      | List channel sections           | Retrieve channel sections from YouTube.                                                                                     | `YOUTUBE_LIST_CHANNEL_SECTIONS`           |
    | **Subscriptions** | List user subscriptions         | Retrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.  | `YOUTUBE_LIST_USER_SUBSCRIPTIONS`         |
    | **Threads**       | List comment threads            | DEPRECATED: Use YOUTUBE\_LIST\_COMMENT\_THREADS2 instead.                                                                   | `YOUTUBE_LIST_COMMENT_THREADS`            |
    |                   | List comment threads2           | Retrieve comment threads from YouTube videos or channels matching API request parameters.                                   | `YOUTUBE_LIST_COMMENT_THREADS2`           |
    | **Videos**        | Get video details batch         | Retrieves multiple YouTube video resource parts in a single batch call.                                                     | `YOUTUBE_GET_VIDEO_DETAILS_BATCH`         |
    |                   | List channel videos             | Lists videos from a specified YouTube channel.                                                                              | `YOUTUBE_LIST_CHANNEL_VIDEOS`             |
    |                   | List most popular videos        | DEPRECATED: Use YOUTUBE\_UPDATE\_VIDEO instead.                                                                             | `YOUTUBE_LIST_MOST_POPULAR_VIDEOS`        |
    | **Other actions** | Search you tube                 | Searches YouTube for videos, channels, or playlists using a query term, returning the raw API response.                     | `YOUTUBE_SEARCH_YOU_TUBE`                 |
  </Accordion>

  <Accordion title="Read + upload (recommended)">
    Agents can use 46 of the 51 YouTube actions at this level: everything in **Read-only**, plus:

    * Create, update, and manage videos
    * Update channels
    * Create and update comments
    * Create and update playlists
    * Create and update sections
    * Update captions
    * Update items
    * Send replies
    * Update thumbnails

    The 21 actions that this level adds to **Read-only**:

    | Works on       | Action                        | What it does                                                                                                                           | Slug                                    |
    | -------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
    | **Captions**   | Update caption                | Updates a YouTube caption track's metadata such as name, language, or draft status.                                                    | `YOUTUBE_UPDATE_CAPTION`                |
    | **Channels**   | Subscribe channel             | Subscribes the authenticated user to a specified YouTube channel, identified by its unique channelId which must be valid and existing. | `YOUTUBE_SUBSCRIBE_CHANNEL`             |
    |                | Unsubscribe channel           | Unsubscribe the authenticated user from a YouTube channel by deleting a subscription.                                                  | `YOUTUBE_UNSUBSCRIBE_CHANNEL`           |
    |                | Update channel                | Updates a channel's metadata including branding settings and localizations.                                                            | `YOUTUBE_UPDATE_CHANNEL`                |
    | **Comments**   | Mark comment as spam          | Mark one or more YouTube comments as spam.                                                                                             | `YOUTUBE_MARK_COMMENT_AS_SPAM`          |
    |                | Post comment                  | Post a new top-level comment on a YouTube video.                                                                                       | `YOUTUBE_POST_COMMENT`                  |
    |                | Set comment moderation status | Set the moderation status of one or more YouTube comments.                                                                             | `YOUTUBE_SET_COMMENT_MODERATION_STATUS` |
    |                | Update comment                | Modify the text of an existing YouTube comment.                                                                                        | `YOUTUBE_UPDATE_COMMENT`                |
    | **Items**      | Update playlist item          | Modify a playlist item's properties such as position or note.                                                                          | `YOUTUBE_UPDATE_PLAYLIST_ITEM`          |
    | **Playlists**  | Create playlist               | Create a new YouTube playlist on the authenticated user's channel.                                                                     | `YOUTUBE_CREATE_PLAYLIST`               |
    |                | Update playlist               | Modify an existing YouTube playlist's metadata (title, description, privacy status).                                                   | `YOUTUBE_UPDATE_PLAYLIST`               |
    | **Replies**    | Create comment reply          | Create a reply to an existing YouTube comment.                                                                                         | `YOUTUBE_CREATE_COMMENT_REPLY`          |
    | **Sections**   | Create channel section        | Create a new channel section for the authenticated user's YouTube channel.                                                             | `YOUTUBE_CREATE_CHANNEL_SECTION`        |
    |                | Update channel section        | Update an existing YouTube channel section by ID.                                                                                      | `YOUTUBE_UPDATE_CHANNEL_SECTION`        |
    | **Thumbnails** | Update thumbnail              | Sets the custom thumbnail for a YouTube video using an image from a URL.                                                               | `YOUTUBE_UPDATE_THUMBNAIL`              |
    | **Videos**     | Add video to playlist         | Add a video to a playlist by inserting a playlist item.                                                                                | `YOUTUBE_ADD_VIDEO_TO_PLAYLIST`         |
    |                | Multipart upload video        | Uploads a video to YouTube using multipart upload in a single request.                                                                 | `YOUTUBE_MULTIPART_UPLOAD_VIDEO`        |
    |                | Rate video                    | Add a like or dislike rating to a YouTube video, or remove an existing rating.                                                         | `YOUTUBE_RATE_VIDEO`                    |
    |                | Report video abuse            | Report a YouTube video for containing abusive content.                                                                                 | `YOUTUBE_REPORT_VIDEO_ABUSE`            |
    |                | Update video                  | Updates metadata for a YouTube video identified by videoId, which must exist.                                                          | `YOUTUBE_UPDATE_VIDEO`                  |
    |                | Upload video                  | Uploads a video from a local file path to a YouTube channel.                                                                           | `YOUTUBE_UPLOAD_VIDEO`                  |
  </Accordion>

  <Accordion title="Full access">
    Agents can use 51 of the 51 YouTube actions at this level: everything in **Read + upload**, plus:

    * Delete comments
    * Delete items
    * Delete playlists
    * Delete sections
    * Delete videos

    The 5 actions that this level adds to **Read + upload**:

    | Works on      | Action                 | What it does                                                         | Slug                             |
    | ------------- | ---------------------- | -------------------------------------------------------------------- | -------------------------------- |
    | **Comments**  | Delete comment         | Delete a YouTube comment owned by the authenticated user or channel. | `YOUTUBE_DELETE_COMMENT`         |
    | **Items**     | Delete playlist item   | Delete a playlist item (remove a video from a playlist).             | `YOUTUBE_DELETE_PLAYLIST_ITEM`   |
    | **Playlists** | Delete playlist        | Delete a YouTube playlist owned by the authenticated user/channel.   | `YOUTUBE_DELETE_PLAYLIST`        |
    | **Sections**  | Delete channel section | Delete a YouTube channel section.                                    | `YOUTUBE_DELETE_CHANNEL_SECTION` |
    | **Videos**    | Delete video           | Delete a YouTube video owned by the authenticated user/channel.      | `YOUTUBE_DELETE_VIDEO`           |
  </Accordion>
</AccordionGroup>

## Connect YouTube

Before you start:

* You need a YouTube account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find YouTube">
    Find **YouTube** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Choose an access level">
    Under **Default scope**, choose an access level. This level applies to every agent.
  </Step>

  <Step title="Click Connect YouTube">
    Click **Connect YouTube**. The YouTube sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to YouTube">
    Sign in to YouTube and approve the request.
  </Step>
</Steps>

Check that it works: YouTube shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Change the access level

1. Under **YOUR CONNECTIONS**, find the YouTube account.
2. Open the account menu (⋯) and click **Manage scope**.
3. Under **Default scope**, choose the new level.
4. Click **Save access**.

The change does not need a new sign-in. Agents get the new level from their next call.

## Set access for one agent

Every agent uses the account's level unless you set something else for it. You can narrow one agent to a lower level, or block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the YouTube account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose the **Default** option to follow the account's level, choose a lower level, or choose **No access**.
5. Click **Save access**.

An agent never gets more than the account's level, even if you choose a higher level for it. Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one YouTube account

Click **+ Account** on the YouTube card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* Each account has its own access level.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the YouTube side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on YouTube**.
3. Sign in to YouTube and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the YouTube account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected YouTube account becomes primary.</Warning>

## Costs

YouTube actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent reports that an action is not allowed on this account.

* Cause: the action is outside the account's access level, or outside the level you set for that agent.
* Fix: choose a higher level in **Manage scope**, or change the agent's row under **Per-agent access**.

An agent says it has no access to YouTube, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the YouTube connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in YouTube?">
    Each YouTube account has an access level: **Read-only**, **Read + upload**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one YouTube account?">
    Click **+ Account** on the YouTube card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect YouTube?">
    Open the account menu (⋯) on the YouTube account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
