Архив форума Ace Stream       Wiki        Info

перейти на новый форум
Расширенный поиск  

Автор Тема: HTTP API - получение информации о текущем канале  (Прочитано 310 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Ingvar

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 4

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

Benny

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 666

есть ли соответствующий метод HTTP API для получения информации о работающем в данный момент канале?
Для НТТР АПИ нет, в данном случае нужно использовать Search АПИ - https://wiki.acestream.media/index.php?title=Search_API#Simple_output (см. на "status" и "availability") - т.е CID со статусом "2" и "avail" 1 - "рабочий" на момент последнего обновления поисковой базы (подобный канал будет отображен в Р2Р поиске и отмечен зеленой иконкой). "Рабочий" в данном случае не гарантирует, что вместо собственно контента там не будет какой-нить "заглушки".

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

Ingvar

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 4

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

Benny

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 666

Так вот, есть ли в HTTP API какой-либо метод, в результате которого можно получить данные об этом канале: infohash, id, название?
Простого метода нет. На данный момент данные о сессии можно получить только по ссылке "stat_url", которая возвращается в ответ на запуск сессии. И ссылка эта "жива" столько, сколько активна сессия. Основные данные, которые отдаеются по этой ссылке, описаны здесь: https://wiki.acestream.media/index.php?title=Engine_HTTP_API#Getting_some_stats (названия канала и 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
}
2) получаем информацию о сессии:
http://127.0.0.1:6878/ace/stat/5d78090bf52eaa1c042da9b191c487cea4a0219a/f528764d624db129b32c21fbca0cb8d6
{
  "response": {
    "infohash": "5d78090bf52eaa1c042da9b191c487cea4a0219a",
    ...
  },
  "error": null
}
3) получаем название по 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.

Ingvar

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 4

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

Benny

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 666

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