Домашний медиа-сервер (UPnP, DLNA, HTTP) Домашний медиа-сервер (UPnP, DLNA, HTTP) Домашний медиа-сервер (UPnP, DLNA, HTTP)
Главная Решения пользователей программы "Домашний медиа-сервер (UPnP, DLNA, HTTP)"
 
Текущее время: Чт дек 12, 2019 5:10 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 3 сообщения ] 
Автор Сообщение
 Заголовок сообщения: Kinogo.net 02.11.2014
СообщениеДобавлено: Вс янв 12, 2014 4:51 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 393
Если не хотите, чтобы в папке с фильмом появлялись информационные элементы с названием жанра, режиссера, страной, ... В настройках подкаста в поле "Дополнительные параметры" уберите ключ "--addinfoitems".

UPD 02.11.2014:
- Восстановлена работа подкаста. Спасибо cin!


Вложения:
Комментарий к файлу: 02.11.2014
Kinogo.net.hdf.zip [27.21 КБ]
6982 скачивания

_________________
SONY KDL-32CX520
Вернуться к началу
 Заголовок сообщения: Re: Kinogo.net
СообщениеДобавлено: Вс ноя 02, 2014 12:08 am 
Не в сети

Зарегистрирован: Вс окт 12, 2014 12:58 pm
Сообщения: 1
Сломался подкаст Kinogo.net. Вместо ссылок на фильм, получаются ссылки на трейлеры. Исследование страниц с фильмами на сайте kinogo.net выявило то, что они блок вывода проигрывателя фильма закодировали в base64 и яваскриптом его декодят для вывода на страницу. Для обхода этого дела я изменил в скрипте подкаста блок получения ссылки на фильм следующим образом:
Код:
  if (HmsRegExMatch("flashvars[^>]+file=(.*?)&", sHtml, sLink, 1, PCRE_SINGLELINE)) {
    // Это ссылка на одиночный видео файл
    if (LOG==1) HmsLogMessage(1, 'Получение ссылки на одиночный видео файл');
   
    // Находим base64 код и декодируем его
    HmsRegExMatch("Base64.decode(.*?)'(.*?)'", sHtml, sLink, 2, PCRE_SINGLELINE);
    shtml = HmsBase64Decode(sLink);

    // Из декодированного из base64 кода вытаскиваем Uppod2 кодированную ссылку на видео файл
    HmsRegExMatch("flashvars[^>]+file=(.*?)&", sHtml, sLink, 1, PCRE_SINGLELINE);

    sLink = DecodeUppod2(sLink);
    sLink = GetRandomServerFile(sLink);
   
    AddMediaItem(PodcastItem, FilmInfo.Values["Title"], sLink, FilmInfo);
   
    // Если установлен параметр - показываем дополнительные информационные элементы
    if (Pos("--addinfoitems", mpPodcastParameters)>0) AddInfoItems(sHtml, FilmInfo);
   
  }


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


Вернуться к началу
 Заголовок сообщения: Re: Kinogo.net
СообщениеДобавлено: Вс ноя 02, 2014 2:07 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 393
cin писал(а):
...теперь ссылки на фильм получаются, но декодирование их из uppod2 происходит с ошибкой. То в случайное место ссылки на фильм последовательность 172 вставит (но это хорошо если так, можно руками вырезать), а то последовательность каких-то знаков вставляет вместо какого-либо символа. Пожалуйста, помогите победить декодирование uppod2.
Поправил подкаст в первом сообщении. Спасибо большое. Обычно, для затруднения получения ссылок, действительно, вносят косяки в зашифрованные ссылки. Именно в зашифрованные. Которые, при раскодировании тоже получаются неправильными.
Вот там, если заметили, есть функция EncodeUppod2(char sData). Она нужна для ЗАкодирования. Т.е. только для отладки.
Я делал так.
Через браузер с запущенным Charles смотрим в нём полученную ссылку при просмотре видео. Потом в HMS при отладке скрипта видим, что у нас получается битая ссылка. Как вы заметили, в основном это цифры "172" в любом месте.
В отладчике останавливаемся, где мы получаем закодированную ссылку и смотрим:
Например, у нас закодированная ссылка такая, записываем её где-нибудь в комментариях:
//2iob3gRLvaUMkjnMtgEM0c9VkHm=2xmLkasB05wbv13lkgD1tQ3VtxyZyjAVydkHOgZbygDNtQENtQ3Wtgw4vc9h0SJ52xWM3NJR3QnLUah435wVUfyR2aZM054Bki7mtQ3NUSbNtgEbv5k8GDrr
Из неё у нас получилась нерабочая ссылка:
http://f-f2-01-orpf.kinogo.net/78d83170 ... a-2014.flv
в начале - разное имя домена получается, это, скорее всего, dns балансер. Это нормально. Но в Charles мы получаем почти такую-же ссылку, только без этих 172 в конце.
Пробуем в нашей полученной в скрипте подкаста ссылке изменить её только часть, и проверить на доступность файла. Т.е. убрать эти "172". Ссылка получается рабочей.
Получается вот такой:
http://f-f2-01-orpf.kinogo.net/78d83170 ... a-2014.flv
В отладчике скрипта запускаем функцию обратного закодирования правильной ссылки и смотрим что получается, записываем под уже комментом ранее закодированной ссылки.
У нас получается такой код:
//2iob3gRLvaUMkjnMtgEM0c9VkHm=2xmLkasB05wbv13lkgD1tQ3VtxyZyjAVydkHOgZbygDNtQENtQ3Wtgw4vc9h0SJ52xWM3NJR3QnLUah435wVUfyR2aZM054Bki7m USbNtgEbv5k8GDrr
просто сравниваем их и видим, что в кодированной ссылке есть четыре лишних символа "tQ3N"
Убеждаемся, для надежности, ещё на паре примеров ссылок и видим, что четыре лишних символа всегда одни и те же, но в разных местах.
Теперь действительно, достаточно эти символы удалять перед раскодировкой и всё будет норм.
Как-раз из-за того, что в раскодировке есть base64, лишние символы могут давать не только значение "172", но и другие - в зависимости от места, где они торчат (смещения).
Подобная фигня используется и на других сайтах.

_________________
SONY KDL-32CX520


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 3 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB