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

# Download a YouTube video as MP4

> Use this operation to save one public YouTube video as an MP4 file link (up to 720p) with normalized video metadata.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/youtube/video/download
openapi: 3.1.0
info:
  description: >-
    Direct authenticated APIs for public social data, people data, transcripts,
    documents, text, and SEO. Send an API key as a Bearer token. Responses never
    include provider credentials or raw provider payloads.
  license:
    name: Proprietary
    url: https://agentbody.io
  title: AgentBody API
  version: '2026-09-15'
servers:
  - url: https://api.agentbody.io
security:
  - bearerAuth: []
paths:
  /v1/youtube/video/download:
    post:
      tags:
        - youtube
      summary: Download a YouTube video as MP4
      description: >-
        Use this operation to save one public YouTube video as an MP4 file link
        (up to 720p) with normalized video metadata.
      operationId: post_v1_youtube_video_download
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/YouTubeVideoDownloadRequest'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/YouTubeVideoDownloadSuccess'
        '400':
          content:
            application/json:
              example:
                error:
                  code: INVALID_ARGUMENT
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: INVALID_ARGUMENT
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Correct the input; do not retry unchanged.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
        '401':
          content:
            application/json:
              example:
                error:
                  code: UNAUTHENTICATED
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: UNAUTHENTICATED
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Configure a valid API key; do not retry unchanged.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
        '409':
          content:
            application/json:
              example:
                error:
                  code: CONFLICT
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: CONFLICT
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Follow the documented Idempotency-Key behavior before retrying.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
        '502':
          content:
            application/json:
              example:
                error:
                  code: UPSTREAM_INVALID_RESPONSE
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: UPSTREAM_INVALID_RESPONSE
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Retry with backoff, then report temporary unavailability.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
        '503':
          content:
            application/json:
              example:
                error:
                  code: UPSTREAM_UNAVAILABLE
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: UPSTREAM_UNAVAILABLE
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Retry with backoff, then report temporary unavailability.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
        '504':
          content:
            application/json:
              example:
                error:
                  code: UPSTREAM_TIMEOUT
                  message: example error
              schema:
                additionalProperties: false
                properties:
                  error:
                    additionalProperties: false
                    properties:
                      code:
                        const: UPSTREAM_TIMEOUT
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Retry with backoff, then report temporary unavailability.
          headers:
            X-Request-Id:
              description: Gateway request identifier for support and audit.
              schema:
                format: uuid
                type: string
components:
  parameters:
    IdempotencyKey:
      description: Optional key for safely retrying a billable write request.
      example: request-20260819-001
      in: header
      name: Idempotency-Key
      required: false
      schema:
        maxLength: 255
        minLength: 1
        type: string
  schemas:
    YouTubeVideoDownloadRequest:
      additionalProperties: false
      properties:
        quality:
          default: 720p
          enum:
            - 144p
            - 240p
            - 360p
            - 480p
            - 720p
          type: string
        url:
          format: uri
          type: string
      required:
        - url
      type: object
    YouTubeVideoDownloadResult:
      additionalProperties: false
      properties:
        duration_seconds:
          type: number
        format:
          type: string
        quality:
          type: string
        size_mb:
          type: number
        title:
          type: string
        url:
          format: uri
          type: string
        video_content_type:
          type: string
        video_id:
          type: string
        video_url:
          format: uri
          type: string
      required:
        - video_id
        - url
        - video_url
        - video_content_type
        - format
        - quality
      type: object
  responses:
    YouTubeVideoDownloadSuccess:
      content:
        application/json:
          example:
            duration_seconds: 180
            format: mp4
            quality: 720p
            size_mb: 15.2
            title: Example Video
            url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
            video_content_type: video/mp4
            video_id: dQw4w9WgXcQ
            video_url: >-
              https://api.apify.com/v2/key-value-stores/example/records/dQw4w9WgXcQ.mp4
          schema:
            $ref: '#/components/schemas/YouTubeVideoDownloadResult'
      description: Downloaded YouTube media link and normalized public video metadata.
      headers:
        X-Request-Id:
          description: Gateway request identifier for support and audit.
          schema:
            format: uuid
            type: string
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````