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

Потоки (воспроизводимый контент)

Теперь у вас есть каталоги и метаданные. Добавим потоки — реальные источники видео.

Потоки — это ссылки на медиаресурсы. Они не содержат видео, а сообщают EMET Surf, где его воспроизвести.

Обновляем манифест

Добавьте "stream" в ресурсы:

{
"id": "my.first.emet.addon",
"version": "1.0.0",
"name": "Hello, World",
"description": "My first EMET Surf add-on",
"logo": "https://example.com/logo-256.png",
"resources": [
"catalog",
{"name": "meta", "types": ["movie"], "idPrefixes": ["hiwrld_"]},
"stream"
],
"types": ["movie"],
"catalogs": [{"id": "movieCatalog", "type": "movie", "name": "Hello, Movies"}]
}

Структура папок

Windows:

mkdir stream
mkdir stream\movie

macOS/Linux:

mkdir -p stream/movie

Структура:

my-emet-addon/
├── manifest.json
├── catalog/
│ └── movie/
│ └── movieCatalog.json
├── meta/
│ └── movie/
│ └── hiwrld_jellyfish.json
└── stream/
└── movie/
├── tt0032138.json
├── tt0017136.json
└── hiwrld_jellyfish.json

Примеры потоков

Торрент поток (stream/movie/tt0032138.json):

{
"streams": [
{"title": "Torrent - HD", "infoHash": "1588987DB4C7D98F74FB436AD8FEDE1CBE9F1F63"}
]
}

Прямой URL (stream/movie/tt0017136.json):

{
"streams": [
{"title": "Direct - HD", "url": "https://example.com/metropolis-hd.mp4"}
]
}

Несколько качеств (stream/movie/hiwrld_jellyfish.json):

{
"streams": [
{"title": "Web - 3 Mbps HD", "url": "http://jell.yfish.us/media/jellyfish-3-mbps-hd-h264.mkv"},
{"title": "Web - 15 Mbps HD", "url": "http://jell.yfish.us/media/jellyfish-15-mbps-hd-h264.mkv"},
{"title": "Web - 120 Mbps 4K", "url": "http://jell.yfish.us/media/jellyfish-120-mbps-4k-uhd-h264.mkv"}
]
}

Типы потоков:

{"title": "Direct", "url": "https://example.com/movie.mp4"}
{"title": "Torrent", "infoHash": "1588987DB4C7D98F74FB436AD8FEDE1CBE9F1F63"}
{"title": "External", "externalUrl": "https://example.com/stream"}

Правила:

  • Всегда возвращайте валидный ответ. Если потоков нет — {"streams": []}
  • Можно возвращать несколько потоков для одного элемента
  • Давайте понятные названия потокам

Тестирование

  1. Обновите манифест
  2. Создайте файлы потоков
  3. Переустановите дополнение
  4. Проверьте, что в UI появились варианты воспроизведения