Youtube · Arazzo Workflow

YouTube Upload Video and Add to Playlist

Version 1.0.0

Insert a video resource, create a playlist, and add the new video to that playlist.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub GoogleMediaSocialStreamingVideoVideosArazzoWorkflows

Provider

youtube

Workflows

upload-video-add-to-playlist
Insert a video, create a playlist, and place the video in it.
Inserts a video resource with snippet and status, creates a new playlist, and inserts a playlist item that references the new video into the new playlist.
3 steps inputs: apiKey, categoryId, playlistTitle, privacyStatus, videoDescription, videoTitle outputs: playlistId, playlistItemId, videoId
1
insertVideo
Insert the video resource with its snippet and status metadata.
2
createPlaylist
Create a new playlist that will hold the inserted video.
3
addVideoToPlaylist
Insert a playlist item that places the new video into the new playlist.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: YouTube Upload Video and Add to Playlist
  summary: Insert a video resource, create a playlist, and add the new video to that playlist.
  description: >-
    A publishing flow that wires a new upload into a curated collection. It
    inserts a video resource with its metadata, creates a new playlist, and then
    adds the newly inserted video to the new playlist. Note the YouTube videos
    upload endpoint also supports resumable media upload for the binary file;
    this workflow inserts the metadata resource only, which is the JSON portion
    the OpenAPI description models. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-3710
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-3710
      capability_name: Media Asset Management
      spec: youtube-videos-api-openapi.yml
      confidence: 0.75
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: playlistitemsApi
  url: ../openapi/youtube-playlistitems-api-openapi.yml
  type: openapi
- name: playlistsApi
  url: ../openapi/youtube-playlists-api-openapi.yml
  type: openapi
- name: videosApi
  url: ../openapi/youtube-videos-api-openapi.yml
  type: openapi
workflows:
- workflowId: upload-video-add-to-playlist
  summary: Insert a video, create a playlist, and place the video in it.
  description: >-
    Inserts a video resource with snippet and status, creates a new playlist,
    and inserts a playlist item that references the new video into the new
    playlist.
  inputs:
    type: object
    required:
    - apiKey
    - videoTitle
    - playlistTitle
    properties:
      apiKey:
        type: string
        description: The Google API key used to authorize each YouTube Data API request.
      videoTitle:
        type: string
        description: The title to set on the inserted video.
      videoDescription:
        type: string
        description: The description to set on the inserted video.
        default: ""
      categoryId:
        type: string
        description: The numeric video category id to assign to the video.
        default: "22"
      privacyStatus:
        type: string
        description: The privacy status for both the video and the playlist.
        default: private
      playlistTitle:
        type: string
        description: The title for the new playlist that will hold the video.
  steps:
  - stepId: insertVideo
    description: Insert the video resource with its snippet and status metadata.
    operationId: youtube.videos.insert
    parameters:
    - name: part
      in: query
      value: snippet,status
    - name: key
      in: query
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        snippet:
          title: $inputs.videoTitle
          description: $inputs.videoDescription
          categoryId: $inputs.categoryId
        status:
          privacyStatus: $inputs.privacyStatus
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      videoId: $response.body#/id
  - stepId: createPlaylist
    description: Create a new playlist that will hold the inserted video.
    operationId: youtube.playlists.insert
    parameters:
    - name: part
      in: query
      value: snippet,status
    - name: key
      in: query
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        snippet:
          title: $inputs.playlistTitle
        status:
          privacyStatus: $inputs.privacyStatus
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      playlistId: $response.body#/id
  - stepId: addVideoToPlaylist
    description: Insert a playlist item that places the new video into the new playlist.
    operationId: youtube.playlistItems.insert
    parameters:
    - name: part
      in: query
      value: snippet
    - name: key
      in: query
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        snippet:
          playlistId: $steps.createPlaylist.outputs.playlistId
          resourceId:
            kind: youtube#video
            videoId: $steps.insertVideo.outputs.videoId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      playlistItemId: $response.body#/id
  outputs:
    videoId: $steps.insertVideo.outputs.videoId
    playlistId: $steps.createPlaylist.outputs.playlistId
    playlistItemId: $steps.addVideoToPlaylist.outputs.playlistItemId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/youtube-upload-video-add-to-playlist-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.