ivi.ru

о модулях и их работе

Re: ivi.ru

Postby Sashog » 10 May 2021, 17:25

Ivi.ru не работает? Пишет "не можете играть этот файл"
Sashog
 
Posts: 7
Joined: 15 Apr 2011, 20:54

Re: ivi.ru

Postby Virtual » 11 May 2021, 17:26

не работает, чинить не кому (никто не хочет, все хотят готовое и чтоб самому ничего не сделать), а мне некогда.

PS все модули moS открытые, с открытым кодом.
и для их создания/развития достаточно базовых знаний php и html
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

Re: ivi.ru

Postby Mifody » 29 Dec 2022, 16:04

Что то меня никак не отпустит, прям затянуло изучение приставки :lol:
Подскажите пожалуйста, начал тут смотреть как устроен сабжевый модуль, он хотя бы ещё пытается продолжать работать. Мои знания php пока стремятся к нулю, но я учусь. Пока в основном опираюсь только на знания нескольких языков программирования для микроконтроллеров PIC и AVR и смысл написанного на php примерно и в общих чертах понятен.
Почти уверен, что не вытяну ремонт модуля, но при разборе скриптов стало понятно, как модуль устроен и как работает. Да и вообще, все модули устроены практически одинаково. Очень интересно, между прочим. Ну да ладно, я к чему. Пока разбирался, понял в каком месте поломалось. Сейчас постараюсь как можно подробнее описать, и надеюсь, что многоуважаемый Virtual, или кто нибудь ещё, кто шарит в вопросе, даст дельные советы, а я попытаюсь эти советы понять :lol:
А сломалось в трёх местах.
1.Значит, как я понял, при запуске идёт обращение к адресу
https://www.ivi.ru/mobileapi/countries/
Тут мы получаем список стран с присвоенными им номерами, так как при запросе информации о фильме в описании страна указана не явно, а номером. Вот для этого сопоставления и нужно. При переходе по этой ссылке с компа получаем json список со странами. В этом месте работает.
2. Дальше идём по адресу
https://www.ivi.ru/mobileapi/categories/
Получаем список категорий. Смысл тот же, что и для стран. Тут тоже работает.
3. Если зашли в поиск, то там идёт какая то подготовка данных в нужный вид и переход по ссылке поиска
https://api.ivi.ru/mobileapi/search/v5/?query='.%20urlencode(%20$search%20)
в этом месте тоже работает
4.Список фильмов при запуске подготавливается по ссылке вида
https://api.ivi.ru/mobileapi/catalogue/v5/?category=14&sort=pop&from=0&to=13&fields=id,hru,title,year,years,description,synopsis,thumbnails
(я уже подставил в ссылку переменные) Тут тоже работает, на компе получаем json с 14 фильмами из раздела ФИЛЬМЫ (category=14) с описаниями, ну а на приставке получаем список с картинками и кратким описанием. Можно листать страницы, выбирать нужные категории. Всё работает.
5. Дальше, как я понял, при нажатии на пульте OK вызывается функция
Code: Select all
static function getInfos( $id )

В теле этой функции практически сразу вызывается функция
Code: Select all
static function getVideos( $id )

и вот тут начинаются поломки. В этой функции идёт обращение по адресу
https://api.ivi.ru/mobileapi/videofromcompilation/v5/?id=109230&from=0&to=9999&fields=id,title,season,episode
(я уже подставил переменные в ссылку, id=109230 это фильм Ёлки, from-to не понял для чего, но в скрипте жёстко указано от 0 до 9999), видимо чтобы получить json с разделами fields=id,title,season,episode, но в ответ приходит пустой ответ
Code: Select all
{"result":[]}

Видимо, ivi или поменяли структуру запроса, или адрес. По этой ссылке, как я понял, можно узнать есть ли в фильме несколько серий, или одна. Наверно, можно что то закоментить, чтоб попробовать запустить заведомо фильм с 1 серией, особо ещё не смотрел. Но всё равно не заработает, потому что дальше тоже поломано.
6.Дальше переход по ссылке
https://api.ivi.ru/mobileapi/videoinfo/v5/?id=109230
(id=109230 это Ёлки) или по ссылке
https://api.ivi.ru/mobileapi/compilationinfo/v5/?hru=ironia_sudby
если у фильма есть название, а не просто id. Вот при переходе по этим ссылкам с компа, ответ приходит, всё хорошо. Но при вызове их на приставке, как я понял, появляется ошибка в функции
Code: Select all
static function request( $u )

