Difference between revisions of "Engine HTTP API"

From Ace Stream Wiki
Jump to: navigation, search
(Получение потока в формате HLS)
(Методы API)
Line 6: Line 6:
 
Все методы принимают такие общие параметры:
 
Все методы принимают такие общие параметры:
 
*'''sid''' - [[#Идентификатор плеера|идентификатор плеера]] (необязательный параметр)
 
*'''sid''' - [[#Идентификатор плеера|идентификатор плеера]] (необязательный параметр)
 +
*'''id''' - идентификатор контента (content id) (условно обязательный параметр)
 +
*'''url''' - ссылка на транспортный файл (условно обязательный параметр)
 +
*'''path''' - путь к транспортному файлу в локальной файловой системе (условно обязательный параметр)
 +
 +
В запросах на старт воспроизведения обязательно должен присутствовать один из параметров <tt>id</tt>, <tt>url</tt>, <tt>path</tt>.
  
 
===Получение потока в формате HLS===
 
===Получение потока в формате HLS===
Line 13: Line 18:
  
 
Параметры:
 
Параметры:
*'''id''' - идентификатор контента (content id)
+
*'''transcode_audio''' - транскодировать аудио в AAC (параметр принимает значения 0 либо 1)
 +
*'''transcode_mp3''' - не транскодировать MP3 (параметр принимает значения 0 либо 1)
 +
*'''preferred_audio_language''' - предпочитаемый язык аудио-дорожки (3-значный код, список [http://xml.coverpages.org/nisoLang3-1994.html здесь])
  
 
Пример:
 
Пример:
Line 22: Line 29:
  
 
В ответ на данную команду движок будет выдавать данные в виде http progressive download. В случае ошибки будет возвращен HTTP код 4хх либо 5хх с кратким описанием ошибки.
 
В ответ на данную команду движок будет выдавать данные в виде http progressive download. В случае ошибки будет возвращен HTTP код 4хх либо 5хх с кратким описанием ошибки.
 
Параметры:
 
*'''id''' - идентификатор контента (content id)
 
  
 
Пример:
 
Пример:

Revision as of 09:23, 28 May 2015

Общее описание

Начиная с версии 3.1 появилась возможность управлять движком по протоколу HTTP. Для передачи команды движку нужно отправить HTTP GET запрос на http-порт движка. Порт по умолчанию: 6878.

Методы API

В описаниях методов <engine_address> - это ip-адрес движка, <engine_port> - http-порт движка. Все методы принимают такие общие параметры:

  • sid - идентификатор плеера (необязательный параметр)
  • id - идентификатор контента (content id) (условно обязательный параметр)
  • url - ссылка на транспортный файл (условно обязательный параметр)
  • path - путь к транспортному файлу в локальной файловой системе (условно обязательный параметр)

В запросах на старт воспроизведения обязательно должен присутствовать один из параметров id, url, path.

Получение потока в формате HLS

http://<engine_address>:<engine_port>/ace/manifest.m3u8

В ответ на данную команду движок выдаст HLS плейлист для воспроизведения запрашиваемого контента. В случае ошибки будет возвращен HTTP код 4хх либо 5хх с кратким описанием ошибки.

Параметры:

  • transcode_audio - транскодировать аудио в AAC (параметр принимает значения 0 либо 1)
  • transcode_mp3 - не транскодировать MP3 (параметр принимает значения 0 либо 1)
  • preferred_audio_language - предпочитаемый язык аудио-дорожки (3-значный код, список здесь)

Пример:

http://127.0.0.1:6878/ace/manifest.m3u8?id=dd1e67078381739d14beca697356ab76d49d1a2d

Получение потока по HTTP

http://<engine_address>:<engine_port>/ace/getstream

В ответ на данную команду движок будет выдавать данные в виде http progressive download. В случае ошибки будет возвращен HTTP код 4хх либо 5хх с кратким описанием ошибки.

Пример:

http://127.0.0.1:6878/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2d

Идентификатор плеера

Идентификатор плеера - произвольная строка, которая идентифицирует плеер при обращении к движку. В качестве идентификатора лучше всего использовать случайное число.

Предназначение идентификатора плеера - дать движку возможность отличать запросы одного плеера от другого. Это связано с таким ограничением - нельзя просматривать одну и ту же live-трансляцию через движок одновременно в двух плеерах. При возникновении такой ситуации результаты непредсказуемы (трансляция может начать идти с перебоями в обоих плеерах). В связи с этим движок перестает отдавать плееру данные по трансляции, если эту же трансляцию запустили в другом плеере, но делает это только в том случае, если может отличить один плеер от другого.