TS Engine API

С выходом версии движка 1.0.5 для всех разработчика программного обеспечения мы хотим открыть новые возможности по внедрению функционала ACE Stream/ Torrent Stream в любые программные продукты.

Для этого мы предоставляем новую версию ACE Stream Engine API ( Ранее TS Engine API ) Смотрим здесь: http://wiki.acestream.media/Engine_API

Отталкиваясь от ваших вопросов и пожеланий мы будем ее поэтапно дополнять разными примерами, ну и дописывать то, что забыли.

В общем принимайте активное участие и создавайте свои уникальные продукты с функционалом и возможностями движка ACE Stream Engine ( TS Engine )

Обновление ACE Stream Engine (TS Engine API ) от 16.02.2013 ( применимо для версий 2.0 и выше )

P.S. В рамках проекта нами будет выпущен дистрибутив в виде отдельного движка ( без VLC ), что позволит вам использовать собственные плееры, не нагружая своих пользователей лишним софтом

Внимание! Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами ( внешними продуктами). Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у клиента должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму здесь Детальная информация здесь http://wiki.acestream.media/Product_key

Обновление TS Engine API от 14.04.2012

Добавлен пример

Здравствуйте, тут написано

Ко всем status_string (кроме idle, err, check) добавляются общие данные:
total_progress;immediate_progress;speed_down;http_speed_down;speed_up;peers;http_peers;downloaded;http_downloaded;uploaded
total_progress - сколько всего закачано по данному файлу

но для prebuf, по моему, это не так? для сидов мне пришлось брать 8, а скорость я беру из 5-го параметра
и еще вопрос, как передать magnet ссылку?
LOADASYNC <request_id> INFOHASH <torrent_infohash> <developer_id> <affiliate_id> <zone_id>
это?
если что, вот мой “проект” для xbmc http://xbmc.ru/forum/showpost.php?p=32163&postcount=25
работает вроде отлично, но, бывает, после , примерно, 15 минут, поток просто прекращается
"Ко всем status_string (кроме idle, err, check) добавляются общие данные: total_progress;immediate_progress;speed_down;http_speed_down;speed_up;peers;http_peers;downloaded;http_downloaded;uploaded total_progress - сколько всего закачано по данному файлу"

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

"как передать magnet ссылку? Так: LOADASYNC INFOHASH ?"

Магнет-ссылки движок сейчас не поддерживает ( в большинстве случаев долго собираются, увеличивая тем самым время до начала проигрывания, что не приемлемо для онлайна ). Указанная команда частично заменяет функционал магнет-ссылки, так как может загрузить торрент по инфохешу. Загрузка по инфохешу возможна за счет того, что мы используем сервера для кеширования торрентов. Если торрент закеширован на наших серверах, то его можно загрузить с помощью указанной команды
(по инфохешу). Торренты попадают в кеш на наших серверах, если хотя бы один раз осуществлялась их загрузка через Torrent Stream.

P.S. Извиняюсь за задержку с ответом, не заметил.

Спасибо за ответ.
Последний вопрос, можно ли отследить состояние буферизации, посылая события при помощи

PLAYBACK
т.е. если я пошлю, к примеру, что сейчас проигралось 4%, движок скажет мне, что, возможно, лучше сделать паузу, сменив состояние с [b]main:dl[/b] на [b]main:buf[/b] при недостатке полученных данных? Или возможны только значения 0,25,50,75,100? Извиняюсь, если я не очень понял документацию

Команда PLAYBACK может принимать только значения 0, 25, 50, 75 и 100.
Эта команда предназначена исключительно для информирования движка о
“количестве” проигранного контента и используется для ведения
статистики и корректной работы рекламных роликов.

На буферизацию движок уходит автоматически при нехватке данных в
буфере, повлиять на буферизацию при помощи API нельзя.

Так на какой порт устанавливать соединение ?
Если 62062 то получаю - WSAECONNREFUSED
Если смотреть сниффером, порт каждый раз меняется при запуске tsengine

tsengine
2012-12-18 14:16:58 build 1901
2012-12-18 14:16:58 version 2.0.2

похоже что порт записывается в файлик рядом с энжайном.

Может кто-нить подсказать как унзать текущее наполение буфера чтоб приостановться. Т.к. сейчас если читать поток в цикле то буфер вычищается до нуля и движок начинает паузатся и похоже что возвращает мусор (а мог бы и подождать сам).

Обновление TS Engine API