так как в COM порт процессор выдаёт
Code: Select all
urlPath = http://127.0.0.1?page=ivi_rss_info&id=109230

Если перейти по этой ссылке с компа, то получим
Code: Select all
ivi::request: Can't load https://api.ivi.ru/mobileapi/videoinfo/v5/?id=109230

(я убрал ключ /n из подготовки сообщения чтоб увидеть полную ссылку, которая не работает). Пробовал менять с https на http, результат тот же. Вот тут я не знаю, почему на компе работает, а на приставке нет, ведь эта же функция вызывается для запроса по всем ссылкам, и на других ссылках ведь работает.
7.Дальше переход по ссылке
https://www.ivi.ru/ajax/info/109230?type=json
для получения списка актёров? особо не понял зачем. Тут вообще печально, возвращается 404 ошибка.
8. Ещё, как я понял, для Украины приделан костыль получения видео из ссылки вида
Code: Select all
http://files.iconbit.com/file/ivi/player.php?uid={$uid}&id=109230&q=MP4-hi

Если перейти с компа, то в ответ приходит целый php скрипт, в котором есть строка video_url = и ссылка. Так вот если эту ссылку скормить PlayLink, то показывает. Наверно этот костыль ещё работает и его можно использовать не только для Украины.
Вот собственно и всё, написал дофига. Есть какие нибудь идеи по ремонту? Может известны альтернативные адреса API, которые тут перестали работать? Или может что то вырезать можно? Буду рад любой подсказке. Заранее спасибо!
Digma HDMP-311 (1185) (Прошивка inext_tv_1.36_moS_r1)
Mifody
 
Posts: 43
Joined: 28 Nov 2018, 15:17
Location: Ростовская область, г. Зерноград

Re: ivi.ru

Postby Mifody » 13 Jan 2023, 16:37

Урааааааа! Получилось! Модуль снова работает!
Расковырял андроид приложение, нашёл там новые ссылки API запросов и заменил не работающие.
Что было сделано:
1. Обновил API с V5 на V7, это актуальная версия, которая используется сейчас в последней версии приложения для андроид. Местами совсем чуть чуть пришлось подправить входные данные и парсеры выходных данных. До чего то сам додумался, что то подсказали знающие люди. Спасибо им.
2. Мне всегда казалось неудобным листать страницы со списком кнопками стрелок. Получается, чтоб перейти на другую страницу, надо нажать стрелку вправо 7 раз! Поэтому добавил листание страниц на не используемые кнопки NEXT, PREV (это которые |<< и >>| ). Ну и описание этих кнопок добавил на нижнюю строку. Стало удобнее.
3. Добавил страну и рейтинг ivi в краткое описание фильма под курсором на странице со списком. Ещё в процессе экспериментов выводил туда ID фильма, либо ID компиляции, убирать не стал, пусть будет)))
4. Кнопка PLAY сломана, выдаёт 500 internal server error. Не понял, как починить. Вырезал её действие вместе с описанием. Теперь всё включать через кнопку ОК.
5. Так же сломался сервер иви, с которого модуль получал список режиссёров и актёров. В API запросах этой информации нет, поэтому пришлось вырезать отображение режиссёров и актёров.
Очень повезло, что изменения такие не значительные, иначе я бы не справился.
Чтобы модуль снова заработал, надо установить версию с репозитория и заменить приложенные файлы по пути
0:/usr/local/etc/mos/www/modules/ivi/
А ещё лучше, наверно, добавить эти изменения в репозиторий, чтоб можно было обновиться без танцев с бубном.
ivi_mod. 13.01.2023.7z
(7.66 KiB) Downloaded 82 times
Digma HDMP-311 (1185) (Прошивка inext_tv_1.36_moS_r1)
Mifody
 
Posts: 43
Joined: 28 Nov 2018, 15:17
Location: Ростовская область, г. Зерноград

Re: ivi.ru

Postby Virtual » 13 Jan 2023, 18:08

Ok гляну что у тя вышло, по результатам в репу добавлю.

PS спасибо что не потерял интерес к данной теме.
PSPS жаль что у тя самый! неудачный плеер на RTD1185 (для данного чипа только инекст что то пытался сделать, и альтернатив не будет.)
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

