Вступ

Синодальна комісія у справах монастирів Української Православної Церкви веде перелік прямих трансляцій богослужінь з офіційних каналів обителей. Ці ж дані ми віддаємо будь-якому сайтові, який хоче показувати богослужіння в себе: парафіяльному, єпархіальному, монастирському, сайту православної громади за кордоном. Безкоштовно, без реєстрації, без ключів і без договорів.

Ми робимо це з простої причини. Людина, яка шукає службу онлайн, найчастіше приходить не на загальний портал, а на сайт своєї парафії — і саме там має побачити, де зараз іде богослужіння. Тримати для цього власний перелік каналів парафії не під силу; нам, навпаки, це коштує нічого, бо перелік уже ведеться.

Що саме ми віддаємо

Дві добірки, кожна трьома мовами — українською, російською та англійською.

Що транслюється просто зараз — вбудовані плеєри тих богослужінь, які йдуть у цю хвилину. Коли ефіру немає, добірка порожня, і це нормальний очікуваний стан, а не помилка: більшість обителей служить за своїм розкладом, а не цілодобово.

Перелік каналів — іконка, назва обителі, єпархія та область, посилання на канал. Придатний як самостійний розділ «Богослужіння онлайн» на вашому сайті.

Дані оновлюються приблизно раз на десять хвилин.

Спосіб перший — один рядок

Найпростіше. Вставте цей рядок у те місце сторінки, де має з'явитися блок:

<script src="https://inok.info/api/embed.js" data-type="live" data-lang="uk" async></script>

Скрипт сам створить контейнер одразу після себе і завантажить у нього трансляції. Він не використовує document.write, нічого не додає у <head>, не створює глобальних змінних, не ставить кук і не збирає жодної статистики. Два таких рядки на одній сторінці не конфліктують між собою.

Налаштування — через атрибути data-:

АтрибутЗначенняТипово
data-typelive (зараз в ефірі) або channels (перелік каналів)live
data-languk, ru, enuk
data-limit1–50, скільки позицій показатиусі
data-refreshперіод оновлення в секундах, не менше 60без оновлення
data-attribution0 прибирає рядок про джерело з блоку1

Значення поза допустимим діапазоном (data-limit поза 1–50, data-refresh менший за 60) не спричиняє помилки — параметр просто діє як типовий.

Оновлення зупиняється, поки вкладку не видно, і відновлюється, коли читач до неї повертається. Якщо наш сервер недоступний, у контейнері з'явиться звичайне текстове посилання на сторінку трансляцій — сторінка не залишиться з порожньою дірою.

Зверніть увагу: data-attribution="0" прибирає рядок із блоку, і тоді посилання на джерело ви розміщуєте самі — див. «Умови використання», п. 1.

Спосіб другий — запит до /api/live/

Якщо ви будуєте оформлення самі, беріть дані напряму:

https://inok.info/api/live/

Відповідь можна отримати готовим HTML, у JSON або JSONP. Запит анонімний, метод GET (а також HEAD і OPTIONS); ключі та реєстрація не потрібні. Заголовок Access-Control-Allow-Origin: * присутній, тому адресу можна завантажувати просто з браузера — fetch, XMLHttpRequest, будь-яка бібліотека.

Параметри

ПараметрЗначенняТипово
typelive, channelslive
languk, ru, enuk
formathtml, json, jsonphtml
callbackім'я функції; тільки разом із format=jsonp
limitціле 1–50усі позиції
idномери каналів через кому, не більше 20усі
attribution1, 0 — рядок про джерело у форматі html1
themenone, light, dark — додає один клас-обгорткуnone
pretty1, 0 — форматований JSON0

Невідомі параметри просто ігноруються. Хибне значення дає відповідь 400 з поясненням у JSON, наприклад:

{"error":"bad_parameter","parameter":"limit","allowed":["integer 1-50"]}

Порожня добірка — це 200 і "count": 0, а не 404: відсутність ефіру не є помилкою. Запит методом POST, PUT чи DELETE отримує 405 — писати сюди нічого не можна, доступ лише на читання.

Готовий HTML

https://inok.info/api/live/?type=live&lang=uk&format=html

Відповідь — чистий фрагмент: у ньому немає ні <html>, ні <head>, ні власних стилів чи скриптів. Він успадковує оформлення вашої сторінки, тож виглядає як її частина, а не як чужа вставка. Вставте його на боці сервера:

<?php
echo file_get_contents('https://inok.info/api/live/?type=live&lang=uk&format=html');

JSON

https://inok.info/api/live/?type=live&lang=uk&format=json

