Changes

Jump to: navigation, search

Engine API/en

4,847 bytes removed, 13:01, 26 December 2012
Examples
<tt>'''HELLOBG'''</tt>
Используется в рамках процедуры Used as a part of "рукопожатияhandshake" между клиентом и procedure between client and TS Engine.
Эта команда должна быть отправлена клиентом сразу после установления This command must be sent by client right after establishing tcp-соединения с connection with TS Engine.
Соединение с Connection with TS Engine считается успешным после тогоis successful, как клиент получил от if client receives from TS Engine ответ на response to "рукопожатиеhandshake" - команду command HELLOTS
<tt>'''READY'''</tt>
Информирует Informs TS Engine о том, что клиент готов принимать исходящие командыthat client is ready to receive outgoing commands
'''LOADASYNC''' <request_id> '''RAW''' <torrent_data> <developer_id> <affiliate_id> <zone_id></tt>
Данные команды выполняют загрузку содержимого торрентThese commands perform loading torrent-файла и используются для того, чтобы клиент мог получить список названийфайлов в интересующем торрент-файлеfile's content. They are used to allow client to get a list of files' names in file of interest. Команды LOAD выполняются синхронноcommands are performed synchronously, команды LOADASYNC commands - асинхронно asynchronously (ответ приходит в исходящей команде response comes in outgoing command LOADRESP).
Более предпочтительным методом является асинхронная загрузкаPreferred method is asynchronous loading.
'''ПараметрыParameters:'''
<tt>'''request_id'''</tt> - случайное целое число random integer - идентификатор запроса identifier of LOADASYNCrequest; этот же идентификатор будет отослан клиенту в команде this identifier will be sent to client in LOADRESP после того,как будет получен список файловcommand after a list of files will be received; данный идентификатор служит для того, чтобы клиент в случае отправки нескольких запросов this id serves to ensure that client in case of sending multiple LOAD точно знал, на какой из этих запросов получен ответrequests knew exactly which of these requests is answered
<tt>'''torrent_url'''</tt> - ссылка на торрент файл link to torrent file (напримерfor example, http://sometracker.com/torrent/12345)
<tt>'''torrent_infohash'''</tt> - torrent's infohash торрента
<tt>'''player_id'''</tt> - код плеераplayer's code
<tt>'''torrent_data'''</tt> - содержимое торрентtorrent-файла в кодировке file's content, encoded in base64
<tt>'''developer_id'''</tt> - код разработчика developer's code (если неизвестноif unknown, необходимо передавать 0must be sent)
<tt>'''affiliate_id'''</tt> - код партнера partner's code (если неизвестноif unknown, необходимо передавать 0must be sent)
<tt>'''zone_id'''</tt> - код зоны партнера code of partner's zone (если неизвестноif unknown, необходимо передавать 0must be sent)
'''START URL''' <direct_url> <file_indexes> <developer_id> <affiliate_id> <zone_id>)</tt>
Данные команды используются для начала загрузки определенного файла из торрент-файла либо для начала загрузки файла по прямой ссылке These commands are used to start loading a specific file from torrent or by direct link (START URL)
'''ПараметрыParameters:'''
<tt>'''file_indexes'''</tt> - список индексов файлов из торрент-файлаa list of file's indexes from torrent file, которые необходимо загружатьwhich have to be loaded. Индексы файлов клиент получает в сообщении Client receives file's indexes in a LOADRESP разделенных запятойmessage, separated by commas. Индексы начинаются с нуля и соответствуют списку файлов,который был получен в результате выполнения команды Indexes start with zero and match a list of files that was received by LOADcommand. НапримерFor example, если в торрент-файле всего один видео-файлif there is only one video file in torrent file, то необходимо отправлять индекс then 0index has to be sent.
Если в торренте пять видео-файлов и необходимо начать проигрывание первогоIf there are 5 video files in torrent and playback has to start from the first one, но при это загружать остальныеbut others have to be loaded, то отправляется then 0,1,2,3,4have to be sent.
Если нужно проиграть третий файлIf the third file has to be played, и не загружать другиеwithout loading others, отправляется 2has to be sent.
<tt>'''torrent_url'''</tt> - ссылка на торрент файл link to torrent file (напримерfor example, http://sometracker.com/torrent/12345)
<tt>'''torrent_infohash'''</tt> - torrent's infohash торрента
<tt>'''player_id'''</tt> - код плеераplayer's code
<tt>'''torrent_data'''</tt> - содержимое торрентtorrent-файла в кодировке file's content, encoded in base64
<tt>'''direct_url'''</tt> - прямая ссылка на файл direct link to file (напримерfor example, http://somesite.com/files/video.mp4)
<tt>'''developer_id'''</tt> - код разработчика developer's code (если неизвестноif unknown, необходимо передавать 0must be sent)
<tt>'''affiliate_id'''</tt> - код партнера partner's code (если неизвестноif unknown, необходимо передавать 0must be sent)
<tt>'''zone_id'''</tt> - код зоны партнера code of partner's zone (если неизвестноif unknown, необходимо передавать 0must be sent)
<tt>'''GETPID''' <infohash> <developer_id> <affiliate_id> <zone_id></tt>
Получение кода плеера по набору параметровGetting code of the player through a set of parameters. Эта команда является синхронной командой This command is a synchronous command (смsee below).нижеIn response player's code or empty string (if player's code can't be received)is sent. В ответ отправляется код плеера, либо пустая строка, если код плеера не может быть получен
<tt>'''SHUTDOWN'''</tt>
Закрыть соединение с клиентомClose connection with client.
<tt>'''STOP'''</tt>
Остановить загрузку файла, который загружается в данный моментStop loading file that is being loaded at this moment.
<tt>'''DUR''' <video_url> <duration></tt>
Сообщить Inform TS Engine о длительности видео-файла, который в данный момент проигрывается клиентомabout duration of video file that is being played by client at this moment.Данная команда должна отправлять сразу после того, как клиент определил длительность контентаThis command must be sent right after client had determined content duration.
'''ПараметрыParameters:'''
<tt>'''video_url'''</tt> - ссылка на видеоlink to video, которая была отправлена клиенту после окончания пребуферизацииwhich was sent to client after the end of pre-buffering
<tt>'''duration'''</tt> - длительность в миллисекундахduration in milliseconds
<tt>'''PLAYBACK''' <video_url> <event></tt>
Сообщить Inform TS Engine о процентном соотношении проигранного видеоabout percentage of played video
Данная команда особенно важна, когда идет прогрывание рекламных роликов This command is especially important when playing advertising video - переход к основному видео происходит только после того,как transition to the main video happens only after TS Engine получил команду gets command PLAYBACK 100 (т.е. после того, как клиент полность проиграл рекламный роликafter client has played advertising video till the end)
'''ПараметрыParameters:'''
<tt>'''video_url'''</tt> - ссылка на видеоlink to video, которая была отправлена клиенту после окончания пребуферизацииwhich was sent to client after the end of pre-buffering
<tt>'''event'''</tt> - одно из данных событийone of these events:
0 - начало проигрыванияstarting playback
25 - проиграно 25% видеоof video has been played
50 - проиграно 50% видеоof video has been played
75 - проиграно 75% видеоof video has been played
100 - проиграно 100% видеоof video has been played
== Исходящие команды Outgoing commands ==
<tt>'''HELLOTS'''</tt>
ответная команда в рамках процедуры рукопожатияresponse command as a part of handshake procedure
<tt>'''AUTH''' <auth_level></tt>
Уровень доступа пользователяUser's access level
<tt>auth_level</tt> - целое число integer - уровень доступаaccess level
На данный момент возможны два значения уровня доступаAt this moment two values of access level are available:
0 - пользователю не доступны расширенные функции advanced features are not available for user (перемотка и проигрывание файлов из торрента с несколькими видео-файламиrewind and playback of torrent files with several video files)
1 - пользователю доступны расширенные функцииadvanced features are available for user
<tt>'''STATE''' <state_id></tt>
Информация о текущем статусе Information about current state of TS Engine
<tt>'''SHUTDOWN'''</tt>
TS Engine завершил работуfinished its work
<tt>'''PLAYADI''' <video_url></tt>
Начать проигрывание видео по ссылке Start playing video by video_url link (данная ссылка ведет на this link leads to http-серверserver, встроенный в embedded in TS Engine).
<tt>'''PLAY'''</tt> - проигрывание основного видеоplayback of the main video
<tt>'''PLAYAD'''</tt> - проигрывание непрерываемого рекламного ролика playback of uninterrupted advertising video (пользователь не может перемотать либо пропустить данный рекламный роликuser can't rewind or skip this advertising video)
<tt>'''PLAYADI'''</tt> - проигрывание прерываемого рекламного ролика playback of interrupted advertising video (пользователь может перемотать либо пропустить данный рекламный роликuser can rewind or skip this advertising video)
<tt>'''PAUSE'''</tt>
TS Engine начал буферизациюbegan buffering, так как недостаточно данных для проигрывания видео без остановкиbecause there's not enough data for video playback without interruptions
<tt>'''RESUME'''</tt>
TS Engine завершил буферизациюfinished buffering
<tt>'''LOADRESP''' <request_id> <response></tt>
Ответ на команду Response to LOADcommand
<tt>'''request_id'''</tt> - идентификатор запросаrequest identifier
<tt>'''response'''</tt> - список файлов в формате a list of files in json в такого видаformat in this form:
{
"status": 1,
}
<tt>'''status'''</tt> - 0: в торренте нет видео файловthere are no video files in torrent, 1 - в торренте один видео файлthere is one video file in torrent, 2 - в торренте более одного видео файлаthere are more than one video files in torrent
<tt>'''infohash'''</tt> - torrent infohash торрента
<tt>'''files'''</tt> - список файловa list of files; это массивthis is an array, каждый элемент в котором состоит из массива из двух элементовeach element of which consists of an array with two elements: первый the first - название файлаfile's name, второй the second - позиция файла в торренте file's position in torrent (эта позиция должна отправляться в команде this position must be sent inside START для указанияcommand to specify which file to download, какой именно файл необходимо загружать, если их несколькоif there are several of them).
Имена файлов передаются в кодировке Files' names are transferred in UTF-8 в encoding in urlencoded видеform.
<tt>'''INFO''' <message_id>;<message_text></tt>
Информационное сообщениеInfo message
<tt>'''message_id'''</tt> - код сообщенияmessage code
<tt>'''message_text'''</tt> - текст сообщенияmessage text
<tt>'''STATUS''' <status_string></tt>
Данное сообщение отправляется периодически для информирования клиента о текущем статусе загрузки контентаThis message is sent periodically to inform client about current state of content download.
<tt>'''status_string'''</tt> - строка описанного ниже форматаstring in format described below
Если идет проигрывание основного контентаIf the main content is being played:
<tt>STATUS main:status_string</tt>
Если идет проигрывание рекламного роликаIf advertising video is being played:
<tt>STATUS main:status_string|ad:status_string</tt>
<tt>'''status_string:'''</tt>
TS Engine ничего не делает does nothing - <tt>'''idle'''</tt>
ошибка error - <tt>'''err;error_id;error_message'''</tt> (код и описаниеcode and description)
проверка checking - <tt>'''check;progress'''</tt>
пребуферизация prebuffering - <tt>'''prebuf;progress;time'''</tt>
закачка download - <tt>'''dl'''</tt>
буферизация buffering - <tt>'''buf;progress;time'''</tt>
ожидание достаточной скорости waiting for sufficient speed - <tt>'''wait;time'''</tt>
Ко всем Common data is added to all <tt>status_string</tt> (кроме except <tt>idle, err, check</tt>) добавляются общие данные:
<tt>total_progress;immediate_progress;speed_down;http_speed_down;speed_up;peers;http_peers;downloaded;http_downloaded;uploaded</tt>
<tt>'''total_progress'''</tt> - сколько всего закачано по данному файлуhow much of this file is downloaded
<tt>'''immediate_progress'''</tt> - сколько непрерывных данных закачано начиная с текущей позиции how much uninterruptible data is downloaded starting from the current position (для отображения кол-ва закачанного в бегункеto show amount of downloaded data)
Все числа передаются как All numbers are sent as integer.
Все All progress принимают значение от takes values from 0 до to 100.
'''ПримерыExamples:'''
<tt>STATUS main:prebuf;45;30|ad:buf;69
STATUS main:dl|ad:dl</tt>
'''Пример трансформация статусов в текстовые сообщения, понятные пользователюExample of tranformation statuses into text messages that user can understand:'''
<tt>check - Checking xx%
buf - Buffering xx%
wait - Waiting sufficient download speed
err - выводим сообщение об ошибкеshowing an error message dl, idle - ничего не выводимdoing nothing</tt>
== События Events ==
<tt>'''EVENT event_name param1_name=param1_value param2_name=param2_value ...'''</tt>
Параметры не обязательныParameters are not requiredЗначения параметров - <tt>'''urlencoded utf-8'''</tt> 
Parameter values - <tt>'''urlencoded utf-8'''</tt>
==Examples==
<<STATUS main:dl;0;0;141;0;0;8;0;4898816;0;0</tt>
client lost has played 25% of content
<tt>>>PLAYBACK http://127.0.0.1:6878/content/4c78e1cf0df23b4f5a16a106829ebed710cb52e0/0.673752283974 25
<<STATUS main:dl;0;0;146;0;0;7;0;8388608;0;0</tt>
client lost has played 50% of content
<tt>>>PLAYBACK http://127.0.0.1:6878/content/4c78e1cf0df23b4f5a16a106829ebed710cb52e0/0.673752283974 50
<<STATUS main:dl;0;0;145;0;0;7;0;9404416;0;0</tt>
client lost has played 75% of content
<tt>>>PLAYBACK http://127.0.0.1:6878/content/4c78e1cf0df23b4f5a16a106829ebed710cb52e0/0.673752283974 75

Navigation menu