arazzo: 1.0.1 info: title: YouTube My Channel Uploads summary: Resolve the authenticated user's uploads playlist, list its items, then batch-fetch video details. description: >- Surfaces a creator's own catalog. It reads the authenticated user's channel to obtain the uploads playlist id from contentDetails.relatedPlaylists, lists the items in that uploads playlist, and then fetches full video details for the first uploaded video. 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 sourceDescriptions: - name: youtubeDataApi url: ../openapi/youtube-data-api-openapi.yml type: openapi workflows: - workflowId: mine-channel-uploads summary: List the authenticated user's uploads and inspect the latest video. description: >- Reads the authenticated user's channel to find the uploads playlist, lists the playlist items, and retrieves full video details for the most recent upload. inputs: type: object required: - apiKey properties: apiKey: type: string description: The Google API key used to authorize each YouTube Data API request. maxResults: type: integer description: Maximum number of uploads to list. default: 25 steps: - stepId: getMyChannel description: >- Read the authenticated user's channel and capture the uploads playlist id from contentDetails.relatedPlaylists. operationId: youtube.channels.list parameters: - name: part in: query value: snippet,contentDetails - name: mine in: query value: true - name: key in: query value: $inputs.apiKey successCriteria: - condition: $statusCode == 200 outputs: uploadsPlaylistId: $response.body#/items/0/contentDetails/relatedPlaylists/uploads channelTitle: $response.body#/items/0/snippet/title - stepId: listUploads description: List the items in the uploads playlist and capture the first video id. operationId: youtube.playlistItems.list parameters: - name: part in: query value: snippet,contentDetails - name: playlistId in: query value: $steps.getMyChannel.outputs.uploadsPlaylistId - name: maxResults in: query value: $inputs.maxResults - name: key in: query value: $inputs.apiKey successCriteria: - condition: $statusCode == 200 outputs: items: $response.body#/items firstVideoId: $response.body#/items/0/contentDetails/videoId - stepId: getVideoDetails description: Fetch full details and statistics for the most recent uploaded video. operationId: youtube.videos.list parameters: - name: part in: query value: snippet,statistics - name: id in: query value: $steps.listUploads.outputs.firstVideoId - name: key in: query value: $inputs.apiKey successCriteria: - condition: $statusCode == 200 outputs: viewCount: $response.body#/items/0/statistics/viewCount outputs: uploadsPlaylistId: $steps.getMyChannel.outputs.uploadsPlaylistId uploads: $steps.listUploads.outputs.items latestVideoViewCount: $steps.getVideoDetails.outputs.viewCount