HTTP API - получение информации о текущем канале

Здравствуйте! Подскажите, пожалуйста, есть ли соответствующий метод HTTP API для получения информации о работающем в данный момент канале?
Например, id, infohash или название?
Интересует что-то типа: http://127.0.0.1:6878/webui/api/service?method=get_current_channel_info&format=jsonp

Для НТТР АПИ нет, в данном случае нужно использовать Search АПИ - Search API - Ace Stream Wiki (см. на “status” и “availability”) - т.е CID со статусом “2” и “avail” 1 - “рабочий” на момент последнего обновления поисковой базы (подобный канал будет отображен в Р2Р поиске и отмечен зеленой иконкой). “Рабочий” в данном случае не гарантирует, что вместо собственно контента там не будет какой-нить “заглушки”.

Или я неправильно понял вопрос и под “работающим” подразумевается “канал, который уже воспроизводится в данный момент”?

Да, я имел в виду такую ситуацию: на ПК работает ace_engine и на этом же ПК в vlc-плеере или каком-либо другом плеере воспроизводится канал.
Так вот, есть ли в HTTP API какой-либо метод, в результате которого можно получить данные об этом канале: infohash, id, название?

Простого метода нет. На данный момент данные о сессии можно получить только по ссылке “stat_url”, которая возвращается в ответ на запуск сессии. И ссылка эта “жива” столько, сколько активна сессия. Основные данные, которые отдаеются по этой ссылке, описаны здесь: Engine HTTP API - Ace Stream Wiki (названия канала и content id там нет).
В текущих версиях выдается infohash, и по нему можно вытянуть названия с помощью метода get_media_files.

Цепочка запросов для примера:

  1. запуск сессии

http://127.0.0.1:6878/ace/getstream?id=afeeb4c9336716ed180d0056e71bef27284c0116&format=json
{
  "response": {
    "stat_url": "http://127.0.0.1:6878/ace/stat/5d78090bf52eaa1c042da9b191c487cea4a0219a/f528764d624db129b32c21fbca0cb8d6",
    "infohash": "5d78090bf52eaa1c042da9b191c487cea4a0219a",
    ...
  },
  "error": null
}

  1. получаем информацию о сессии:

http://127.0.0.1:6878/ace/stat/5d78090bf52eaa1c042da9b191c487cea4a0219a/f528764d624db129b32c21fbca0cb8d6
{
  "response": {
    "infohash": "5d78090bf52eaa1c042da9b191c487cea4a0219a",
    ...
  },
  "error": null
}

  1. получаем название по infohash:

http://127.0.0.1:6878/server/api/?method=get_media_files&infohash=5d78090bf52eaa1c042da9b191c487cea4a0219a&api_version=3
{
  "result": {
    "files": [
      {
        "index": 0,
        "filename": "1+1"
      }
    ],
    "infohash": "5d78090bf52eaa1c042da9b191c487cea4a0219a",
    "name": "1+1"
  }
}

При наличии infohash и цели получить название канала все упрощается до примера из п. 3.

Понятно. Но здесь один минус - нужно уже знать id, чтобы выполнить первый запрос… А задача такая, что не зная id, infohash или имя получить данные о текущей сессии.

Но спасибо за ответ! :wink:

Проблема в том, что “текущая сессия” может быть далеко не одна.
В планах есть добавить в АПИ метод для чего-нить вроде “вывести список активных сессий”, но это пока только планы.

Benny, а подскажите, пожалуйста, ещё такое - можно ли получить информацию о видео-кодеке и аудио-кодеке трансляции, зная infohash?
Какой запрос на 127.0.0.1:6878 нужно для этого сформировать?

Это тоже через сессию делается см. Engine HTTP API - Ace Stream Wiki

ОК. Написано, что для того, чтобы получить ссылку на event нужно в запрос включать параметр use_api_events=1.

Итак, в плеере воспроизводится канал с infohash = 1eb03a5674f01828bfbe6a8967617eabd3973f23

Делаю такой запрос:
http://127.0.0.1:6878/ace/getstream?infohash=1eb03a5674f01828bfbe6a8967617eabd3973f23&use_api_events=1&format=json

В результате получаю ответ:

Ссылки на “event_url” - нет. Кстати, во время отправки вышеуказанного запроса где-то через 10 секунд текущий канал переключается на следующий по плейлисту… :thinking:
Что не так?

А в какой версии на какой платформе это проверялось?

Нужно будет уточнить у разработчиков, но в целом - сначала нужно смотреть лог файл при этом - не исключено, что “переключение” никак не связано с.

Win7 x64, Ace Stream 3.1.32

Сегодня установил Ace Stream 3.1.32 на чистую виртуальную win7 x64, запускаю канал в vlc-плеере, он начинает воспроизводиться. Затем в Firefox перехожу по ссылке вида: http://127.0.0.1:6878/ace/getstream?infohash=1eb03a5674f01828bfbe6a8967617eabd3973f23&use_api_events=1&format=json
Но в результате получаю все те же поля, а ссылки на event_url как не было, так и нет.
Да и странно, почему бы не давать всю информацию о кодеках, доступных аудио-дорожках, субтитрах, всех пирах и пр. хотя бы по той же ссылке stat_url?..

И ещё заметил, что если через несколько минут после того, как в плеере началось воспроизведение канала, в Firefox снова перейти по вышеуказанной ссылке, то в плеере воспроизведение останавливается… Если это какое-то ограничение движка на количество устройств просмотра, то какая-то странная реализация… Ведь устройство просмотра по факту - одно, а то, что делается в Firefox - всего лишь получение информации, а не запрос на старт воспроизведения в отдельном плеере или на другом устройстве… Движок разве не запрограммирован на то, что “&format=json” - это только получение информации? Зачем “резать” воспроизведение??