Re: ivi.ru

Postby Virtual » 13 Jan 2023, 19:39

глянул.... есть какой-то косяк, периодически очень долго крутится колесо бездействия (вероятно какой-то запрос апи не отработал и в таймаут влетает)
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

Re: ivi.ru

Postby Mifody » 16 Jan 2023, 17:06

О, я думал это только у меня тупит из за старого чипа или прошивки, оказывается не только. Не, это не из за АПИ. Получение каталога работает и на старом, родном для модуля АПИ 5, и на нём тоже тупит.
Затупить может даже при добавлении/удалении из избранного. Если затупил, то после того, как колесо покрутится и выпадет в таймаут, в консоль пишет следующее. Причём если не дожидаться таймаута и нажать СТОП, то колесо перестаёт крутиться и если выйти из модуля, то какое то время вообще не нажимаются никакие кнопки. Не знаю что это, но проблема где то глубже по моему.
Code: Select all
abort download for 117, http://127.0.0.1/?page=ivi_list&from=70, error: Could not read status line: connection timed out - листание страниц

abort download for 225, http://127.0.0.1/?page=ivi_list&category=14, error: Could not read status line: connection timed out - при запуске

abort download for 245, http://127.0.0.1/?page=ivi_rss_info&id=226871, error: Could not read status line: connection timed out - нажатие ОК на фильме

abort download for 252, http://127.0.0.1/?page=ivi_get&id=226871, error: Could not read status line: connection timed out - нажатие смотреть

abort download for 255, http://127.0.0.1/?page=ivi_list&genre=161, error: Could not read status line: connection timed out - выбор жанра

abort download for 549, http://127.0.0.1/?page=ivi_list&search=%d0%b3%d1%83%d0%b1%d0%ba%d0%b0, error: Could not read status line: connection timed out - Поисковой запрос
Digma HDMP-311 (1185) (Прошивка inext_tv_1.36_moS_r1)
Mifody
 
Posts: 43
Joined: 28 Nov 2018, 15:17
Location: Ростовская область, г. Зерноград

Re: ivi.ru

Postby Virtual » 16 Jan 2023, 18:16

это именно API
поиграйся с запросами (в браузере компа) вида
http://192.168.1.215/?page=ivi_list&from=15&debug=true
где 192.168.1.215 - адрес плеера.

PS
рандомно завешиваются запросы | +
на вот такой урл...
Code: Select all
https://api.ivi.ru/mobileapi/catalogue/v7/ ...

похоже какой-то анти DoS :evil:


"влоб" нашел где затык и грязновато "починил"(сделал 2 попытки и таймаут) :D но работает. //хотели защиту от DoS - получите два запроса, не хватит влепим 7.
PSPS
4. Кнопка PLAY сломана, выдаёт 500 internal server error. Не понял, как починить.

500 - некрасивая ошибка, это значит что ты чет завалил на стороне сервера (ivi в данном случае) :D (хотя может и кривой запрос в встроенный php сервер влетел)
вероятно в твоей прошивке один или оба PlayItemURL кривоваты, у тебя плеер 1185, там SDK в зачаточном (почти оригинальном) состоянии, а в инекст тот кто делал иптв, на это забил большой... и сделал свое. (и я его понимаю.... тот еще говнокод там и исходников от многого не было), кст именно поэтому у тя и не пашет ютуб.
Attachments
ivi-init.php.tar.gz
(5.29 KiB) Downloaded 73 times
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

Re: ivi.ru

Postby Mifody » 17 Jan 2023, 10:45

Virtual wrote:сделал 2 попытки и таймаут

ага, увидел. Действительно работает! Класс! Ну вот, общими усилиями починили 8-)
У меня 500 ошибка была даже когда я косячил с синтаксисом. Забыл поставить точку с запятой в конце? Получи 500. Хочешь присвоить переменной не совместимый тип данных - держи 500. Короче, по всему.
Digma HDMP-311 (1185) (Прошивка inext_tv_1.36_moS_r1)
Mifody
 
Posts: 43
Joined: 28 Nov 2018, 15:17
Location: Ростовская область, г. Зерноград

Re: ivi.ru

Postby Virtual » 17 Jan 2023, 17:19

обновление в репе
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

PreviousNext

Return to Модули

Who is online

Users browsing this forum: No registered users and 9 guests

cron