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

# Upload Video



## OpenAPI

````yaml https://video.bunnycdn.com/openapi/bunnynet-video-api.public.json put /library/{libraryId}/videos/{videoId}
openapi: 3.0.0
info:
  title: Stream API
  termsOfService: https://bunny.net/tos
  contact:
    name: bunny.net
    url: https://docs.bunny.net
    email: support@bunny.net
  version: 1.5.5
servers:
  - url: https://video.bunnycdn.com
security: []
tags:
  - name: Manage Collections
  - name: Manage Videos
paths:
  /library/{libraryId}/videos/{videoId}:
    put:
      tags:
        - Manage Videos
      summary: Upload Video
      operationId: Video_UploadVideo
      parameters:
        - name: libraryId
          in: path
          required: true
          schema:
            type: integer
            format: int64
          x-position: 1
        - name: videoId
          in: path
          required: true
          schema:
            type: string
          x-position: 2
        - name: jitEnabled
          in: query
          description: >-
            Marks whether JIT encoding should be enabled for this video (works
            only when Premium Encoding is enabled), overrides library settings
          schema:
            type: boolean
          x-position: 3
        - name: enabledResolutions
          in: query
          description: >-
            Comma separated list of resolutions enabled for encoding, available
            options: 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p
          schema:
            type: string
            default: ''
            nullable: true
          x-position: 4
        - name: enabledOutputCodecs
          in: query
          description: >-
            List of codecs that will be used to encode the file (overrides
            library settings). Available values: x264, vp9
          schema:
            type: string
            default: ''
            nullable: true
          x-position: 6
        - name: transcribeEnabled
          in: query
          description: >-
            Setting this to true will enable transcription on this video.
            Enabling this will incur transcription charges
          schema:
            type: boolean
            nullable: true
          x-position: 7
        - name: transcribeLanguages
          in: query
          description: >-
            Comma separated list of languages that will be used as target
            languages, use ISO 639-1 language codes.
          schema:
            type: string
            nullable: true
          x-position: 8
        - name: sourceLanguage
          in: query
          description: Language spoken in the video, use ISO 639-1 language codes.
          schema:
            type: string
            nullable: true
          x-position: 9
        - name: generateTitle
          in: query
          description: Whether video title should be generated from transcription.
          schema:
            type: boolean
            nullable: true
          x-position: 10
        - name: generateDescription
          in: query
          description: Whether video description should be generated from transcription.
          schema:
            type: boolean
            nullable: true
          x-position: 11
        - name: generateChapters
          in: query
          description: Whether video chapters should be generated from transcription.
          schema:
            type: boolean
            nullable: true
          x-position: 12
        - name: generateMoments
          in: query
          description: Whether video moments should be generated from transcription.
          schema:
            type: boolean
            nullable: true
          x-position: 13
      requestBody:
        description: Video file to upload
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
              nullable: false
        required: true
      responses:
        '200':
          description: The video was successfully uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusModel'
        '400':
          description: The requested video was already uploaded
        '401':
          description: The request authentication failed
        '403':
          description: The request authorization failed
        '404':
          description: The requested video was not found
        '500':
          description: Internal Server Error
      security:
        - AccessKey: []
components:
  schemas:
    StatusModel:
      type: object
      additionalProperties: false
      properties:
        success:
          type: boolean
          description: Determines if the request was successful
        message:
          type: string
          description: Response message description
          nullable: true
        statusCode:
          type: integer
          description: The response status code
          format: int32
  securitySchemes:
    AccessKey:
      type: apiKey
      description: AccessKey based authentication
      name: AccessKey
      in: header

````