> ## Documentation Index > Fetch the complete documentation index at: https://bunny.net/docs/llms.txt > Use this file to discover all available pages before exploring further. # Update Video Library ## OpenAPI ````yaml https://core-api-public-docs.b-cdn.net/docs/v3/public.json post /videolibrary/{id} openapi: 3.0.0 info: title: bunny.net API description: >- bunny.net Logo Learn how to use the [bunny.net](https://bunny.net "bunny.net - The content delivery platform that truly hops.") API. Everything that can be done with the control panel can also be achieved with our API documented on this page. To learn how to use the storage API, have a look at our storage API documentation

Third party API clients:


We currently do not maintain an official API library, but you can use one of the third party ones provided here:

https://github.com/codewithmark/bunnycdn (bunny.net PHP library, thanks to Code With Mark)

Note that third party clients are not maintained or developed by bunny.net so we unfortunately cannot offer support for them. termsOfService: https://bunny.net/tos contact: name: bunny.net url: https://docs.bunny.net email: support@bunny.net version: 1.0.0 servers: - url: https://api.bunny.net description: bunny.net API Server security: - AccessKey: [] tags: - name: Stream Video Library - name: User - name: AuditLog - name: Storage Zone - name: Statistics - name: Search - name: Pull Zone - name: Pricing - name: Load Balancer - name: DNS Zone - name: DNSSEC - name: Billing - name: API Keys - name: Affiliate - name: Countries - name: Purge - name: Region paths: /videolibrary/{id}: post: tags: - Stream Video Library summary: Update Video Library operationId: UpdateVideoLibraryEndpoint_UpdateVideoLibrary parameters: - name: id in: path required: true description: The ID of the Video Library to update schema: type: integer format: int64 x-position: 1 requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/VideoLibraryUpdateModel' required: true x-position: 2 responses: '200': description: The updated video library content: application/json: schema: $ref: '#/components/schemas/VideoLibraryModel' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ApiErrorData' '401': description: The request authorization failed '404': description: The Video Library with the requested ID does not exist '500': description: Internal Server Error security: - AccessKey: - User - UserApi - SubuserAPIStream - SubuserStream - SubuserManage - SubuserAPIManage - ScopedApiKey - bearer: - User - UserApi - SubuserAPIStream - SubuserStream - SubuserManage - SubuserAPIManage - ScopedApiKey components: schemas: VideoLibraryUpdateModel: type: object additionalProperties: false properties: Name: type: string description: (Optional) Sets name of the video library nullable: true CustomHTML: type: string description: (Optional) Sets the player custom HTML code nullable: true PlayerKeyColor: type: string description: (Optional) Sets the player key control color nullable: true EnableTokenAuthentication: type: boolean description: (Optional) Determines if the token authentication should be enabled nullable: true EnableTokenIPVerification: type: boolean description: (Optional) Determines if the token IP verification should be enabled nullable: true ResetToken: type: boolean description: (Optional) Set to true to reset the CDN and embed view token key nullable: true WatermarkPositionLeft: type: integer description: (Optional) Sets the left offset of the watermark position (in %) format: int32 nullable: true WatermarkPositionTop: type: integer description: (Optional) Sets the top offset of the watermark position (in %) format: int32 nullable: true WatermarkWidth: type: integer description: (Optional) Sets the width of the watermark (in %) format: int32 nullable: true WatermarkHeight: type: integer description: (Optional) Sets the height of the watermark (in %) format: int32 nullable: true EnabledResolutions: type: string description: >- (Optional) Sets the enabled resolutions for the transcoding. At least one resolution should be enabled. Possible values: 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p nullable: true ViAiPublisherId: type: string description: (Optional) Sets the vi.ai publisher ID nullable: true VastTagUrl: type: string description: (Optional) Sets the Vast tag URL nullable: true WebhookUrl: type: string description: (Optional) Sets the webhook API url nullable: true CaptionsFontSize: type: integer description: (Optional) Sets the captions display font size format: int32 nullable: true CaptionsFontColor: type: string description: (Optional) Sets the captions display font color nullable: true CaptionsBackground: type: string description: (Optional) Sets the captions display background color nullable: true UILanguage: type: string description: (Optional) Sets the UI language of the video player. nullable: true AllowEarlyPlay: type: boolean description: >- (Optional) Determines if the Early-Play feature should be enabled. Setting it to true also sets ExposeOriginals to true. Cannot be true while EnableDRM is true, and EnableDRM cannot be set to true while this is true, because Early Play serves the original file, which is not protected by DRM. nullable: true PlayerTokenAuthenticationEnabled: type: boolean description: (Optional) Determines if the token authentication should be enabled. nullable: true BlockNoneReferrer: type: boolean description: >- (Optional) Determines if requests without a referer should be blocked. nullable: true EnableMP4Fallback: type: boolean description: >- (Optional) Determines if MP4 fallback should be enabled for this library. nullable: true KeepOriginalFiles: type: boolean description: >- (Optional) Determines if the original file should be kept after the video is processed. nullable: true AllowDirectPlay: type: boolean description: >- (Optional) Determines if direct play URLs should be enabled for the library nullable: true EnableDRM: type: boolean description: >- (Optional) Determines if MediaCage DRM should be enabled for this library. Cannot be set to true while AllowEarlyPlay or ExposeOriginals is true; set them to false first or in the same request, because original files are not protected by DRM. nullable: true DrmVersion: description: >- (Optional) Determines MediaCage DRM version to be used for this library 0 = Basic 1 = Enterprise 2 = Basic V2 nullable: true oneOf: - $ref: '#/components/schemas/DrmVersion' Controls: type: string description: >- (Optional) A comma-separated list of controls to display in the video player. Possible values: play-large, play, progress, current-time, duration, mute, volume, captions, settings, pip, airplay, fullscreen, rewind, fast-forward, and chromecast. Set Controls to 0 to remove all player UI controls. nullable: true PlaybackSpeeds: type: string description: >- (Optional) The comma separated list of playback speeds that will be available in the video player. Possible values: 0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.5,3,3.5,4 nullable: true Bitrate240p: type: integer description: (Optional) The bitrate used for encoding 240p videos format: int32 nullable: true Bitrate360p: type: integer description: (Optional) The bitrate used for encoding 360p videos format: int32 nullable: true Bitrate480p: type: integer description: (Optional) The bitrate used for encoding 480p videos format: int32 nullable: true Bitrate720p: type: integer description: (Optional) The bitrate used for encoding 720p videos format: int32 nullable: true Bitrate1080p: type: integer description: (Optional) The bitrate used for encoding 1080p videos format: int32 nullable: true Bitrate1440p: type: integer description: (Optional) The bitrate used for encoding 1440p videos format: int32 nullable: true Bitrate2160p: type: integer description: (Optional) The bitrate used for encoding 2160p videos format: int32 nullable: true ShowHeatmap: type: boolean description: >- (Optional) Determines if the video watch heatmap should be displayed in the player. nullable: true EnableContentTagging: type: boolean description: >- (Optional) Determines if content tagging should be enabled for this library. nullable: true FontFamily: type: string description: (Optional) The captions font family. nullable: true EnableTranscribing: type: boolean description: >- (Optional) Determines if the automatic audio transcribing is currently enabled for this zone. nullable: true EnableTranscribingTitleGeneration: type: boolean description: >- (Optional) Determines if automatic transcribing title generation is currently enabled. nullable: true EnableTranscribingDescriptionGeneration: type: boolean description: >- (Optional) Determines if automatic transcribing description generation is currently enabled. nullable: true EnableTranscribingChaptersGeneration: type: boolean description: >- (Optional) Determines if automatic transcribing chapters generation is currently enabled. nullable: true EnableTranscribingMomentsGeneration: type: boolean description: >- (Optional) Determines if automatic transcribing moments generation is currently enabled. nullable: true TranscribingCaptionLanguages: type: array description: >- (Optional) The list of languages that the captions will be automatically transcribed to. nullable: true items: type: string EnableCaptionsInPlaylist: type: boolean description: >- (Optional) Determines if any associated captions will be automatically signaled in the HLS master playlist via EXT-X-MEDIA tags, allowing client players to show captions. nullable: true RememberPlayerPosition: type: boolean description: >- (Optional) Determines if the player will automatically remember the playback position. nullable: true EnableMultiAudioTrackSupport: type: boolean description: >- (Optional) Determines if multiple output audio track support is enabled on video library. nullable: true UseSeparateAudioStream: type: boolean description: >- (Optional) Determines whether output audio stream should be split from video stream segments. nullable: true JitEncodingEnabled: type: boolean description: >- (Optional) Determines whether JIT encoding should be used for the library. Supported in premium encoding only. nullable: true EncodingTier: description: >- (Optional) Defines encoding tier to be used with video library. premium is a paid tier that offers either JIT encoding or prioritized encoding and extra codec support. 0 = Free 1 = Premium nullable: true oneOf: - $ref: '#/components/schemas/EncodingTier' OutputCodecs: type: string description: >- (Optional) Specifies which video codecs are used for encoding, provided as a comma-separated (CSV) string. Free encoding tier supports only x264. A premium encoding tier adds support for vp9, hevc, and av1. nullable: true AppleFairPlayDrm: description: >- (Optional) Configure Apple FairPlay DRM. Works only if Enterprise DRM is set up. nullable: true oneOf: - $ref: '#/components/schemas/AppleFairPlayDrmUpdateModel' GoogleWidevineDrm: description: >- (Optional) Configure Google Widevine DRM. Works only if Enterprise DRM is set up. nullable: true oneOf: - $ref: '#/components/schemas/GoogleWidevineDrmUpdateModel' PlayerVersion: type: integer description: (Optional) Sets player version used for this library format: int32 nullable: true RemoveMetadataFromFallbackVideos: type: boolean description: >- (Optional) Marks whether all potential video metadata should be removed from the fallback files nullable: true ScaleVideoUsingBothDimensions: type: boolean description: >- (Optional) Marks whether videos should be scaled using both dimensions. Prevents videos being upscaled or unexpected aspect ratio changes. nullable: true ExposeOriginals: type: boolean description: >- (Optional) Marks whether original video files should be exposed via CDN. Original files are not protected by DRM, so this cannot be true while EnableDRM is true, and EnableDRM cannot be set to true while this is true. Setting AllowEarlyPlay to true sets this to true. nullable: true ExposeVideoMetadata: type: boolean description: >- (Optional) Marks whether video metadata in form of schema meta tags and LD+JSON should be exposed. nullable: true EnableCompactControls: type: boolean description: >- (Optional) Marks whether compact controls should be enabled for the player. nullable: true GeoBlocking: description: (Optional) Geo-blocking settings for the video library. nullable: true oneOf: - $ref: '#/components/schemas/VideoGeoBlockingUpdateModel' VideoLibraryModel: type: object additionalProperties: false properties: Id: type: integer format: int64 Name: type: string description: The name of the Video Library. nullable: true VideoCount: type: integer description: The number of videos in the video library format: int64 LiveStreamCount: type: integer description: The total number of live streams contained by the video library format: int64 nullable: true TotalCount: type: integer description: The total number of items contained by the video library format: int64 TrafficUsage: type: integer description: The amount of traffic usage this month format: int64 StorageUsage: type: integer description: The total amount of storage used by the library format: int64 DateCreated: type: string description: The date when the video library was created format: date-time DateModified: type: string description: The date when the video library was last modified format: date-time ReplicationRegions: type: array description: The geo-replication regions of the underlying storage zone nullable: true items: type: string ApiKey: type: string description: The API key used for authenticating with the video library nullable: true ReadOnlyApiKey: type: string description: The read-only API key used for authenticating with the video library nullable: true HasWatermark: type: boolean description: Determines if the video library has a watermark configured WatermarkPositionLeft: type: integer description: The left offset of the watermark position (in %) format: int32 WatermarkPositionTop: type: integer description: The top offset of the watermark position (in %) format: int32 WatermarkWidth: type: integer description: The width of the watermark (in %) format: int32 PullZoneId: type: integer description: The ID of the connected underlying pull zone format: int64 StorageZoneId: type: integer description: The ID of the connected underlying storage zone format: int64 WatermarkHeight: type: integer description: The height of the watermark (in %) format: int32 EnabledResolutions: type: string description: The comma separated list of enabled resolutions nullable: true ViAiPublisherId: type: string description: The vi.ai publisher id for advertising configuration nullable: true VastTagUrl: type: string description: The URL of the VAST tag endpoint for advertising configuration nullable: true WebhookUrl: type: string description: The webhook URL of the video library nullable: true CaptionsFontSize: type: integer description: The captions display font size format: int32 CaptionsFontColor: type: string description: The captions display font color nullable: true CaptionsBackground: type: string description: The captions display background color nullable: true UILanguage: type: string description: The UI language of the player nullable: true AllowEarlyPlay: type: boolean description: >- Determines if the Early-Play feature is enabled. Always false while EnableDRM is true. nullable: true PlayerTokenAuthenticationEnabled: type: boolean description: Determines if the player token authentication is enabled AllowedReferrers: type: array description: The list of allowed referrer domains allowed to access the library nullable: true items: type: string BlockedReferrers: type: array description: >- The list of blocked referrer domains blocked from accessing the library nullable: true items: type: string BlockNoneReferrer: type: boolean description: Determines if the requests without a referrer are blocked EnableMP4Fallback: type: boolean description: Determines if the MP4 fallback feature is enabled KeepOriginalFiles: type: boolean description: >- Determines if the original video files should be stored after encoding AllowDirectPlay: type: boolean description: Determines direct play URLs are enabled for the library EnableDRM: type: boolean description: >- Determines if MediaCage DRM is enabled. While true, AllowEarlyPlay and ExposeOriginals are always false. DrmVersion: description: |- DRM version (basic or enterprise) 0 = Basic 1 = Enterprise 2 = Basic V2 oneOf: - $ref: '#/components/schemas/DrmVersion' AppleFairPlayDrm: description: Described Apple FairPlay DRM nullable: true oneOf: - $ref: '#/components/schemas/AppleFairPlayDrm' GoogleWidevineDrm: description: Describes Google Widevine DRM nullable: true oneOf: - $ref: '#/components/schemas/GoogleWidevineDrm' Bitrate240p: type: integer description: The bitrate used for encoding 240p videos format: int32 Bitrate360p: type: integer description: The bitrate used for encoding 360p videos format: int32 Bitrate480p: type: integer description: The bitrate used for encoding 480p videos format: int32 Bitrate720p: type: integer description: The bitrate used for encoding 720p videos format: int32 Bitrate1080p: type: integer description: The bitrate used for encoding 1080p videos format: int32 Bitrate1440p: type: integer description: The bitrate used for encoding 1440p videos format: int32 Bitrate2160p: type: integer description: The bitrate used for encoding 2160p videos format: int32 ApiAccessKey: type: string deprecated: true x-deprecatedMessage: >- The API access key for the library. Should use the ApiKey as the value is the same. nullable: true ShowHeatmap: type: boolean description: >- Determines if the video watch heatmap should be displayed in the player. EnableContentTagging: type: boolean description: Determines if content tagging should be enabled for this library. PullZoneType: description: |- The type of the pull zone attached 0 = Premium 1 = Volume oneOf: - $ref: '#/components/schemas/PullZoneType' CustomHTML: type: string description: The custom HTMl that is added into the head of the HTML player. nullable: true Controls: type: string description: >- The comma-separated list of controls displayed in the video player. Possible values: play-large, play, progress, current-time, duration, mute, volume, captions, settings, pip, airplay, fullscreen, rewind, fast-forward, and chromecast. Empty when all player UI controls are removed. nullable: true PlaybackSpeeds: type: string description: The list of playback speeds available in the video player. nullable: true PlayerKeyColor: type: string description: The key color of the player. nullable: true FontFamily: type: string description: The captions font family. nullable: true WatermarkVersion: type: integer format: int64 EnableTranscribing: type: boolean description: >- Determines if the automatic audio transcribing is currently enabled for this zone. EnableTranscribingTitleGeneration: type: boolean description: >- Determines if automatic transcribing title generation is currently enabled. EnableTranscribingDescriptionGeneration: type: boolean description: >- Determines if automatic transcribing description generation is currently enabled. EnableTranscribingChaptersGeneration: type: boolean description: >- Determines if automatic transcribing chapters generation is currently enabled. EnableTranscribingMomentsGeneration: type: boolean description: >- Determines if automatic transcribing moments generation is currently enabled. TranscribingCaptionLanguages: type: array description: >- The list of languages that the captions will be automatically transcribed to. nullable: true items: type: string EnableCaptionsInPlaylist: type: boolean description: >- Determines if any associated captions will be automatically signaled in the HLS master playlist via EXT-X-MEDIA tags, allowing client players to show captions. nullable: true RememberPlayerPosition: type: boolean description: >- Determines if the player will automatically remember the playback position. EnableMultiAudioTrackSupport: type: boolean description: >- Determines if multiple output audio track support is enabled on video library. UseSeparateAudioStream: type: boolean description: >- Determines whether output audio stream should be split from video stream segments. JitEncodingEnabled: type: boolean description: >- Determines whether JIT encoding should be used for the library. Supported in premium encoding only. EncodingTier: description: >- Defines encoding tier to be used with video library. premium is a paid tier that offers either JIT encoding or prioritized encoding and extra codec support. 0 = Free 1 = Premium oneOf: - $ref: '#/components/schemas/EncodingTier' OutputCodecs: type: string description: >- Specifies which video codecs are used for encoding, provided as a comma-separated (CSV) string. Free encoding tier supports only x264. A premium encoding tier adds support for vp9, hevc, and av1. nullable: true DrmBasePriceOverride: type: number description: >- DRM (enterprise) monthly base price for this video library if it differs from list price. format: decimal nullable: true DrmCostPerLicenseOverride: type: number description: >- DRM (enterprise) cost per license for this video library if it differs from list price. format: decimal nullable: true TranscribingPriceOverride: type: number format: decimal nullable: true PremiumEncodingPriceOverride: type: number format: decimal nullable: true MonthlyChargesTranscribing: type: number format: decimal MonthlyChargesPremiumEncoding: type: number format: decimal MonthlyChargesEnterpriseDrm: type: number format: decimal FeatureFlags: type: string nullable: true PlayerVersion: type: integer format: int32 RemoveMetadataFromFallbackVideos: type: boolean description: >- Marks whether all potential video metadata should be removed from the fallback files. Default false. ScaleVideoUsingBothDimensions: type: boolean description: >- Marks whether videos should be scaled using both dimensions. Prevents videos being upscaled or unexpected aspect ratio changes. Default true. ExposeOriginals: type: boolean description: >- Marks whether original video files are exposed via CDN. Always false while EnableDRM is true; original files are not protected by DRM. ExposeVideoMetadata: type: boolean description: >- Marks whether video metadata in form of schema meta tags and LD+JSON should be exposed. EnableCompactControls: type: boolean description: Marks whether compact controls should be enabled for the player. GeoBlocking: description: Geo-blocking settings for the video library. nullable: true oneOf: - $ref: '#/components/schemas/VideoGeoBlocking' ApiErrorData: type: object additionalProperties: false properties: ErrorKey: type: string nullable: true Field: type: string nullable: true Message: type: string nullable: true DrmVersion: type: integer description: |- 0 = Basic 1 = Enterprise 2 = Basic V2 x-enumNames: - Basic - Enterprise - BasicV2 enum: - 0 - 1 - 2 EncodingTier: type: integer description: |- 0 = Free 1 = Premium x-enumNames: - Free - Premium enum: - 0 - 1 AppleFairPlayDrmUpdateModel: type: object additionalProperties: false properties: Enabled: type: boolean description: (Optional) Enables or disables Apple FairPlay Enterprise DRM nullable: true GoogleWidevineDrmUpdateModel: type: object additionalProperties: false properties: Enabled: type: boolean description: (Optional) Enables or disables Google Widevine Enterprise DRM nullable: true SdOnlyForL3: type: boolean description: (Optional) Only allow audio and SD access to Widevine L3 clients nullable: true MinClientSecurityLevel: description: >- (Optional) Minimum Client Security Level (1 being most secure, 3 least secure and is default) 0 = None 1 = L1 2 = L2 3 = L3 nullable: true oneOf: - $ref: '#/components/schemas/WidevineMinClientSecurityLevel' VideoGeoBlockingUpdateModel: type: object additionalProperties: false properties: Enabled: type: boolean description: (Optional) Whether geo-blocking is enabled for the video library nullable: true AllowedCountries: type: array description: >- (Optional) The list of countries allowed to access the video library, 2 letter ISO 3166-1 code nullable: true items: type: string BlockedCountries: type: array description: >- (Optional) The list of countries blocked from accessing the video library, 2 letter ISO 3166-1 code nullable: true items: type: string AppleFairPlayDrm: type: object additionalProperties: false properties: Enabled: type: boolean CertificateId: type: integer format: int64 nullable: true CertificateExpirationDate: type: string format: date-time nullable: true Provider: type: string nullable: true GoogleWidevineDrm: type: object additionalProperties: false properties: Enabled: type: boolean CertificateId: type: integer format: int64 nullable: true CertificateExpirationDate: type: string format: date-time nullable: true Provider: type: string nullable: true SdOnlyForL3: type: boolean MinClientSecurityLevel: description: |- 0 = None 1 = L1 2 = L2 3 = L3 nullable: true oneOf: - $ref: '#/components/schemas/WidevineMinClientSecurityLevel' PullZoneType: type: integer description: |- 0 = Premium 1 = Volume x-enumNames: - Premium - Volume enum: - 0 - 1 VideoGeoBlocking: type: object additionalProperties: false properties: Enabled: type: boolean description: Whether geo-blocking is enabled for the video library AllowedCountries: type: array description: >- The list of countries allowed to access the video library, 2 letter ISO 3166-1 code nullable: true items: type: string BlockedCountries: type: array description: >- The list of countries blocked from accessing the video library, 2 letter ISO 3166-1 code nullable: true items: type: string WidevineMinClientSecurityLevel: type: integer description: |- 0 = None 1 = L1 2 = L2 3 = L3 x-enumNames: - None - L1 - L2 - L3 enum: - 0 - 1 - 2 - 3 securitySchemes: AccessKey: type: apiKey description: API Access Key authorization header name: AccessKey in: header bearer: type: apiKey description: Bearer token authorization header name: Authorization in: header ```` This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.