Новая версия ACE Stream Engine API , представлена здесь: http://wiki.acestream.media/Engine_API

Подскажите как сделать autoplay здесь.

Здравствуйте.
Подскажите как правильно осуществить перемотку?
Клиент инициализирован HELLOBG version=3
Пытаюсь перемотать командой: EVENT seek position=1487. Далее ожидаю смену инфы о статусе движка: STATE PREBUFFERING или BUFFERING, но текущий статус (DOWNLOADING) не меняется.
Что я делаю не так?

Насколько я понял, вы хотите сделать перемотку для VOD (т.е. для обычного файла, не live трансляции)?

Если это так, то для перемотки нет необходимости отсылать какие-либо команды движку по API. Событие EVENT seek используется только для информирования движка о перемотке, но при этом движок никаких действий не выполняет.

Сама же перемотка осуществляется на уровне обращения к движку по ссылке на воспроисведение контента, которую движок выслал после окончания пребуферизации в команде START (это ссылка вида http://127.0.0.1:6878/content/8184c1807b56fffa6f2f6f406004565b448deb0a/0.565126139153). Все запросы по этой ссылке обрабатываются веб-сервером, встроенным в движок. С точки зрения плеера, эта ссылка представляет собой ссылку на видео-файл, который лежит на веб-сервере и доступен для скачивания по протоколу HTTP. Если плеер осуществляет перемотку, например, на середину файла, он должен отправлять HTTP Range запрос, в котором указывает позицию в байтах, с которой ему нужно получить данные. Движок распознает такие запросы и выдает нужную информацию. При этом если плеер запросил данные, которые еще не были физически закачаны в кеш, то начинается буферизация.

Насколько я понял, вы хотите сделать перемотку для VOD (т.е. для обычного файла, не live трансляции)?
Да, все верно, я имел ввиду обычный файл и спасибо за развернутый ответ.

Внимание! Начиная с версии 2.1.0 движок работает по API только с авторизированными клиентами ( продуктами). Авторизация выполняется на этапе рукопожатия. Для успешной авторизации у клиента должен быть ключ продукта. Ключ продукта можно получить бесплатно, заполнив форму здесь
Детальная информация здесь http://wiki.acestream.media/Product_key

Выход в релиз версии 2.1 запланирован на 07.2013, поэтому, убедительная просьба привести свои продукты к полному соответствию API

P.S. Если ваши продукты не могут поддерживать используемые в Ace Stream рекламные форматы, дайте нам знать и вам будет предоставлена возможность использования тестового периода, с отключенной рекламой для вашего клиента/продукта. После тестового периода ваш продукт смогут использовать только те пользователи, которые будут использовать премиум-функцию “No ADs”, обеспечивающую отключение рекламы. Вам также будет предоставлена возможность отключать рекламу для своих пользователях, на партнерских условиях. ( Информация о условиях будет представлена позже )

Уважаемые разработчики! Если ваше приложение не поддерживает рекламные форматы Ace Stream, то вы можете использовать публичный ключ:

kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm

При использовании публичного ключа Вашим приложением смогут пользоваться только те пользователи, у которая активирована опция “No ADs” (у кого отключена реклама Ace Stream). Если у пользователя не активирована указанная опция, то при попытке начать просмотр какого-либо контента движок отправит ошибку “No ADs option must be activated to use this product”

Ну а если Ваше приложение поддерживает рекламные форматы системы Ace Stream, то Вы можете бесплатно получить персональный ключ продукта, отправим нам заявку через соответствующую форму (http://www.acestream.net/developers/request_key.php) и указав ссылку на скачивание вашего продукта для его проверки на соответствие. Приложения с персональным ключом продукта могут использовать все пользователи, независимо от наличия у них каких-либо премиум-опций.

У меня вопрос по запросу Ready Key=…

Исходные данные:

HELLOTS version=2.1.0 key=b8b17d6ef9
Публичный ключ: kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm

Обрабатываю: sha1(b8b17d6ef9kjYX790gTytRaXV04IvC-xZH3A18sj5b1Tf3I-J5XVS1xsj-j0797KwxxLpBl26HPvWMm)
Получаю: 12057503e621b6848bc857a1645e27581ae96c5b
Отправляю: READY key=kjYX790gTytRaXV04IvC-12057503e621b6848bc857a1645e27581ae96c5b

В ответ получаю: NOTREADY.

ПОЧЕМУ?

Похоже этот форум мне не поможет. Где помощь, о которой здесь говорят? :-\