Jump to content

API для Kartina.tv


Arty
 Share

Recommended Posts

Приветствую!
API для Kartina.tv еще существует и доступно для разработчиков?

Похоже что из-за мультидоступа что то изменилось за последние недели в движке и старое поломалось.

Можно узнать что именно изменилось или получить доступ к информации об API с текущим функционалом.

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

Link to comment
Share on other sites

API не изменилось. Добавился новый функционал - Multiroom - работа нескольких клиентов в пределах одного абонента. Существенно изменен движок сессий. Изменилось имя сессии (необходимое условия для смены сессий всех абонентов). Вцелом, устройства использующие механизм API не заметели перехода.

Можно немного подробнее о том что "поломалось"?

Link to comment
Share on other sites

Как я понял, при мультидоступе при логине стала вылезать ошибка "Ошибка авторизации. Ваш абонемент используется другим устройством". При перелогине, все начинает работать корректно, и у первого пользователя трансляция не прекращается. Т.е. разработчикам надо предусмотреть этот код ошибки и перелогиниваться заново.

Link to comment
Share on other sites

Да я пока разведку фронта работ веду.. 

Поступила "жалоба" от пользователя что перестала работать картина на приставке гдето с неделю или две. И по его же переговорам с поддержкой прояснилось что что то изменили вот с поддержкой одновременно нескольких устройств. (Да и вообще видимо отфутболили его с формулировкой о неподдержке неофициальных устройств).  А поскольку сам подписки к картине не имею, пока только веду разведку а что там могло случиться, что бы понять подписываться (хотя лично мне не нужно) или забросить не берясь исправлять :)

Как то противоречиво: API не изменилось <-> Существенно изменен движок сессий.

 

P.S. Раньше итак был механизм перелогинивания на приставке (если до того человек параллельно смотрел с компа например). Говорят - уже не помогает. (а я пока в слепую не проверю).

Edited by Arty
Link to comment
Share on other sites

Приветствую!

API для Kartina.tv еще существует и доступно для разработчиков?

Похоже что из-за мультидоступа что то изменилось за последние недели в движке и старое поломалось.

Можно узнать что именно изменилось или получить доступ к информации об API с текущим функционалом.

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

Одно я опытным путем установил определенно - теперь нет возможности передавать идентификатор сессии при запросах( по крайней мере в geturl), как параметр

Стр. 4 руссого описания.

Также возможна передача параметров &<имя сессии>=<ключ сессии> через url. <Имя сессии> при этом необходимо брать из ответа пакета функции /login. Подобный метод из соображений безопасности является нежелательным, равно как и передача login методом GET

Теперь не только нежелательна, но и невозможна. Только Cookie

Edited by apodolsk
Link to comment
Share on other sites

Как то противоречиво: API не изменилось <-> Существенно изменен движок сессий.

 

Никаких противоречий. API - совокупность набора функций и их ответов. Движок сессий не менял набора функций и не вилял на их ответ. 

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

 

session.use_only_cookies = 0 . Стандартный механизм работы с сессиями должен принимать параметры сессии через URL. Обратите внимание на имя сессии. Оно изменилось. Возможно в этом причина проблем.

 

З.Ы. Плееры DuneHD успешно используют метод передачи идентификатора сессии через URL до сих пор. 

Link to comment
Share on other sites

По старой памяти.. вполне возможно что и в этом дело, спасибо apodolsk .

Остается получить официальное подтверждение по этому поводу что нежелательное стало невозможным именно в недавнее время... 

Тогда хоть будет понятнее где начинать копать.

 

P.S. ок и по имени посмотрим.. (когда заполучим у пострадавшего учетные данные :о) )

Edited by Arty
Link to comment
Share on other sites

session.use_only_cookies = 0 . Стандартный механизм работы с сессиями должен принимать параметры сессии через URL. Обратите внимание на имя сессии. Оно изменилось. Возможно в этом причина проблем.

 

З.Ы. Плееры DuneHD успешно используют метод передачи идентификатора сессии через URL до сих пор. 

Проверил. Подтверждаю, если делать точно как  в описании, т.е. <Имя сессии>  брать из ответа пакета функции /login, то все ОК.

 

@mariman - Respect

Link to comment
Share on other sites

Описание проблемы - на одном из серверов Middlware обслуживающего API сессия не передается через URL. Зависит от того на какой сервер вас отправит балансировщик. В ближайшее время исправим ситуацию.

Link to comment
Share on other sites

Описание проблемы - на одном из серверов Middlware обслуживающего API сессия не передается через URL. Зависит от того на какой сервер вас отправит балансировщик. В ближайшее время исправим ситуацию.

