Youtube Playlists API

Operations related to YouTube playlist resources

Operations 6

GET /playlists Youtube List Playlists #
POST /playlists Youtube Create a Playlist #
PUT /playlists Youtube Update a Playlist #
DELETE /playlists Youtube Delete a Playlist #
PUT /playlists/{playlistId} Youtube Update Playlist #
DELETE /playlists/{playlistId} Youtube Delete Playlist #

Documentation

📖
Documentation
https://developers.google.com/youtube/v3/docs/activities/list
📖
GettingStarted
https://developers.google.com/youtube/v3/getting-started
📖
Authentication
https://developers.google.com/youtube/v3/guides/authentication
📖
Documentation
https://developers.google.com/youtube/v3/docs/channels/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/comments/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/commentThreads/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/playlists/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/playlistItems/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/search/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/subscriptions/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/videos/list
📖
Documentation
https://developers.google.com/youtube/v3/docs/captions
📖
Documentation
https://developers.google.com/youtube/v3/docs/videoCategories
📖
Documentation
https://developers.google.com/youtube/v3/docs/i18nLanguages
📖
Documentation
https://developers.google.com/youtube/v3/docs/i18nRegions
📖
Documentation
https://developers.google.com/youtube/analytics
📖
GettingStarted
https://developers.google.com/youtube/reporting/guides/authorization
📖
APIReference
https://developers.google.com/youtube/analytics/reference
📖
Authentication
https://developers.google.com/youtube/reporting/guides/authorization
📖
Documentation
https://developers.google.com/youtube/reporting
📖
APIReference
https://developers.google.com/youtube/reporting/v1/reference/rest
📖
Documentation
https://developers.google.com/youtube/reporting/v1/reports
📖
GettingStarted
https://developers.google.com/youtube/v3/live/getting-started
📖
Documentation
https://developers.google.com/youtube/v3/live/docs
📖
APIReference
https://developers.google.com/youtube/v3/live/docs

Specifications

Code Examples

Schemas & Data

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/youtube-playlists-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

youtube-playlists-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Youtube Playlists API
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Playlists across 2 of this provider''s published API definitions: youtube-data-api-openapi.yml, youtube-data-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://www.googleapis.com/youtube/v3
  description: YouTube Data API v3 base server
tags:
- name: Playlists
  description: Operations related to YouTube playlist resources
