Перейти к основному содержимому

Основы

Дополнения — это сердце EMET Surf. Они предоставляют весь видимый контент: фильмы, сериалы и другой медиа‑контент. Думайте о них как о провайдерах, которые сообщают приложению, что доступно и где это найти.

В отличие от некоторых приложений, дополнения EMET Surf не запускаются на вашем компьютере. Они размещаются в интернете как веб‑сайты. Это безопаснее и проще: ничего не нужно устанавливать локально.

Важно: если ваше дополнение отдаётся по HTTP, вы обязаны выставлять заголовки CORS, чтобы приложение могло обращаться к нему.

Философия дополнений

  • Дополнения предназначены для интеграции существующих источников контента в EMET Surf, а не для конкуренции с ними
  • Вы не загружаете контент в дополнение, как на YouTube — вы ссылаетесь на уже существующий контент
  • Дополнения помогают пользователям открывать и смотреть контент из разных источников в одном месте

Манифест

Каждое дополнение следует API дополнений, и его ключевая часть — манифест.

Манифест — это JSON‑файл, описывающий возможности вашего дополнения: какие типы контента оно предоставляет, какие функции поддерживает и как им пользоваться.

Структура медиа

Дополнения организуют контент в понятную древовидную структуру:

Catalog
+-- Type (movie, series, etc.)
+-- Meta Item (specific movie/show)
+-- Videos (episodes for series)
+---+-- Streams (where to play the content)

Как это работает:

  • Каталоги — коллекции контента (например, «Боевики» или «Популярные сериалы»)
  • Типы определяют вид контента (фильмы, сериалы, каналы, live TV)
  • Метаданные — это конкретные фильмы, шоу или видео
  • Видео — это эпизоды (для сериалов) или отдельные ролики
  • Потоки — это указатели на реальные источники медиа

Ресурсы

Чтобы EMET Surf показал ваш контент, ему нужно знать, где его запрашивать. Вы указываете это в манифесте в виде списка ресурсов, которые предоставляет дополнение.

Каждый ресурс доступен по определённому URL‑эндпоинту, на который ваше дополнение отвечает соответствующими данными.

РесурсЭндпоинтОписание
manifest/manifest.jsonОписание дополнения и его возможности
catalogs/catalog/Списки контента по типам. Отображаются в интерфейсе для просмотра
metadata/meta/Подробная информация об элементе (фильме, шоу и т. п.)
streams/stream/Где воспроизводить медиаконтент (URL, torrent‑хэши и др.)
subtitles/subtitles/Субтитры для выбранного медиа (опционально)

Вы можете реализовать эти ресурсы любым способом:

  • Статические JSON‑файлы на сервере
  • Динамические скрипты, генерирующие данные
  • Запросы к базе данных
  • API‑вызовы к другим сервисам

В этом руководстве мы используем статические JSON‑файлы — это проще для обучения. Вы можете адаптировать подход под любую технологию.

Итоги

Теперь вы понимаете:

  • Как работают дополнения и почему они размещаются онлайн
  • Древовидную структуру организации контента
  • Разные ресурсы и их назначение
  • Ключевые возможности дополнений EMET Surf

Вы готовы начинать! Далее создадим первый манифест.