Трансляции богослужений для вашего сайта — открытый доступ
Вступление
Синодальная комиссия по делам монастырей Украинской Православной Церкви ведёт перечень прямых трансляций богослужений с официальных каналов обителей. Эти же данные мы отдаём любому сайту, который хочет показывать богослужения у себя: приходскому, епархиальному, монастырскому, сайту православной общины за рубежом. Бесплатно, без регистрации, без ключей и без договоров.
Причина простая. Человек, который ищет службу онлайн, чаще всего приходит не на общий портал, а на сайт своего прихода — и именно там должен увидеть, где сейчас идёт богослужение. Держать для этого собственный перечень каналов приходу не под силу; нам, наоборот, это не стоит ничего, потому что перечень уже ведётся.
Что именно мы отдаём
Две подборки, каждая на трёх языках — украинском, русском и английском.
Что транслируется прямо сейчас — встроенные плееры тех богослужений, которые идут в эту минуту. Когда эфира нет, подборка пуста, и это нормальное ожидаемое состояние, а не ошибка: большинство обителей служит по своему расписанию, а не круглосуточно.
Перечень каналов — иконка, название обители, епархия и область, ссылка на канал. Годится как самостоятельный раздел «Богослужения онлайн» на вашем сайте.
Данные обновляются примерно раз в десять минут.
Способ первый — одна строка
Проще всего. Вставьте эту строку туда, где должен появиться блок:
<script src="https://inok.info/api/embed.js" data-type="live" data-lang="ru" 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=ru&format=html
Ответ — чистый фрагмент: в нём нет ни <html>, ни <head>, ни собственных стилей или скриптов. Он наследует оформление вашей страницы, поэтому выглядит как её часть, а не как чужая вставка. Вставьте его на стороне сервера:
<?php
echo file_get_contents('https://inok.info/api/live/?type=live&lang=ru&format=html');
JSON
https://inok.info/api/live/?type=live&lang=ru&format=json
{
"version": 1,
"type": "live",
"lang": "ru",
"generated_at": "2026-08-16T02:40:05+00:00",
"count": 1,
"source": "https://inok.info/live/?lang=ru",
"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_ru.php
https://inok.info/local/templates/skm1c/php/html_blocks/html_live_out_channels_ru.php
Замените ru на uk или 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", и это навсегда. Так требуют правила поисковых систем для ссылок, распространяемых через вставные блоки. Не убирайте этот атрибут — иначе вы подвергаете риску и свой сайт, и наш. - Состав подборки меняется, гарантий бесперебойности мы не даём. Обители добавляются, трансляции начинаются и заканчиваются, пустой ответ является штатным состоянием. Не полагайтесь на постоянное количество позиций и не сохраняйте ответ как неизменный файл — берите его каждый раз.
Куда дальше
Сама страница трансляций — Богослужения онлайн. Кто мы и зачем ведём этот перечень — о Комиссии. Справочник обителей УПЦ с картой и контактами — монастыри.
Если ваш монастырь транслирует богослужения, а его канала в перечне нет, или что-то не работает — напишите нам: контакты.