paths:
  /playlists:
    get:
      operationId: youtube.playlists.list
      summary: Youtube List Playlists
      description: Returns a collection of playlists that match the API request parameters. You can retrieve playlists by ID, by channel, or for the authenticated user.
      tags:
      - Playlists
      parameters:
      - $ref: '#/components/parameters/part'
      - name: id
        in: query
        description: Comma-separated list of YouTube playlist IDs for the resources being retrieved.
        schema:
          type: string
        example: abc123def456
      - name: channelId
        in: query
        description: Indicates that the API response should only contain resources created by the channel.
        schema:
          type: string
        example: '500123'
      - name: mine
        in: query
        description: Set this parameter to true to instruct the API to return playlists owned by the authenticated user.
        schema:
          type: boolean
        example: true
      - $ref: '#/components/parameters/maxResults'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/key'
      responses:
        '200':
          description: Successful response containing a list of playlist resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaylistListResponse'
              examples:
                YoutubePlaylistsList200Example:
                  summary: Default youtube.playlists.list 200 response
                  x-microcks-default: true
                  value:
                    kind: youtube#video
                    etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                    nextPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
                    prevPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
                    pageInfo:
                      totalResults: 42
                      resultsPerPage: 10
                    items:
                    - kind: youtube#video
                      etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                      id: abc123def456
                      snippet:
                        publishedAt: '2026-01-15T10:30:00Z'
                        channelId: '500123'
                        title: Example Title
                        description: A sample description for this resource.
                        thumbnails: example_value
                        channelTitle: example_value
                        tags: {}
                        defaultLanguage: en
                      status:
                        privacyStatus: private
                      contentDetails:
                        itemCount: 42
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - oauth2:
        - https://www.googleapis.com/auth/youtube
      - apiKey: []
    post:
      operationId: youtube.playlists.insert
      summary: Youtube Create a Playlist
      description: Creates a playlist on behalf of the authenticated user. The user must be authorized to create playlists.
      tags:
      - Playlists
      parameters:
      - $ref: '#/components/parameters/part'
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/key'
      requestBody:
        description: The playlist resource to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Playlist'
            examples:
              YoutubePlaylistsInsertRequestExample:
                summary: Default youtube.playlists.insert request
                x-microcks-default: true
                value:
                  kind: youtube#video
                  etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                  id: abc123def456
                  snippet:
                    publishedAt: '2026-01-15T10:30:00Z'
                    channelId: '500123'
                    title: Example Title
                    description: A sample description for this resource.
                    thumbnails: example_value
                    channelTitle: example_value
                    tags:
                    - example_value
                    defaultLanguage: en
                  status:
                    privacyStatus: private
                  contentDetails:
                    itemCount: 42
      responses:
        '200':
          description: Successful response containing the newly created playlist resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
              examples:
                YoutubePlaylistsInsert200Example:
                  summary: Default youtube.playlists.insert 200 response
                  x-microcks-default: true
                  value:
                    kind: youtube#video
                    etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                    id: abc123def456
                    snippet:
                      publishedAt: '2026-01-15T10:30:00Z'
                      channelId: '500123'
                      title: Example Title
                      description: A sample description for this resource.
                      thumbnails: example_value
                      channelTitle: example_value
                      tags:
                      - example_value
                      defaultLanguage: en
                    status:
                      privacyStatus: private
                    contentDetails:
                      itemCount: 42
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - oauth2:
        - https://www.googleapis.com/auth/youtube
      - apiKey: []
    put:
      operationId: youtube.playlists.update
      summary: Youtube Update a Playlist
      description: Modifies a playlist. The authenticated user must own the playlist being updated. Use the part parameter to specify the properties being updated.
      tags:
      - Playlists
      parameters:
      - $ref: '#/components/parameters/part'
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/key'
      requestBody:
        description: The playlist resource with updated properties.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Playlist'
            examples:
              YoutubePlaylistsUpdateRequestExample:
                summary: Default youtube.playlists.update request
                x-microcks-default: true
                value:
                  kind: youtube#video
                  etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                  id: abc123def456
                  snippet:
                    publishedAt: '2026-01-15T10:30:00Z'
                    channelId: '500123'
                    title: Example Title
                    description: A sample description for this resource.
                    thumbnails: example_value
                    channelTitle: example_value
                    tags:
                    - example_value
                    defaultLanguage: en
                  status:
                    privacyStatus: private
                  contentDetails:
                    itemCount: 42
      responses:
        '200':
          description: Successful response containing the updated playlist resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
              examples:
                YoutubePlaylistsUpdate200Example:
                  summary: Default youtube.playlists.update 200 response
                  x-microcks-default: true
                  value:
                    kind: youtube#video
                    etag: XI7nbFXulYBIpL0ayR_gDh3eu1k
                    id: abc123def456
                    snippet:
                      publishedAt: '2026-01-15T10:30:00Z'
                      channelId: '500123'
                      title: Example Title
                      description: A sample description for this resource.
                      thumbnails: example_value
                      channelTitle: example_value
                      tags:
                      - example_value
                      defaultLanguage: en
                    status:
                      privacyStatus: private
                    contentDetails:
                      itemCount: 42
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - oauth2:
        - https://www.googleapis.com/auth/youtube
      - apiKey: []
    delete:
      operationId: youtube.playlists.delete
      summary: Youtube Delete a Playlist
      description: Deletes a playlist. The authenticated user must own the playlist or be authorized to delete it.
      tags:
      - Playlists
      parameters:
      - name: id
        in: query
        required: true
        description: The ID of the playlist to delete.
        schema:
          type: string
        example: abc123def456
      - $ref: '#/components/parameters/key'
      responses:
        '204':
          description: The playlist was successfully deleted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - oauth2:
        - https://www.googleapis.com/auth/youtube
      - apiKey: []
    servers:
    - url: https://www.googleapis.com/youtube/v3
      description: YouTube Data API v3 base server
  /playlists/{playlistId}:
    put:
      tags:
      - Playlists
      operationId: updatePlaylist
      summary: Youtube Update Playlist
      description: 'Updates a playlist''s metadata. This operation requires OAuth 2.0 authentication.

        You can only update playlists that belong to the authenticated user''s channel.

        '
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"fallback\": \"SuccessfulPlaylistInsertExample\"\n}\n"
      parameters:
      - $ref: '#/components/parameters/PlaylistIdPath'
      - $ref: '#/components/parameters/Part'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistUpdateRequest'
            examples:
              PlaylistUpdateRequestExample:
                $ref: '#/components/examples/PlaylistUpdateRequestExample'
      responses:
        '200':
          description: Successfully updated playlist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist_2'
              examples:
                SuccessfulPlaylistInsertExample:
                  $ref: '#/components/examples/SuccessfulPlaylistInsertExample'
        '404':
          description: Playlist not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
              examples:
                NotFoundErrorExample:
                  $ref: '#/components/examples/NotFoundErrorExample'
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/youtube.readonly
      - ApiKey: []
    delete:
      tags:
      - Playlists
      operationId: deletePlaylist
      summary: Youtube Delete Playlist
      description: 'Deletes a playlist. This operation requires OAuth 2.0 authentication.

        You can only delete playlists that belong to the authenticated user''s channel.

        '
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"fallback\": \"SuccessfulDeleteExample\"\n}\n"
      parameters:
      - $ref: '#/components/parameters/PlaylistIdPath'
      - $ref: '#/components/parameters/AccessToken'
      responses:
        '204':
          description: Successfully deleted playlist
        '404':
          description: Playlist not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
              examples:
                NotFoundErrorExample:
                  $ref: '#/components/examples/NotFoundErrorExample'
      security:
      - OAuth2:
        - https://www.googleapis.com/auth/youtube.readonly
      - ApiKey: []
    servers:
    - url: https://www.googleapis.com/youtube/v3
      description: YouTube Data API Production Server
