# player-iframe-api-loader


Пакет `@kinescope/player-iframe-api-loader` загружает IFrame Player API без колбэка `onKinescopeIframeAPIReady` и даёт TypeScript-типы. Репозиторий: [kinescope/player-iframe-api-loader](https://github.com/kinescope/player-iframe-api-loader).

## Установка

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

## Загрузка 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()` подтягивает скрипт API и возвращает фабрику. Дальше — как в обычном [IFrame API](https://docs.kinescope.ru/dokumentaciya-pleera/vstraivanie/iframe-api/): [`create()`](https://docs.kinescope.ru/dokumentaciya-pleera/vstraivanie/iframe-api-sozdanie-pleera/#create) и [управление плеером](https://docs.kinescope.ru/dokumentaciya-pleera/vstraivanie/iframe-api-upravlenie-pleerom/).

### Версия скрипта

По умолчанию загружается `latest`. Можно указать версию или свой URL:

```js
// latest (по умолчанию)
await iframeApiLoader.load()

// конкретная версия: 'v2.123.0' или '2.123.0'
await iframeApiLoader.load('v2.123.0')

// свой URL скрипта
await iframeApiLoader.load(new URL('https://player.kinescope.io/latest/iframe.player.js'))
```

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

На странице может быть только одна версия IFrame API. Если уже загружена другая, `load()` выбросит ошибку.



## Только типы

Если скрипт API подключаете сами, можно импортировать только типы:

```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',
  })
}
```

## Что дальше?

- [Создание плеера](https://docs.kinescope.ru/dokumentaciya-pleera/vstraivanie/iframe-api-sozdanie-pleera/)
- [Управление плеером](https://docs.kinescope.ru/dokumentaciya-pleera/vstraivanie/iframe-api-upravlenie-pleerom/)
- [Обзор библиотек](https://docs.kinescope.ru/dokumentaciya-pleera/biblioteki/)

