Архив форума Ace Stream
Базовые продукты ACE Stream ( Torrent Stream ) => Вопросы, предложения и пожелания => Тема начата: Ingvar от 10 Июня 2020, 22:16:27
-
Здравствуйте! Подскажите, пожалуйста, есть ли соответствующий метод HTTP API для получения информации о работающем в данный момент канале?
Например, id, infohash или название?
Интересует что-то типа: http://127.0.0.1:6878/webui/api/service?method=get_current_channel_info&format=jsonp
-
есть ли соответствующий метод HTTP API для получения информации о работающем в данный момент канале?
Для НТТР АПИ нет, в данном случае нужно использовать Search АПИ - https://wiki.acestream.media/index.php?title=Search_API#Simple_output (см. на "status" и "availability") - т.е CID со статусом "2" и "avail" 1 - "рабочий" на момент последнего обновления поисковой базы (подобный канал будет отображен в Р2Р поиске и отмечен зеленой иконкой). "Рабочий" в данном случае не гарантирует, что вместо собственно контента там не будет какой-нить "заглушки".
Или я неправильно понял вопрос и под "работающим" подразумевается "канал, который уже воспроизводится в данный момент"?
-
Или я неправильно понял вопрос и под "работающим" подразумевается "канал, который уже воспроизводится в данный момент"?
Да, я имел в виду такую ситуацию: на ПК работает ace_engine и на этом же ПК в vlc-плеере или каком-либо другом плеере воспроизводится канал.
Так вот, есть ли в HTTP API какой-либо метод, в результате которого можно получить данные об этом канале: infohash, id, название?
-
Так вот, есть ли в 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.
-
Понятно. Но здесь один минус - нужно уже знать id, чтобы выполнить первый запрос... А задача такая, что не зная id, infohash или имя получить данные о текущей сессии.
Простого метода нет.
Но спасибо за ответ! ;)
-
А задача такая, что не зная id, infohash или имя получить данные о текущей сессии.
Проблема в том, что "текущая сессия" может быть далеко не одна.
В планах есть добавить в АПИ метод для чего-нить вроде "вывести список активных сессий", но это пока только планы.