# player-iframe-api-loader


The `@kinescope/player-iframe-api-loader` package loads the IFrame Player API without the `onKinescopeIframeAPIReady` callback and provides TypeScript types. Repository: [kinescope/player-iframe-api-loader](https://github.com/kinescope/player-iframe-api-loader).

## Installation

```bash
npm install @kinescope/player-iframe-api-loader --save
```

## Load the API

```js
import * as iframeApiLoader from '@kinescope/player-iframe-api-loader'

const factory = await iframeApiLoader.load()
const player = await factory.create('player', {
  url: 'https://kinescope.io/VIDEO_ID',
})
```

`load()` loads the API script and returns the factory. You can then use it like the standard [IFrame API](https://docs.kinescope.com/player-docs/embedding/iframe-api/): call [`create()`](https://docs.kinescope.com/player-docs/embedding/iframe-api-create-player/#create) and [control the player](https://docs.kinescope.com/player-docs/embedding/iframe-api-control-player/).

### Script version

The loader uses `latest` by default. You can specify a version or provide your own URL:

```js
// latest (default)
await iframeApiLoader.load()

// Specific version: 'v2.123.0' or '2.123.0'
await iframeApiLoader.load('v2.123.0')

// Custom script URL
await iframeApiLoader.load(new URL('https://player.kinescope.io/latest/iframe.player.js'))
```

> **Внимание:**

A page can use only one version of the IFrame API. If another version is already loaded, `load()` throws an error.



## Import types only

If you load the API script yourself, you can import only the types:

```ts
import '@kinescope/player-iframe-api-loader/types'

let player: Kinescope.IframePlayer.Player | undefined

const factory = window.Kinescope?.IframePlayer
if (factory) {
  player = await factory.create('player', {
    url: 'https://kinescope.io/VIDEO_ID',
  })
}
```

## Next steps

- [Create a player](https://docs.kinescope.com/player-docs/embedding/iframe-api-create-player/)
- [Control the player](https://docs.kinescope.com/player-docs/embedding/iframe-api-control-player/)
- [Player libraries overview](https://docs.kinescope.com/player-docs/libraries/)