opps  :o  Если не все серверы из Pool одинаково обрабатывают или передают запросы, тогда жить весело...

Link to comment
Share on other sites

Ситуация исправлена.

 

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

 

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

В виду этого было принято решение добавить параметр auth для метода /login

 

&auth=no - указывает на то, что сессия создаваться не должна.

 

Ответ у метода идентичен методу /login за исключением отсутствия данных сессии.

 

Для предотвращения ситуации, что в настройках абонемента можно указать битрейт для всех клиентов в пределах абонемента, введен дополнительный параметр "bitrate" битрейта для функции /get_url.  Разработчики могут выводить каналы в нужном битрейте не прибегая к установке глобального для абонемента значения.

 

/get_url?cid=2&bitrate=[320|900|1500|2500] - значение полученное из /settings?var=bitrate

 

Список возможных значений битрейта и таймшифта для конкретных каналов смотреть в ответе /channel_list

Link to comment
Share on other sites

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

В виду этого было принято решение добавить параметр auth для метода /login

 

&auth=no - указывает на то, что сессия создаваться не должна.

Ответ у метода идентичен методу /login за исключением отсутствия данных сессии.

Попробовал - с параметром &auth=no действительно возвращает данные без сессии, но только "через раз".

В остальных случаях

RestClient on Firefox не показывает ничего, а curl on Raspbian

curl: (56) Recv failure: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt

Edited by apodolsk
Link to comment
Share on other sites

В моем случае таки оказалось дело в sid_name 

Три года было как в примере и вот те вдруг .. 

Оптимизаторы сократили нагрузку на 4 символа? :)

Link to comment
Share on other sites

 

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

В виду этого было принято решение добавить параметр auth для метода /login

 

&auth=no - указывает на то, что сессия создаваться не должна.

 

Т.е. по сути введена функция /check_user_password ?

Т.к. не понятно, зачем логиниться более 1го раза? Разве что при чрезвычайно редкой смене логина юзером.

Edited by gasoj
Link to comment
Share on other sites

В моем случае таки оказалось дело в sid_name 

Три года было как в примере и вот те вдруг .. 

Оптимизаторы сократили нагрузку на 4 символа? :)

 

Пример на то он и пример что может быть ""примерно"" как в жизни... В документации четко написано откуда брать имя сессии. Насчет 4 символов - сократили потому что надо было ИЗМЕНИТЬ имя сессии, чтобы ВСЕ абоненты переключились на новый движок сессий. Так сказать перегенерировать SID. 

 

 

т.е. по сути введена функция /check_user_password ?

Т.к. не понятно, зачем логиниться более 1го раза? Разве что при чрезвычайно редкой смене логина юзером.

 

По сути - да. Все верно. Только немного с расширенным ответом.

Некоторые приставки имеют разделение между настройками абонента и его работой. Для каждого раздела они совершают разные входы. Так работают Comigo и DuneHD. Почему так - не к нам вопрос. Но, вцелом, неплохо иметь возможность проверить абонента не выбивая остальных.

Link to comment
Share on other sites

В 26.03.2014 в 08:28, mariman сказал:

 

В 25.03.2014 в 20:59, Arty сказал:

В моем случае таки оказалось дело в sid_name 

Три года было как в примере и вот те вдруг .. 

Оптимизаторы сократили нагрузку на 4 символа? :)

Пример на то он и пример что может быть ""примерно"" как в жизни... В документации четко написано откуда брать имя сессии. Насчет 4 символов - сократили потому что надо было ИЗМЕНИТЬ имя сессии, чтобы ВСЕ абоненты переключились на новый движок сессий. Так сказать перегенерировать SID. 

 

В 25.03.2014 в 21:24, gasoj сказал:

>т.е. по сути введена функция /check_user_password ?

Т.к. не понятно, зачем логиниться более 1го раза? Разве что при чрезвычайно редкой смене логина юзером.

По сути - да. Все верно. Только немного с расширенным ответом.

Некоторые приставки имеют разделение между настройками абонента и его работой. Для каждого раздела они совершают разные входы. Так работают Comigo и DuneHD. Почему так - не к нам вопрос. Но, вцелом, неплохо иметь возможность проверить абонента не выбивая остальных.

Для брутфорсеров хорошая новость.

Link to comment
Share on other sites

В 26.03.2014 в 17:56, Задавака сказал:

Для брутфорсеров хорошая новость.

Не очень-то. Правило 3-х неверных паролей и бан на 10 минут никто не отменял. Еще + Лимит 5 запросов в секунду. А стоит ли овчинка выделки?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...