components:
  responses:
    BadRequest:
      description: The request was invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The specified resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: The request was authenticated but the caller does not have permission to perform the requested operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: The request was not authenticated or the credentials are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    maxResults:
      name: maxResults
      in: query
      description: The maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive.
      schema:
        type: integer
        minimum: 0
        maximum: 50
        default: 5
    pageToken:
      name: pageToken
      in: query
      description: Identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages available.
      schema:
        type: string
    fields:
      name: fields
      in: query
      description: Selector specifying which fields to include in a partial response. Use this parameter to reduce bandwidth usage by selecting only the fields you need.
      schema:
        type: string
    key:
      name: key
      in: query
      description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
      schema:
        type: string
    part:
      name: part
      in: query
      required: true
      description: Specifies a comma-separated list of one or more resource properties that the API response will include. The part parameter value must include the id property.
      schema:
        type: string
    Part:
      name: part
      in: query
      required: true
      description: 'The part parameter specifies a comma-separated list of one or more

        resource properties that the API response will include.

        '
      schema:
        type: string
        example: snippet,contentDetails,statistics
    PlaylistIdPath:
      name: playlistId
      in: path
      required: true
      description: The unique identifier of the playlist
      schema:
        type: string
        example: PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
    ApiKey:
      name: key
      in: query
      required: false
      description: API key for authentication (for read-only operations)
      schema:
        type: string
    PageToken:
      name: pageToken
      in: query
      required: false
      description: Token for retrieving the next page of results
      schema:
        type: string
    MaxResultsDefault:
      name: maxResults
      in: query
      required: false
      description: Maximum number of items to return (1-50)
      schema:
        type: integer
        minimum: 1
        maximum: 50
        default: 5
        example: 25
    ChannelIdQuery:
      name: channelId
      in: query
      required: false
      description: Filter results by channel ID
      schema:
        type: string
        example: UC_x5XG1OV2P6uZZ5FSM9Ttw
    PlaylistId:
      name: id
      in: query
      required: false
      description: A comma-separated list of playlist IDs to retrieve
      schema:
        type: string
        example: PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
    AccessToken:
      name: access_token
      in: query
      required: false
      description: OAuth 2.0 access token for authentication
      schema:
        type: string
    Mine:
      name: mine
      in: query
      required: false
      description: Return resources owned by the authenticated user
      schema:
        type: boolean
        example: true
  schemas:
    ErrorResponse:
      type: object
      description: A standard error response returned by the YouTube Data API.
      properties:
        error:
          type: object
          description: The error details.
          properties:
            code:
              type: integer
              description: The HTTP status code of the error.
            message:
              type: string
              description: A human-readable description of the error.
            errors:
              type: array
              description: A list of individual errors.
              items:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable description of the error.
                  domain:
                    type: string
                    description: The domain in which the error occurred.
                  reason:
                    type: string
                    description: The reason for the error.
          example: example_value
    Playlist:
      type: object
      description: A playlist resource represents a YouTube playlist.
      required:
      - kind
      - etag
      properties:
        kind:
          type: string
          description: Identifies the API resource's type. Value is youtube#playlist.
          default: youtube#playlist
          example: youtube#video
        etag:
          type: string
          description: The Etag of this resource.
          example: XI7nbFXulYBIpL0ayR_gDh3eu1k
        id:
          type: string
          description: The ID that YouTube uses to uniquely identify the playlist.
          example: abc123def456
        snippet:
          type: object
          description: Basic details about the playlist such as its title, description, and thumbnails.
          properties:
            publishedAt:
              type: string
              format: date-time
              description: The date and time that the playlist was created.
            channelId:
              type: string
              description: The ID of the channel that published the playlist.
            title:
              type: string
              description: The playlist title.
            description:
              type: string
              description: The playlist description.
            thumbnails:
              type: object
              description: A map of thumbnail images associated with the playlist.
            channelTitle:
              type: string
              description: The channel title of the channel that the video belongs to.
            tags:
              type: array
              description: Keyword tags associated with the playlist.
              items:
                type: string
            defaultLanguage:
              type: string
              description: The language of the text in the playlist resource's snippet.title and snippet.description properties.
          example: example_value
        status:
          type: object
          description: The status object contains status information for the playlist.
          properties:
            privacyStatus:
              type: string
              description: The playlist's privacy status.
              enum:
              - private
              - public
              - unlisted
          example: example_value
        contentDetails:
          type: object
          description: The contentDetails object contains information about the playlist content.
          properties:
            itemCount:
              type: integer
              description: The number of videos in the playlist.
          example: example_value
    PageInfo:
      type: object
      description: Paging details for a list operation, including information about the total number of resources and the number per page.
      properties:
        totalResults:
          type: integer
          description: The total number of results in the result set.
          example: 42
        resultsPerPage:
          type: integer
          description: The number of results included in the API response.
          example: 10
    PlaylistListResponse:
      type: object
      description: A list of playlist resources matching the request criteria.
      properties:
        kind:
          type: string
          description: Identifies the API resource's type. Value is youtube#playlistListResponse.
          default: youtube#playlistListResponse
          example: youtube#video
        etag:
          type: string
          description: The Etag of this resource.
          example: XI7nbFXulYBIpL0ayR_gDh3eu1k
        nextPageToken:
          type: string
          description: The token for the next page of results.
          example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
        prevPageToken:
          type: string
          description: The token for the previous page of results.
          example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
        items:
          type: array
          description: A list of playlists that match the request criteria.
          items:
            $ref: '#/components/schemas/Playlist'
          example: []
    ErrorResponse_2:
      type: object
      description: Error response object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetails'
    ThumbnailDetails:
      type: object
      description: Thumbnail images at various resolutions
      properties:
        default:
          $ref: '#/components/schemas/Thumbnail'
        medium:
          $ref: '#/components/schemas/Thumbnail'
        high:
          $ref: '#/components/schemas/Thumbnail'
        standard:
          $ref: '#/components/schemas/Thumbnail'
        maxres:
          $ref: '#/components/schemas/Thumbnail'
    Playlist_2:
      type: object
      description: A YouTube playlist resource
      required:
      - kind
      - etag
      - id
      properties:
        kind:
          type: string
          description: Identifies the API resource type
          example: youtube#playlist
        etag:
          type: string
          description: ETag for caching purposes
        id:
          type: string
          description: Unique identifier for the playlist
          example: PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
        snippet:
          $ref: '#/components/schemas/PlaylistSnippet'
        contentDetails:
          $ref: '#/components/schemas/PlaylistContentDetails'
        status:
          $ref: '#/components/schemas/PlaylistStatus'
    Thumbnail:
      type: object
      description: A thumbnail image
      properties:
        url:
          type: string
          description: URL of the thumbnail image
          example: https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg
        width:
          type: integer
          description: Width of the thumbnail
          example: 120
        height:
          type: integer
          description: Height of the thumbnail
          example: 90
    PlaylistSnippet:
      type: object
      description: Basic information about the playlist
      properties:
        publishedAt:
          type: string
          format: date-time
          description: When the playlist was created
          example: '2024-01-15T10:30:00Z'
        channelId:
          type: string
          description: ID of the channel that owns the playlist
          example: UC_x5XG1OV2P6uZZ5FSM9Ttw
        title:
          type: string
          description: Title of the playlist
          example: API Development Tutorials
        description:
          type: string
          description: Description of the playlist
          example: A collection of tutorials for API development...
        thumbnails:
          $ref: '#/components/schemas/ThumbnailDetails'
        channelTitle:
          type: string
          description: Title of the channel
          example: Google Developers
    PlaylistContentDetails:
      type: object
      description: Content details for the playlist
      properties:
        itemCount:
          type: integer
          description: Number of videos in the playlist
          example: 25
    PlaylistStatus:
      type: object
      description: Status information for the playlist
      properties:
        privacyStatus:
          type: string
          description: Privacy status of the playlist
          enum:
          - private
          - public
          - unlisted
          example: public
    ErrorDetails:
      type: object
      description: Details about an API error
      required:
      - code
      - message
      properties:
        code:
          type: integer
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Human-readable error message
          example: Invalid parameter value
        errors:
          type: array
          description: List of specific errors
          items:
            $ref: '#/components/schemas/ErrorItem'
    PlaylistInsertRequest:
      type: object
      description: Request body for creating a playlist
      required:
      - snippet
      properties:
        snippet:
          type: object
          required:
          - title
          properties:
            title:
              type: string
              description: Title for the playlist
              example: My New Playlist
            description:
              type: string
              description: Description for the playlist
              example: A collection of my favorite videos
            defaultLanguage:
              type: string
              description: Default language
              example: en
        status:
          type: object
          properties:
            privacyStatus:
              type: string
              enum:
              - private
              - public
              - unlisted
              example: public
    PlaylistUpdateRequest:
      type: object
      description: Request body for updating a playlist
      required:
      - id
      - snippet
      properties:
        id:
          type: string
          description: ID of the playlist to update
          example: PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
        snippet:
          type: object
          required:
          - title
          properties:
            title:
              type: string
              description: Updated title
              example: Updated Playlist Name
            description:
              type: string
              description: Updated description
    PageInfo_2:
      type: object
      description: Pagination information
      properties:
        totalResults:
          type: integer
          description: Total number of results
          example: 1000000
        resultsPerPage:
          type: integer
          description: Number of results per page
          example: 25
    PlaylistListResponse_2:
      type: object
      description: Response containing playlist resources
      required:
      - kind
      - etag
      - items
      properties:
        kind:
          type: string
          description: Identifies the API resource type
          example: youtube#playlistListResponse
        etag:
          type: string
          description: ETag for caching purposes
        nextPageToken:
          type: string
          description: Token for the next page of results
        pageInfo:
          $ref: '#/components/schemas/PageInfo_2'
        items:
          type: array
          description: List of playlists
          items:
            $ref: '#/components/schemas/Playlist_2'
    ErrorItem:
      type: object
      description: Individual error detail
      properties:
        domain:
          type: string
          description: Error domain
          example: youtube.parameter
        reason:
          type: string
          description: Error reason code
          example: invalidParameter
        message:
          type: string
          description: Detailed error message
          example: The parameter 'part' is required
        locationType:
          type: string
          description: Type of location where error occurred
          example: parameter
        location:
          type: string
          description: Specific location of the error
          example: part
  examples:
    BadRequestErrorExample:
      summary: Bad request error
      description: Example error response for invalid parameters
      value:
        error:
          code: 400
          message: Invalid parameter value
          errors:
          - domain: youtube.parameter
            reason: invalidParameter
            message: The parameter 'part' is required
            locationType: parameter
            location: part
    PlaylistUpdateRequestExample:
      summary: Playlist update request
      description: Example request body for updating a playlist
      value:
        id: PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
        snippet:
          title: Updated Playlist Name
          description: Updated description
    SuccessfulPlaylistInsertExample:
      summary: Successfully created playlist
      description: Example response for a newly created playlist
      value:
        kind: youtube#playlist
        etag: newplaylist123
        id: NEWplaylist456
        snippet:
          publishedAt: '2024-03-20T14:00:00Z'
          channelId: UC_x5XG1OV2P6uZZ5FSM9Ttw
          title: My New Playlist
          description: A collection of my favorite videos
          thumbnails:
            default:
              url: https://i.ytimg.com/vi/default.jpg
              width: 120
              height: 90
          channelTitle: My Channel
        contentDetails:
          itemCount: 0
        status:
          privacyStatus: public
    NotFoundErrorExample:
      summary: Not found error
      description: Example error response when resource is not found
      value:
        error:
          code: 404
          message: Resource not found
          errors:
          - domain: youtube.video
            reason: videoNotFound
            message: The video identified by the parameter id could not be found
            locationType: parameter
            location: id
    PlaylistInsertRequestExample:
      summary: Playlist creation request
      description: Example req

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/youtube/refs/heads/main/openapi/youtube-playlists-api-openapi.yml