> For the complete documentation index, see [llms.txt](https://academy.shade.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.shade.inc/guides/automations/publish-to-youtube-or-vimeo-after-approval.md).

# Publish to YouTube or Vimeo after approval

When a cut's status changes to Approved, Shade uploads it to your YouTube channel or Vimeo account.

**Outcome:** approving a final cut in Shade uploads it to YouTube or Vimeo, with the title and description filled in from its metadata. Nobody has to export and upload it again.

**Who it's for:** content and social teams that publish finished video every week.

**Time:** about 15 minutes.

## Before you start

* Build [Your first automation](/guides/automations/your-first-automation.md) first if you haven't used the automation editor.
* Connect the account in **Settings > Integrate > Integrations**. Open **YouTube** or **Vimeo**, connect, and choose which drives can use it.
* Add a **Status** single-select field with an **Approved** option to the drive. Optionally add **Publish title** and **Publish description** text fields.

## How it works

```mermaid
flowchart LR
  T["Asset Updated: Status = Approved"] --> F["Filter: is a video"]
  F --> U["Upload to YouTube (or Vimeo)"]
  U --> M["Update Asset Metadata: save the watch link"]
```

## Steps

{% stepper %}
{% step %}

### Trigger on approval

Create an automation named `Publish approved cuts`. Choose **Asset Updated**, set **Specific metadata field** to **Status**, and **Specific value** to **Approved**. Now the automation runs only when a file changes to Approved, not on every edit.
{% endstep %}

{% step %}

### Make sure it's a video

Add a **Filter** step that continues only when the asset's **type** is video. That way, approving a thumbnail or a PDF doesn't try to publish it.
{% endstep %}

{% step %}

### Upload

For YouTube, add **Upload to YouTube**:

* **Asset:** the asset from the trigger
* **Title:** the **Publish title** field, or the asset name
* **Description:** the **Publish description** field
* **Privacy:** start with **Private** or **Unlisted** while you test
* **Publish as:** **Video** or **Short**. Shorts need to be vertical and short enough to qualify on YouTube's side.
* **Tags:** optional

For Vimeo, add **Upload to Vimeo** with a title, description, and privacy setting.
{% endstep %}

{% step %}

### Save the link back to Shade

Add a text field named **Published URL** to the drive. Then add **Update Asset Metadata** and set **Published URL** to the upload step's watch link. Your team can see what's live without leaving Shade.
{% endstep %}

{% step %}

### Save, activate, and test

Click **Save**, then **Activate**. Set a short test video to **Approved** and check your channel. Uploads run in the background, so long videos take a few minutes to finish.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
The automation runs every time a file changes to **Approved**. If someone sets a file back to In review and then approves it again, it uploads a second time. Use a separate **Published** status after upload if your team often changes statuses back and forth.
{% endhint %}

## Variations

* **Schedule instead of publish:** send approved files to Ordinal as draft posts, so your social team schedules them. Use **Upload to Ordinal**, then **Create Ordinal Draft Post**.
* **Designers next:** use **Upload to Canva** to push approved stills and video into your Canva content library.

## Related guides

* [The client review loop](/guides/review-and-client-delivery/the-client-review-loop.md)
* [Turn long videos into social clips with Opus Clip](/guides/automations/turn-long-videos-into-social-clips-with-opus-clip.md)
* [Your first automation](/guides/automations/your-first-automation.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://academy.shade.inc/guides/automations/publish-to-youtube-or-vimeo-after-approval.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