{
  "version": 1,
  "type": "live",
  "lang": "uk",
  "generated_at": "2026-08-16T02:40:05+00:00",
  "count": 1,
  "source": "https://inok.info/live/?lang=uk",
  "attribution": { "text": "…", "url": "…", "rel": "nofollow", "html": "…" },
  "items": [
    {
      "id": 1686,
      "title": "Пряма трансляція богослужіння † Свято-Успенська Почаївська Лавра",
      "name": "Почаївська Успенська Лавра",
      "eparchy": "Київська",
      "region": "Тернопільська",
      "channel_url": "https://www.youtube.com/channel/…",
      "image": "https://inok.info/images/live/1686/channel/ico150.webp",
      "video_id": "…",
      "embed_url": "https://www.youtube-nocookie.com/embed/…",
      "html": "…"
    }
  ]
}

Поле html кожної позиції — це той самий фрагмент, який віддає format=html, тож можна взяти або готове оформлення, або самі поля. У переліку каналів (type=channels) поля title, video_id та embed_url порожні (null): каналові не відповідає окремий ефір.

Кешування

Відповідь супроводжується заголовками Cache-Control: public, max-age=300 та ETag. Якщо ви надішлете отриманий ETag назад у заголовку If-None-Match, сервер відповість 304 без тіла — це найдешевший спосіб перевіряти оновлення часто. Тримати власну копію близько п'яти хвилин цілком достатньо: частіші запити нічого не додадуть.

Спосіб третій — сталі адреси фрагментів

Ті самі дві добірки віддаються за окремими сталими адресами. Ми тримаємо їх незмінними для сайтів, які вставили їх раніше, і не плануємо змінювати:

https://inok.info/local/templates/skm1c/php/html_blocks/html_live_out_uk.php
https://inok.info/local/templates/skm1c/php/html_blocks/html_live_out_channels_uk.php

Замініть uk на ru або en. Вміст цих адрес збігається байт у байт із відповіддю /api/live/?format=html. Для нової вставки зручніший перший або другий спосіб — там є вибір мови, обмеження кількості та фільтр за каналом.

Класи оформлення

Стилізувати можна повністю своїми правилами — ми не надсилаємо жодного CSS.

Поточні трансляції: html-live-block, html-live-description, html-live-title, html-live-location, html-live-video, youtube-live-block.

Перелік каналів: html-end-live-block, html-end-live-img, html-end-live-description, html-end-live-title, html-end-live-name, html-end-live-location.

В обох добірках рядок про джерело: html-live-attribution. Параметр theme=light або theme=dark додає навколо всього блоку клас api-live-theme-light / api-live-theme-dark — гачок для вашого стилю, власного оформлення він не приносить.

Іконки каналів завантажуються з inok.info; окремо копіювати їх не потрібно.

Умови використання

Ми не просимо ні реєстрації, ні оплати, ні листа-погодження. Умови вичерпуються цими п'ятьма пунктами.

  1. Рядок про джерело залишається видимим. Разом із даними приходить рядок «Джерело трансляцій: inok.info». Він має лишатися присутнім, читабельним і помітним для людини — розміром і контрастом порівнянно з текстом навколо. Це єдина форма подяки, якої ми просимо, і єдина умова, яку ставимо. Якщо вам потрібно прибрати його з блоку (attribution=0 чи data-attribution="0"), розмістіть поруч власне видиме посилання на inok.info — це припустимо і чесніше, ніж вирізати нашу розмітку.
  2. Використання вільне, зокрема комерційне. Дозволено показувати, перетворювати оформлення та поширювати далі, зокрема на сайтах, які мають рекламу чи інший дохід. Умова та сама, що в пункті 1, — збережене посилання на джерело. За зразок узято правило про зазначення авторства ліцензії CC BY 4.0.
  3. Ми ліцензуємо власну добірку, а не самі трансляції. Нам належать перелік, опис і розмітка, які ми віддаємо. Права на самі богослужбові трансляції належать обителям та їхнім каналам, і показ відео відбувається програвачем YouTube на умовах цього сервісу. Ми не можемо і не намагаємося передати вам права на чуже відео.
  4. Посилання на джерело має атрибут rel="nofollow", і це назавжди. Так вимагають правила пошукових систем для посилань, що поширюються через вставні блоки. Не прибирайте цей атрибут — інакше ви наражаєте на ризик і свій сайт, і наш.
  5. Склад добірки змінюється, гарантій безперебійності ми не даємо. Обителі додаються, трансляції починаються й закінчуються, порожня відповідь є штатним станом. Не покладайтеся на сталу кількість позицій і не зберігайте відповідь як незмінний файл — беріть її щоразу.

Куди далі

Сама сторінка трансляцій — Богослужіння онлайн. Хто ми і навіщо ведемо цей перелік — про Комісію. Довідник обителей УПЦ з картою і контактами — монастирі.

Якщо ваш монастир транслює богослужіння, а його каналу в переліку немає, або щось не працює — напишіть нам: контакти.