---
metadata:
  - name: generator
    content: Diplodoc Platform v5.42.1
alternate:
  - https://yandex.uz/support/video/ru/partners/jsapi.md
  - https://yandex.uz/support/video/uz/partners/jsapi.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.uz/support/video/uz/llms.txt

# Video holati haqida ma’lumot uzatish

Video qidiruv samaraliroq ishlashi va yanada munosib videolarni chiqarishi uchun video holatini kuzatishga yordam beradigan voqealar (masalan, videoning boshlanish, to‘xtash, oldinga yoki orqaga o‘tkazish vaqti va hokazo) hamda yuzaga kelishi mumkin bo‘lgan xatolar haqidagi ma’lumotlarni uzatish zarur. 

## Video holati haqida xabar beruvchi hodisalar {#events}

Video holati ma’lumotlarini yuborish uchun [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) mexanizmidan foydalaning. Pleyerda biror hodisa yuz berganda (masalan, video ijro etish boshlanganda), JavaScript kodida `window.parent.postMessage` funksiyasini chaqiring. Funksiya argumentlari sifatida hodisaning nomi va uning parametrlarini (masalan, jarayon panelining pozitsiyasini) bering. 


{% cut "Funksiyadan foydalanish misoli" %}

```javascript
window.parent.postMessage({
    event: <Voqea nomi>,
    // voqeaning qo‘shimcha parametrlari
}, '*');
```

{% note info %}

`postMessage` funksiyasi ota-ona obyekti `window.parent` uchun chaqiriladi, chunki video Yandex qidiruv natijalarining asosiy sahifasida emas, balki alohida ramkada (`iframe` elementida) joylashtiriladi.

{% endnote %}


{% endcut %}

TV uchun va brauzerdagi video qidiruv ilovasida pleyerni ko‘rsatish uchun majburiy hodisalar va ularning sozlamalarini uzatish zarur.

Qo‘shimcha hodisalarni uzatish pleyer bilan aloqani yaxshilaydi va signallar videolarni yaxshiroq tartiblashga yordam beradi.


{% list tabs %}

