Трансляції богослужінь для вашого сайту — відкритий доступ
Вступ
Синодальна комісія у справах монастирів Української Православної Церкви веде перелік прямих трансляцій богослужінь з офіційних каналів обителей. Ці ж дані ми віддаємо будь-якому сайтові, який хоче показувати богослужіння в себе: парафіяльному, єпархіальному, монастирському, сайту православної громади за кордоном. Безкоштовно, без реєстрації, без ключів і без договорів.
Ми робимо це з простої причини. Людина, яка шукає службу онлайн, найчастіше приходить не на загальний портал, а на сайт своєї парафії — і саме там має побачити, де зараз іде богослужіння. Тримати для цього власний перелік каналів парафії не під силу; нам, навпаки, це коштує нічого, бо перелік уже ведеться.
Що саме ми віддаємо
Дві добірки, кожна трьома мовами — українською, російською та англійською.
Що транслюється просто зараз — вбудовані плеєри тих богослужінь, які йдуть у цю хвилину. Коли ефіру немає, добірка порожня, і це нормальний очікуваний стан, а не помилка: більшість обителей служить за своїм розкладом, а не цілодобово.
Перелік каналів — іконка, назва обителі, єпархія та область, посилання на канал. Придатний як самостійний розділ «Богослужіння онлайн» на вашому сайті.
Дані оновлюються приблизно раз на десять хвилин.
Спосіб перший — один рядок
Найпростіше. Вставте цей рядок у те місце сторінки, де має з'явитися блок:
<script src="https://inok.info/api/embed.js" data-type="live" data-lang="uk" async></script>
Скрипт сам створить контейнер одразу після себе і завантажить у нього трансляції. Він не використовує document.write, нічого не додає у <head>, не створює глобальних змінних, не ставить кук і не збирає жодної статистики. Два таких рядки на одній сторінці не конфліктують між собою.
Налаштування — через атрибути data-:
| Атрибут | Значення | Типово |
|---|---|---|
data-type | live (зараз в ефірі) або channels (перелік каналів) | live |
data-lang | uk, ru, en | uk |
data-limit | 1–50, скільки позицій показати | усі |
data-refresh | період оновлення в секундах, не менше 60 | без оновлення |
data-attribution | 0 прибирає рядок про джерело з блоку | 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, будь-яка бібліотека.
Параметри
| Параметр | Значення | Типово |
|---|---|---|
type | live, channels | live |
lang | uk, ru, en | uk |
format | html, json, jsonp | html |
callback | ім'я функції; тільки разом із format=jsonp | — |
limit | ціле 1–50 | усі позиції |
id | номери каналів через кому, не більше 20 | усі |
attribution | 1, 0 — рядок про джерело у форматі html | 1 |
theme | none, light, dark — додає один клас-обгортку | none |
pretty | 1, 0 — форматований JSON | 0 |
Невідомі параметри просто ігноруються. Хибне значення дає відповідь 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; окремо копіювати їх не потрібно.
Умови використання
Ми не просимо ні реєстрації, ні оплати, ні листа-погодження. Умови вичерпуються цими п'ятьма пунктами.
- Рядок про джерело залишається видимим. Разом із даними приходить рядок «Джерело трансляцій: inok.info». Він має лишатися присутнім, читабельним і помітним для людини — розміром і контрастом порівнянно з текстом навколо. Це єдина форма подяки, якої ми просимо, і єдина умова, яку ставимо. Якщо вам потрібно прибрати його з блоку (
attribution=0чиdata-attribution="0"), розмістіть поруч власне видиме посилання наinok.info— це припустимо і чесніше, ніж вирізати нашу розмітку. - Використання вільне, зокрема комерційне. Дозволено показувати, перетворювати оформлення та поширювати далі, зокрема на сайтах, які мають рекламу чи інший дохід. Умова та сама, що в пункті 1, — збережене посилання на джерело. За зразок узято правило про зазначення авторства ліцензії CC BY 4.0.
- Ми ліцензуємо власну добірку, а не самі трансляції. Нам належать перелік, опис і розмітка, які ми віддаємо. Права на самі богослужбові трансляції належать обителям та їхнім каналам, і показ відео відбувається програвачем YouTube на умовах цього сервісу. Ми не можемо і не намагаємося передати вам права на чуже відео.
- Посилання на джерело має атрибут
rel="nofollow", і це назавжди. Так вимагають правила пошукових систем для посилань, що поширюються через вставні блоки. Не прибирайте цей атрибут — інакше ви наражаєте на ризик і свій сайт, і наш. - Склад добірки змінюється, гарантій безперебійності ми не даємо. Обителі додаються, трансляції починаються й закінчуються, порожня відповідь є штатним станом. Не покладайтеся на сталу кількість позицій і не зберігайте відповідь як незмінний файл — беріть її щоразу.
Куди далі
Сама сторінка трансляцій — Богослужіння онлайн. Хто ми і навіщо ведемо цей перелік — про Комісію. Довідник обителей УПЦ з картою і контактами — монастирі.
Якщо ваш монастир транслює богослужіння, а його каналу в переліку немає, або щось не працює — напишіть нам: контакти.