> ## 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.
# Get Video Library
## OpenAPI
````yaml https://core-api-public-docs.b-cdn.net/docs/v3/public.json get /videolibrary/{id}
openapi: 3.0.0
info:
title: bunny.net API
description: >-
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}:
get:
tags:
- Stream Video Library
summary: Get Video Library
operationId: GetVideoLibraryEndpoint_GetVideoLibrary
parameters:
- name: id
in: path
required: true
description: The ID of the Video Library that will be returned
schema:
type: integer
format: int64
x-position: 1
responses:
'200':
description: The requested video library
content:
application/json:
schema:
$ref: '#/components/schemas/VideoLibraryModel'
'401':
description: The request authorization failed
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorData'
'403':
description: The Video Library is not accessible for the authenticated account
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorData'
'404':
description: The Video Library with the requested ID does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorData'
'500':
description: Internal Server Error
security:
- AccessKey:
- User
- UserApi
- SubuserAPIStream
- SubuserStream
- SubuserManage
- SubuserAPIManage
- ScopedApiKey
- bearer:
- User
- UserApi
- SubuserAPIStream
- SubuserStream
- SubuserManage
- SubuserAPIManage
- ScopedApiKey
components:
schemas:
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
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
EncodingTier:
type: integer
description: |-
0 = Free
1 = Premium
x-enumNames:
- Free
- Premium
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.