Вступление

Синодальная комиссия по делам монастырей Украинской Православной Церкви ведёт перечень прямых трансляций богослужений с официальных каналов обителей. Эти же данные мы отдаём любому сайту, который хочет показывать богослужения у себя: приходскому, епархиальному, монастырскому, сайту православной общины за рубежом. Бесплатно, без регистрации, без ключей и без договоров.

Причина простая. Человек, который ищет службу онлайн, чаще всего приходит не на общий портал, а на сайт своего прихода — и именно там должен увидеть, где сейчас идёт богослужение. Держать для этого собственный перечень каналов приходу не под силу; нам, наоборот, это не стоит ничего, потому что перечень уже ведётся.

Что именно мы отдаём

Две подборки, каждая на трёх языках — украинском, русском и английском.

Что транслируется прямо сейчас — встроенные плееры тех богослужений, которые идут в эту минуту. Когда эфира нет, подборка пуста, и это нормальное ожидаемое состояние, а не ошибка: большинство обителей служит по своему расписанию, а не круглосуточно.

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

Данные обновляются примерно раз в десять минут.

Способ первый — одна строка

Проще всего. Вставьте эту строку туда, где должен появиться блок:

<script src="https://inok.info/api/embed.js" data-type="live" data-lang="ru" 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=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; копировать их отдельно не нужно.

Условия использования

Мы не просим ни регистрации, ни оплаты, ни письма-согласования. Условия исчерпываются этими пятью пунктами.

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

Куда дальше

Сама страница трансляций — Богослужения онлайн. Кто мы и зачем ведём этот перечень — о Комиссии. Справочник обителей УПЦ с картой и контактами — монастыри.

Если ваш монастырь транслирует богослужения, а его канала в перечне нет, или что-то не работает — напишите нам: контакты.