--- title: "Deploy player (develop)" slug: "vpe-api-deploy-dev" tags: ["Video Player Enhancement"] updated: 2026-09-17T10:12:36Z published: 2026-09-17T10:12:36Z canonical: "api.ncloud-docs.com/vpe-api-deploy-dev" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Deploy player (develop) Available in Classic and VPC Deploy player settings to the develop environment. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | PUT | /api/v1/players/{player_no}/applyDev | ### Request headers For information about the headers common to all Video Player Enhancement APIs, see [Video Player Enhancement request headers](/docs/en/vpe-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `player_no` | String | Required | Player number - See [Get player list](/docs/en/vpe-api-list). | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `option` | Object | Required | Player option information - Standard pricing plan: All options are supported. - Basic pricing plan: Some options are supported. | | `option.touchGestures` | Boolean | Optional | Whether to use touch gestures - `true` (default) \| `false` - `true`: Enable - `false`: Disable | | `option.autostart` | Boolean | Optional | Automatic playback - `true` (default) \| `false` - `true`: Enable - `false`: Disable - Available from Basic pricing plan | | `option.controlBtn` | Object | Optional | Control bar button settings | | `option.controlBtn.fullscreen` | Boolean | Optional | Full screen button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.controlBtn.pictureInPicture` | Boolean | Optional | PIP (switch to mini player) button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.controlBtn.volume` | Boolean | Optional | Volume control button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.controlBtn.play` | Boolean | Optional | Play button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.controlBtn.times` | Boolean | Optional | Time display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed - Display the total video length and current playback time. | | `option.controlBtn.setting` | Boolean | Optional | Settings button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed - Display video resolution and refresh rate setting buttons. | | `option.controlBtn.subtitle` | Boolean | Optional | Subtitle selection button display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.controlBtn.progressBar` | Boolean | Optional | Progress bar display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.autoPause` | Boolean | Optional | Auto-stop on browser inactivity - `true` (default) \| `false` - `true`: Enable - `false`: Disable - Available from Basic pricing plan | | `option.seekingPreview` | Boolean | Optional | Thumbnail preview display - `true` (default) \| `false` - `true`: Displayed - `false`: Not displayed | | `option.descriptionNotVisible` | Boolean | Optional | Description (video title and metadata UI) usage - `true` \| `false` (default) - `true`: Enable - `false`: Disable | | `option.playRateSetting` | Array | Optional | Playback speed options list - `0.5` \| `0.75` \| `1` \| `1.25` \| `1.5` \| `2` \| `2.25` \| `2.5` (default: `0.5`,`0.75`,`1`,`1.5`,`2`) | | `option.repeat` | Boolean | Optional | Loop playback - `true` \| `false` (default) - `true`: Loop - `false`: Not loop - Available from Basic pricing plan | | `option.startMutedInfoNotVisible` | Boolean | Optional | Whether to mute upon playback start - `true` \| `false` (default) - `true`: Mute - `false`: Not mute | | `option.ui` | String | Optional | Control UI type - `all` (default) \| `mobile` \| `pc` - `all`: Switch automatically. - `mobile`: Mobile - `pc`: PC | | `option.aspectRatio` | String | Optional | Aspect ratio - `16/9` (default) \| `4/3` \| `1/1` \| `9/16` \| `21/9` - Available from Basic pricing plan | | `option.controlActiveTime` | Integer | Optional | Controlbar auto-hide time (millisecond) - `1500` \| `2000` \| `3000` (default) \| `4000` \| `5000` - Available from Basic pricing plan | | `option.muted` | Boolean | Optional | Mute indication window display - `true` \| `false` (default) - `true`: Enable - `false`: Disable - Available from Basic pricing plan | | `option.controls` | Boolean | Optional | Control bar usage - `true` (default) \| `false` - `true`: Enable - `false`: Disable - Available from Basic pricing plan | | `option.progressBarColor` | String | Optional | Control bar color - `#4299f5` (default) | | `option.keyboardShortcut` | Boolean | Optional | Keyboard shortcut usage - `true` (default) \| `false` - `true`: Enable - `false`: Disable | | `option.objectFit` | String | Optional | Full screen method - `contain` (default) \| `cover` \| `fill` - `contain`: Fit to proportions. - `cover`: Fit to proportions + full - `fill`: Ignore proportions + full - Available from Basic pricing plan | | `option.lowLatencyMode` | Boolean | Optional | Ultra-low latency mode usage - `true` \| `false` (default) - `true`: Enable - `false`: Disable - Keep live video current when enabled. | | `option.lang` | String | Optional | Language settings - `auto` (default) \| `ko` \| `en` \| `ja` - `auto`: Automatic - `ko`: Korean - `en`: English - `ja`: Japanese - Available from Basic pricing plan | | `option.visibleWatermark` | Boolean | Optional | Text watermark usage - `true` \| `false` (default) - `true`: Enable - `false`: Disable | | `option.watermarkConfig` | Object | Conditional | Text watermark detailed options - Required including sub-information if `option.visibleWatermark` is `true` | | `option.watermarkConfig.randPosition` | Boolean | Conditional | Whether to randomize location - `true` \| `false` - `true`: Enable - `false`: Disable | | `option.watermarkConfig.randPositionInterVal` | Integer | Conditional | Exposure interval (millisecond) - `3000` \| `5000` \| `10000` \| `30000` \| `60000` - Required if `option.watermarkConfig.randPosition` is `true` | | `option.watermarkConfig.x` | Integer | Conditional | Horizontal offset - 0-100 - Enter a horizontal position value for the watermark as a percentage. - Required if `option.watermarkConfig.randPosition` is `false`. | | `option.watermarkConfig.y` | Integer | Conditional | Vertical offset - 0-100 - Enter a vertical position value for the watermark as a percentage. - Required if `option.watermarkConfig.randPosition` is `false`. | | `option.watermarkConfig.opacity` | Float | Conditional | Transparency - 0.1-1 (default: 0.2) - The higher the number, the more opaque it is. - Required if `option.watermarkConfig.randPosition` is `false`. | | `option.iosFullscreenNativeMode` | Boolean | Optional | Support for full screen mode settings for iOS mobile Safari - `true` \| `false` - `true`: Supported - `false`: Not supported - Only version 1.1.5 or later or the latest version is supported. | | `option.customBtns` | Array | Optional | Custom button settings: [customBtns](/docs/en/vpe-api-deploy-dev#customBtns) - Up to 4 can be added. - Sub-information is required for setup. | | `option.layout` | Array | Optional | Control bar layout settings (supported only in SDK version V2 and later) | #### `customBtns` The following describes `customBtns`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `ui` | String | Conditional | Button UI environment - `pc` (default) \| `mobile` - `pc`: PC - `mobile`: Mobile | | `flow` | String | Conditional | Creation location - `left` (default)\| `right` - `left`: Left - `right`: Right - If an existing button exists at `position`, create to the left or right of it. | | `position` | String | Conditional | Button location - `left-top` \| `left-bottom` \| `right-top` (default) \| `right-bottom` - `left-top`: Top left - `left-bottom`: Bottom left - `right-top`: Top right - `right-bottom`: Bottom right | | `icon` | String | Conditional | Button image URL | ### Request example The request example is as follows: ``` curl --location --request PUT 'https://vpe.apigw.ntruss.com/api/v1/players/6284/applyDev' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --header 'x-ncp-region_code: KR' \ --data '{ "option": { "touchGestures": true, "autostart": true, "controlBtn": { "fullscreen": true, "pictureInPicture": true, "volume": true, "play": true, "times": true, "setting": true, "progressBar": true }, "seekingPreview": true, "descriptionNotVisible": false, "playRateSetting": [ 0.5, 1.0, 1.5, 2.0, 2.5 ], "repeat": false, "startMutedInfoNotVisible": false, "ui": "pc", "aspectRatio": "16/9", "controlActiveTime": 3000, "muted": false, "controls": true, "progressBarColor": "#4299f5", "keyboardShortcut": true, "objectFit": "cover", "lowLatencyMode": false, "lang": "ko", "visibleWatermark": true, "watermarkConfig": { "randPosition": false, "x": 98, "y": 2, "opacity": 0.6 }, "customBtns": [ { "ui": "pc", "flow": "left", "position": "right-bottom", "icon": "{Icon URL}" } ] } }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `code` | String | - | Response code | | `message` | String | - | Response message | ### Response status codes For information about the HTTP status codes common to all Video Player Enhancement APIs, see [Common Video Player Enhancement response status codes](/docs/en/vpe-api-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "code": "200", "message": "ok" } ```