- Majburiy hodisalar

  #|
  ||
  **Hodisa**
  |
  **Tavsif**
  |
  **Hodisa parametrlari**
  ||
  ||
  `inited`
  |
  Pleyer ishga tushirilishi.
  |
  —
  ||
  ||
  `paused`
  |
  Ijro to‘xtatilishi.
  |
  `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `ended`
  |
  Videorolikni tomosha qilish yakunlandi (video oxiriga yetildi).
  |
  `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `started`
  |
  Ijro boshlanishi yoki pauzadan keyin ijroni davom ettirish.
  |

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

    Agar `time` parametri kiritilmagan bo‘lsa, birlamchi holatda uning qiymati `0` ga teng bo‘ladi.

  - `duration` — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

  - `muted` — ovoz o‘chirilganlik belgisi, `0` yoki `1` qiymatini qabul qilishi mumkin.

  - `quality` — video sifati (mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`).

  ||
  ||
  `timeupdate`
  |
  Videorolik ijrosi (voqea bir necha marta takrorlanadi).
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `duration` — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

    `<video>` elementi uchun [timeupdate](https://developer.mozilla.org/en-US/docs/Web/Events/timeupdate) nativ tadbiriga o‘xshash.

  ||
  ||
  `error`
  |
  Ijro etishda xato, video mavjud emas.
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `code` — [xatolik kodi](https://yandex.ru/support/video/ru/partners/jsapi#errors).

  - `message` — xatolik turi haqidagi axborot xabari.

  ||
  ||
  `adShown`
  |
  Reklama namoyishining boshlanishi.
  |
  - `count` — joriy reklama blokida ko‘rsatiladigan reklama roliklari soni.

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `ads` — reklama roliklari ro‘yxati ma’lumotlari massivi. Massivdagi har bir rolik uchun quyidagi parametrlar kerak:

    - `duration` — reklamaning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

    - `skip` — reklamani o‘tkazib yuborish imkoniyati (interfeysda tegishli bildirishnoma chiqadi), `0` yoki `1` qiymatni qabul qilishi mumkin.

  {% cut "adShown hodisasi uchun ma’lumotlar misollari" %}

  {% cut "1-misol" %}

  Agar reklama bloki videoning o‘ttizinchi soniyasida ijro qilishni boshlasa va ikkita e’lonni o‘z ichiga olsa, ulardan birinchisi 15 soniya davom etadi va o‘tkazib yuborish imkoniyatiga ega, ikkinchisi esa 25 soniya davom etadi va o‘tkazib yuborilmaydi, unda `adShown` tadbirida quyidagi ma’lumotlar mavjud bo‘lishi kerak: {#addshown}

  ```
  {
    count: 2,
    time: 30,
    ads: [{
        duration: 15.0,
        skip: 1
      },{
        duration: 25.3,
        skip: 0
      }
    ]
  }
  ```
  {% endcut %}

  {% cut "2-misol" %}

  Agar videoning eng boshida (`preroll`) ijro etiladigan, 45 soniya davom etadigan va o‘tkazib yuborib bo‘lmaydigan yagona reklama bloki mavjud bo‘lsa:

  ```
  {
    count: 1,
    time: 0,
    ads: [{
        duration: 45.5,
        skip: 0
      }
    ]
  }
  ```
  {% endcut %}

  {% endcut %}

  {% note info %}

  Reklama parametrlari bilan ma’lumotni alohida `beforeAdStart` hodisasi sifatida yuborish mumkin.

  {% endnote %}

  ||
  ||
  `adEnd`
  |
  Reklama namoyishi tugashi.
  |
  `time` — jarayon borishi panelining joriy holati, soniyalarda.

  ||
  ||
  `contentImpression`
  |
  Videoning birinchi kadrini ko‘rsatish.

  {% note info %}

  Agar video boshlanishidan oldin reklama chiqsa, hodisa tugaganidan keyin videoning birinchi kadri chiqqanida uni yuboring.

  {% endnote %}

  |

  `time` — jarayon borishi panelining joriy holati, soniyalarda.

  ||
  |#

- Qo‘shimcha hodisalar

  #|
  ||
  **Hodisa**
  |
  **Tavsif**
  |
  **Hodisa parametrlari**
  ||
  ||
  `rewound`
  |
  Videoni o‘tkazish.
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `previousTime` — jarayon borish panelining avvalgi holati, soniyalarda.
  ||
  ||
  `resumed`
  |
  Ijroni davom ettirish.
  |

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `duration` — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

  - `muted` — ovoz o‘chirilganlik belgisi, `0` yoki `1` qiymatini qabul qilishi mumkin.

  - `quality` — video sifati (mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`).

  {% note info %}

  `resumed` hodisasi `started` majburiy hodisasi bilan almashtirilishi mumkin.

  {% endnote %}

  ||
  ||
  `volumechange`
  |
  Ovozni yoqish, o‘chirish yoki ovoz balandligini o‘zgartirish.
  |

  - `volume` — [ovoz balandligining](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume) joriy qiymati (`0..1`).

  - `muted` — [muted](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/muted) belgisining joriy holati (`1`, `0`).

  `<video>` elementining [volumechange](https://developer.mozilla.org/en-US/docs/Web/Events/volumechange) mahalliy hodisasiga o‘xshash tarzda.

  ||
  ||
  `bufferingStarted`
  |
  Video/video qismini buferlash jarayonining boshlanishi.
  |
  - `size` — yuklanayotgan baytlar soni.

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `quality` — video sifati (mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`).
  ||
  ||
  `bufferingEnded`
  |
  Video qismi yuklanishi tugadi.
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.
  - `quality` — video sifati (mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`).
  ||
  ||
  `adSkip`
  |
  Reklamani o‘tkazib yuborish `adEnd` ni almashtirmaydi.
  |
  —
  ||
  ||
  `adSkippable`
  |
  Reklamani `skipAd` usuli bilan o‘tkazib yuborish mumkinligini bildiruvchi hodisa.
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `qualityList`
  |
  Mavjud sifat qiymatlari ro‘yxati.
  |
  `list` — video uchun sifat qiymatlari ro‘yxati (mavjud qiymatlar: `144`, `240`, `360`, `480`, `720`, `1080`, `1440`, `2160`).

  ||
  ||
  `qualityChange`
  |
  Video sifatini almashtirish.
  |
  - `quality` — video sifati (mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`).

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  ||
  ||
  `playbackRateChange`
  |
  Ijro etish tezligini almashtirish.
  |
  - `time` — jarayon borishi panelining joriy holati, soniyalarda.

  - `rate` — tezlanish/sekinlanish koeffitsiyenti.

  ||
  ||
  `fullscreen`
  |
  Pleyerni to‘liq ekran rejimiga o‘tishi yoki to‘liq ekran rejimidan chiqishi.
  |
  `enabled` — yoqilgan yoki yo‘q.

  ||
  ||
  `playerReady`
  |
  Pleyer yuklangan va interaktiv foydalanishga tayyor (pleyer ma’lumotlari va api yuklangan).
  |
  —
  ||
  ||
  `playbackRateChanged`
  |
  Video ijro etish tezligini almashtirish.
  |
  - `rate` — ijro etish tezligi `0..1`.

  - `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `controlsHidden`
  |
  Pleyer boshqaruv elementlarining dasturiy yashirinlik belgisi (vaqtinchalik yashirish emas, balki `hideControls` usuli orqali).
  |
  `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `controlsShown`
  |
  Pleyer boshqaruv elementlarini ko‘rsatish belgisi (vaqtinchalik namoyish emas, balki `showControls` usuli chaqiruviga javoban).
  |
  `time` — jarayon borishi panelining joriy holati, soniyalarda.
  ||
  ||
  `clickout`
  |
  Pleyerdan reklamaga, xizmatga tashqi o‘tish fakti.
  |
  - `source` — o‘tish turi. Mavjud qiymatlar:

    - `adv` — reklama bo‘yicha o‘tish.

    - `related` — pleyer ichidagi roliklar blokidan boshqa rolikka o‘tish.

    - `self` — xizmatdagi xuddi shu videoga logotipni bosish orqali o‘tish.

    - `unknown` — boshqa o‘tish.

  - `url` — o‘tilgan sahifa manzili.

  ||
  ||
  `sourceUpdated`
  |
  Bu tadbir freym ichidagi har qanday rolikni almashtirishda yuborilishi kerak (`iframe` elementi). Masalan, agar pleyer pleyerni qayta yaratmasdan API orqali videoni o‘zgartirish imkonini bersa, hodisa videoni almashtirish haqida signal beradi.
  |
  - `id` — rolik identifikatori.

  - `params` — videoning istalgan boshqa parametri.

  ||
  ||
  `fullscreenError`
  |
  To‘liq ekran rejimidan chiqishda yoki unga kirishda xatolik yuz berdi.
  |
  `message` — xatolik haqida xabar.
  ||
  ||
  `qualityList`
  |
  Mavjud sifat qiymatlari ro‘yxati.
  |
  `list` — mavjud qiymatlar: `small`, `medium`, `large`, `hd720`, `hd1080`, `highres`, `4K` yoki `default`.
  ||
  |#

{% endlist %}

{% cut "Video ishga tushirilganda ma’lumotlar uzatilishiga oid misol" %}

Foydalanuvchi pleyerda **Ijro etish** tugmasini bosganda kerakli parametrlarga ega `window.parent.postMessage` funksiyasi chaqiriladi.

```javascript
// Video ijro etilishi boshlanganda xabar yuborish
window.parent.postMessage({
  event: 'started',
  duration: 30,
  time: 5 // Ijro etish 5 soniyadan qayta boshansa
}, '*');
```

{% endcut %}

## Xatolar haqida ma’lumot {#errors}

Video bilan ishlashda xatoliklar haqida ma’lumot olish uchun pleyer `window.parent.postMessage` funksiyalariga quyidagi xatolik kodlarini yuborishi kerak:

#|
||
**Xato kodi**
|
**Tavsif**
||
|| **Ko‘rib bo‘lmaydigan video** | > ||
||
101
|
Video o‘chirilgan.
||
||
102
|
Video yoki hisob qaydnomasi bloklangan.
||
||
103
|
Video mavjud emas yoki URL qo‘llab-quvvatlanmaydi.
||
||
100
|
Ko‘rib bo‘lmaydigan videoning boshqa holatlari.
||
|| **Videorolikka kirishni cheklash** | > ||
||
151
|
Videorolikni tomosha qilish uchun yetarli huquq yo‘q.
||
||
152
|
Videoni boshqa saytlarda ijro etish taqiqlanadi.
||
||
153
|
Videoni ushbu mintaqada ijro etish taqiqlanadi.
||
||
154
|
Foydalanuvchidan tasdiqlashni talab qiluvchi kirishni cheklash (masalan, yosh bo‘yicha cheklash, avtorizatsiya).
||
||
155
|
Rolik mavjud emas, chunki xizmat so‘rovni robot deb hisobladi.
||
||
156
|
Rolik faqat obuna bilan mavjud.
||
||
150
|
Videoni tomosha qilishning boshqa cheklovlari.
||
|| **Boshqa** | > ||
||
5
|
Pleyer ishlamay qolishi (HTML-pleyerining ijro etilishi xatolar va boshqalar).
||
||
0
|
Boshqa xatolar.
||
|#


{% cut "Xatolik xabarini yuborishga misol" %}

Agar pleyerda ochiladigan video o‘chirib tashlangan bo‘lsa, xatolik xabari quyidagicha yuborilishi mumkin:

```javascript
// Xatolik haqida xabar yuborish
window.parent.postMessage({
  event: 'error',
  time: 0,
  code: '101'
}, '*');
```
{% endcut %}

## Pleyerning URL’sidagi parametrlarni qo‘llab-quvvatlash {#url-params}

Foydalanuvchilarga Smart TV va brauzerda video ijro etish qulayroq bo‘lishi uchun pleyer URL manziliga quyidagi parametrlarni dastaklashni qo‘shing:

#|
||
**Parametr**
|
**Tavsif**
|
**Mavjud qiymatlar**
||
||
`autoplay`
|
Avtomatik ijro etish.
|
- `1` — video avtomatik ravishda ijro etilishini boshlash.

- `0` (yoki parametr yo‘qligi) — video avtomatik ijrosi boshlanmasin.

{% cut "Misol" %}

  ```javascript
  <iframe 
    src="//www.videohosting.com/video?autoplay=1">
  </iframe> 
  ```
{% endcut %}
||
||
`tv`
|
Smart TV qurilmalaridagi pleyerning interaktiv elementlari aks ettirilishini boshqarish.
|
- `1` — video ijro etilayotganda interaktiv elementlarni avtomatik ravishda yashirish.

- `0` (yoki parametr yo‘qligi) — video ijro etilayotganda interaktiv elementlar avtomatik ravishda yashirilmasin.

{% cut "Misol" %}

  ```javascript
  <iframe
    src="//www.videohosting.com/video?tv=1">
  </iframe> 
  ```

{% endcut %}

Parametr barcha elementlar aks ettirilishini nazorat qiladi, uni faqat sichqoncha kursori bilan bosish mumkin. Ularga quyidagilar kiradi:

- jarayon paneli; 

- mavsumlar va seriyalarning yuqoridan tushadigan ro‘yxati; 

- ijro sifatini tanlash tugmalari; 

- ijroni boshqarish menyusi va boshqalar.

Televizorlarda ushbu elementlar avtomatik ravishda yashirilgan bo‘lsa, videolarni tomosha qilish qulayroq bo‘ladi.
||
||
`mute`
|
Videoni ovozi o‘chirilgan holida yuklash.
|
- `1` — foydalanuvchining o‘zi yoqmaguncha videodagi ovozni yoqmaslik.

- `0` (yoki parametrning yo‘qligi) — pleyerdagi tovushning harakati xosting ixtiyoriga bog‘liq, imkon bo‘lsa, videoni ovozi bilan ijro etish mumkin.
||
||
`controls`
|
Pleyerda boshqaruv elementlarini ko‘rsatish kerakmi (jarayon paneli, sifatni almashtirish va b.).
|
- `1` (yoki parametrning yo‘qligi) — pleyerning barcha boshqaruv elementlarini ko‘rsatish.

- `0` — pleyerning boshqaruv elementlari ko‘rsatilmasin.

||
||
`t`
|
Videoni ijro etishni boshlash uchun vaqt belgisi.
|
`[number]` — soniyalar soni.

{% cut "Misol" %}

Misolda video ijro 10:00 dan boshlanadi (600 c = 10 daqiqa).

```
<iframe
  src="//www.videohosting.com/video?t=600">
</iframe>
```

{% endcut %}

||
|#

## Pleyerni boshqarish {#control-player}

Pleyerni boshqarish buyruqlari tashqi oynadan `iframe`ga [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) mexanizmi yordamida uzatiladi. `iframe` ichidagi hodisalarni qabul qilish uchun `message` hodisasiga obuna bo‘ling. Buyruqlar `method` majburiy maydoniga ega bo‘lgan JSON obyektidan iborat.

#|
||
**Buyruq**
|
**Tavsif**
||
||
`play`
|
Ijro etishni boshlash yoki davom ettirish.

{% cut "Misol" %}

```javascript
{
    method: 'play'
} 
```
{% endcut %}

||
||
`pause`
|
Pauza.

{% cut "Misol" %}

```javascript
{
    method: 'pause'
} 
```
{% endcut %}

||
||
`seek`
|
Vaqtning mutlaq qiymatiga o‘tkazish.

{% cut "Misol" %}

```javascript 
{
     method: 'seek',
     time: 10, // vaqt soniyalarda
} 
```
{% endcut %}
||
||
`setVolume`
|
Tovush balandligini o‘rnatish.

{% cut "Misol" %}

```javascript
{
     method: 'setVolume',
     volume: 0.5 // tovush balandligi 0..1
} 
```
{% endcut %}
||
||
`showControls`
|
Pleyer boshqaruv elementlarini majburiy ko‘rsatish.

{% cut "Misol" %}

```javascript
{
    method: 'showControls'
} 
```
{% endcut %}
||
||
`skipAd`
|
Reklamani o‘tkazib yuborish usuli.

{% cut "Misol" %}

```javascript
{
     method: 'skipAd',
} 
```
{% endcut %}
||
||
`setPlaybackRate`
|
Video ijro etish tezligini o‘rnatish.

{% cut "Misol" %}

```javascript
{
     method: 'setPlaybackRate',
     rate: 0.5 // ijro tezligi  0..1
} 
```
{% endcut %}
||
||
`mute`
|
Ovozni o‘chirish.

{% cut "Misol" %}

```javascript 
{
     method: 'mute'
} 
```
{% endcut %}
||
||
`unmute`
|
Ovozni yoqish.

{% cut "Misol" %}

```javascript
{
     method: 'unmute'
} 
```
{% endcut %}
||
||
`setQuality`
|
Ijro etish sifatini o‘rnatish.

{% cut "Misol" %}

```javascript
{
     method: 'setQuality',
     quality: '720' // 144, 240, 360, 480, 720, 1080, 1440, 2160 yoki auto
} 
```
`auto` parametri pleyerga optimal sifatni mustaqil ravishda aniqlash imkonini beradi. U standart qiymatdan foydalanishi yoki ulanish tezligi va foydalanuvchi qurilmasining parametrlarini hisobga olgan holda eng mos sifatni tanlashi mumkin.

{% endcut %}

||
||
`updateSource`
|
Barcha `iframe` qiymatini qayta chizmasdan pleyer ichidagi videoni almashtirish usuli.

`params` — navbatdagi rolikni yuklash parametrlari.

{% cut "Misol" %}

```javascript
{
  method: 'updateSource',
  data: {
    id: 'some_id',
    params: {},
  }
}
```
{% endcut %}

||
||
`preload`
|
Videoni ijro etishdan oldin buferlashni boshlashni chaqirish usuli.

{% cut "Misol" %}

```javascript
{
  method: 'preload'
}
```
{% endcut %}

||
||
`requestFullscreen`
|
To‘liq ekran rejimini ochish uchun usul.

{% cut "Misol" %}

```javascript
{
  method: 'requestFullscreen'
}
```
{% endcut %}

||
||
`exitFullscreen`
|
To‘liq ekran rejimidan chiqish uchun usul.

{% cut "Misol" %}

```javascript
{
  method: 'exitFullscreen'
}
```
{% endcut %}

||
||
`hideControls`
|
Pleyerning boshqaruv elementlarini berkitish.

{% cut "Misol" %}

```javascript
{
    method: 'hideControls'
} 
```
{% endcut %}

||
|#

{% cut "Buyruq orqali videoni ishga tushirish misoli" %}

```javascript
window.addEventListener('message', function (event) {
     if (event.data.method === 'play') {
         document.getElementById('video').play();
     }
});
```
{% endcut %}

### Javob formati {#control-player}

Buyruqlarni bajarish haqida fikr-mulohaza bildirish uchun video holati haqida xabar beruvchi [hodisalardan](#events) foydalaning.

Masalan:

- Agar `skipAd` usuli chaqirilsa va reklama muvaffaqiyatli o‘tkazib yuborilsa, `adSkip` hodisasi yaratiladi, agar muammo yuzaga kelsa, hodisa yuborilmaydi. 

- `setPlaybackRate` usulidan foydalanilganda, bunga javoban `playbackRateChanged` hodisasi yuzaga keladi. 

Smart TV ekranida video xatosiz ko‘rsatilishi uchun har bir usul uchun javob hodisasi bo‘lishi shart.

<!-- source: uz/_includes/form-webmaster.md -->
<details>
<summary class="button">Yordam xizmatiga yozish</summary>

<br>
<br>

<div style="padding: 15px;
     margin: 10px 0;
     background: #FFFFFF;
     border-radius: 10px;
     border: 1px solid var(--g-color-line-generic);">
  <iframe style="background: #FFFFFF;"
        height="700"
        width="100%"
        frameborder="0"
        src="https://forms.yandex.ru/surveys/1858/?&iframe=1&lang=uz">
  </iframe>
</div>
</details>




<!-- endsource: uz/_includes/form-webmaster.md -->

<!-- source: uz/_includes/style/no-bg-inside-table.md -->

<!-- endsource: uz/_includes/style/no-bg-inside-table.md -->
