Домашний медиа-сервер (UPnP, DLNA, HTTP) Домашний медиа-сервер (UPnP, DLNA, HTTP) Домашний медиа-сервер (UPnP, DLNA, HTTP)
Главная Решения пользователей программы "Домашний медиа-сервер (UPnP, DLNA, HTTP)"
 
Текущее время: Сб окт 20, 2018 2:59 pm

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




Начать новую тему  Ответить на тему  [ 66 сообщений ]  На страницу Пред. 1 2 3 4 57 След.
Автор Сообщение
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Пн окт 22, 2012 11:30 pm 
Не в сети

Зарегистрирован: Пн окт 10, 2011 5:45 pm
Сообщения: 110
И еще вопрос можно ли в скрипте проверить автоматом правильно создалась ли ссылка, т.е. если такой файл на сервере?

_________________
samsung UE32D5000


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Вт окт 23, 2012 8:17 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 384
linkey писал(а):
Подскажите, как в скрипте запустить файл с диска?

Это С++ скрипт, но переделать под Pascal или JacaScript, думаю, не составит труда:
Код:
{
  Variant objShell, objStdOut, objWshScriptExec; char strOutput;

  try {objShell = CreateOleObject('WScript.Shell');} except {}
  if (VarType(objShell)!=varDispatch) {
    HmsLogMessage(1, 'Не могу создать ActiveXObject WScript.Shell');
    return;
  }
  objShell.Run('Calc.exe');

  objWshScriptExec = objShell.Exec("ipconfig");
  objStdOut = objWshScriptExec.StdOut;
  strOutput = objStdOut.ReadAll();
  strOutput = ReplaceStr(strOutput, '\n', '<br>');
  strOutput = HmsHtmlToText(strOutput, 866);
  ShowMessage(strOutput);
}
slawa321 писал(а):
а вот ехе -думаю это уже можно вируса делать
Влёгкую. Особенно у тех, кто запускает HMS в режиме сервиса. Поэтому люди - не качайте скриптов где попало. )
linkey писал(а):
можно ли изменить заголовок медиаресурса, в скрипте получения ссылки.
Можно, какие проблемы? заголовок всего, до чего рука дотянется. )
PodcastItem[mpiTitle] = 'Привет. Это я, ссылка';
PodcastItem.ItemParent[mpiTitle] = 'Привет. Это родитель того, чью ссылку мы обрабатываем';
Только "загрузки свойств фалов" (срабатывания скрипта) нужно обновить отображение на экране - F5, и название подкаста или каталога ссылки будет таким, каким мы его изменили.
linkey писал(а):
Кто нибудь пробовал пользоваться "скрипт формирует несколько ссылок". Объясните плиз на простом примере как это сделать. Подкаст ютуб просмотрел, скачал даже пару подкастов с буржуйского wms, но так что то и не понял.
Вот этого незнаю.. Действительно, подкаст youtube Евгения формирует несколько ссылок, при выборе проигрывания фильма, разного доступного качества. Но как влияет эта галочка на это, не разбирался.
linkey писал(а):
можно ли в скрипте проверить автоматом правильно создалась ли ссылка, т.е. если такой файл на сервере?
Эээ.. супер универсального ответа, наверно нет, потому как наличие файла и его доступность иногда трудно проверить, пока его действительно не начнёшь "качать". Потому как часто ссылки на файлы, на самом деле ссылки на скрипты с передачей параметров, а те уже могут начать отдачу потока или перенаправить... Но как вариант, можно сделать запрос, методом HEAD, и посмотреть заголовки в ответах. Где-то у меня функия раньше валялась, я использовал, для получения redirect ссылки. Примерно так:
Код:
  Variant xmlHttp=null; char sLocation='', s; int nTimeOut, TimeStart;

  try {xmlHttp = CreateOleObject('WinHttp.WinHttpRequest.5.1');} except {}
  if (VarType(xmlHttp)!=varDispatch) {HmsLogMessage(1, 'Невозможно создать ActiveXObject WinHttp.WinHttpRequest.5.1'); return '';}
  xmlHttp.Open('HEAD', sLink, true);
  xmlHttp.SetRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0');
  xmlHttp.SetRequestHeader('Referer', gsUrlBase);
  xmlHttp.Send();
  xmlHttp.WaitForResponse();
  sLocation=xmlHttp.GetResponseHeader('Location');
  s=xmlHttp.GetAllResponseHeaders();
Вот там можно получить и Content-Lenght или какой-нибудь другой заголовок, который может быть показателем, на нужный файл это сслыка, или вообще ответ 404 или перенаправление не туда куда надо (часто такое делают, перенаправляют в другое место).
После подсказки с Rutracker.org Женей, понял что подобную функцию можно сделать более "родным" способом. Что-то типа того:
Код:
  char sHeader='', sCookie='', sContentLenght=''; 
  HmsSendRequestEx('login.rutracker.org', '/forum/login.php', 'HEAD',
                   'application/x-www-form-urlencoded', sReferer,
                   'login_username='+mpPodcastAuthorizationUserName +
                   '&login_password='+mpPodcastAuthorizationPassword+'&login=%C2%F5%EE%E4',
                   80, INTERNET_FLAG_NO_AUTO_REDIRECT + INTERNET_FLAG_NO_COOKIES, sHeader);
  HmsRegExMatch('Set-Cookie: (.*?);', sHeader, sCookie, 1, PCRE_SINGLELINE));
  HmsRegExMatch(Content-Lenght: (.*)\n', sHeader, sContentLenght, 1, PCRE_SINGLELINE));
Т.е. мы делаем запрос, не получая контента, а только заголовки от сервера. А там уже поанализировать их. Например взять куки или Location - ссылку перенаправления. Это иногда пригоджается.
HmsRegExMatch(Location: (.*)\n', sHeader, sRedirectLink, 1, PCRE_SINGLELINE));
После этого в sRedirectLink будет ссылка перенаправления, если она там есть конечно.

Не то, что я самый умный, просто вижу вопросы без ответов, может чем помогу. Сам нуждаюсь частенько в помощи. Так что чем больше общения на эту тему, тем больше информации. Кто знает ещё что - колитесь.

_________________
SONY KDL-32CX520


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Ср окт 24, 2012 6:22 pm 
Не в сети

Зарегистрирован: Пн окт 10, 2011 5:45 pm
Сообщения: 110
WendyH писал(а):
...

Спасибо попробую

_________________
samsung UE32D5000


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Вт окт 30, 2012 10:38 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 384
Уж больно нравиться мне название темы, поэтому буду выкладывать информацию по созданию подкастов сюда.

Если вы встретили на сайте флеш плеер uppod.swf
Если вы видите, что ссылки на файл видео или плейлиста зашифрованы, или есть ссылка на другой текстовый файл, который зашифрован во flashvars.
Например как на степашка.ком:
<param name="flashvars" value="comment=Stream-video&st=http://www.stepashka.com/engine/classes/flashplayer/video88-1287.txt&pl=4cQoHu0Npl8L81bNpnEDHlQ3H1Ff41XhpIvNVSMdVCM8USGNw1G3VT3h4TYXHWG3HTRXYTbfpTQawArr" />
То можно попытаться это дело расшифровать.
Вообще, во всех случаях изучения получения ссылки - формула примерно одна:
- Сниффером (например Wireshark) слушаем http и смотрим какие запросы идут и ответы приходят
- Скачиваем флеш плеер, декомпилируем (например Flash Decompiler Trillix) и изучаем как оно всё там происходит.

В случае с uppod, есть несколько советов, возможно очень облегчающих получение реальной ссылки.
Если с плеером uppod ссылки закодированы, значит хозяева ресурса его купили и платная версия этого плеера собирается с возможностью шифрования ссылок. Шифровка ссылок у каждого клиента, купившего плеер, своя. Поэтому придётся смотреть внутрь плеера, который используется на ресурсе.
Но на самом деле, если повезёт и ничего дополнительно не используется для шифрования и защиты контента, там всё просто.
1) Скачиваем uppod.swf
2) Декомпилим
3) Ищем в файле скрипта ActionScript плеера значения двух массивов с именами codec_a и codec_b
Например в плеере степашки это будут строки типа:
client.codec_a = new Array("G", "d", "R", "0", "M", "Y", "4", "v", "6", "u", "t", "i", "f", "c", "s", "l", "B", "5", "n", "2", "V", "Z", "J", "m", "L", "=");
client.codec_b = new Array("1", "w", "Q", "o", "9", "U", "a", "N", "x", "D", "X", "7", "z", "H", "y", "3", "e", "g", "T", "W", "b", "8", "k", "I", "p", "r");
В плеере http://st.keyset.kz/pl/pl.swf
client.codec_a = ["m", "T", "u", "p", "L", "n", "M", "6", "Q", "i", "w", "7", "t", "X", "s", "0", "l", "a", "k", "v", "G", "B", "D", "2", "R", "="];
client.codec_b = ["9", "c", "W", "Z", "I", "H", "J", "e", "V", "o", "y", "z", "d", "N", "b", "4", "U", "Y", "x", "g", "5", "8", "3", "1", "f", "F"];

Это - таблицы замен символов. Они, по-умолчанию, тупо кодируют текст в Base64 и меняют символы по этим таблицам. Поэтому можно попытатся расшифровать ссылку или текст следующим скриптом (С++ script):
Код:
// -----------------------------------------------------------------------------
// Расшифровка закодированного текста плеера uppod
char DecodeUppodText(char sData) {
  variant char1, char2; int i;
  variant Client_codec_a = ["G", "d", "R", "0", "M", "Y", "4", "v", "6", "u", "t", "i", "f", "c", "s", "l", "B", "5", "n", "2", "V", "Z", "J", "m", "L", "="];
  variant Client_codec_b = ["1", "w", "Q", "o", "9", "U", "a", "N", "x", "D", "X", "7", "z", "H", "y", "3", "e", "g", "T", "W", "b", "8", "k", "I", "p", "r"];

  sData = ReplaceStr(sData, "\n", "");
  for (i=0; i<Length(Client_codec_a); i++) {
    char1 = Client_codec_b[i];
    char2 = Client_codec_a[i];
    sData = ReplaceStr(sData, char1, "___");
    sData = ReplaceStr(sData, char2, char1);
    sData = ReplaceStr(sData, "___", char2);
  }
  sData = HmsUtf8Decode(HmsBase64Decode(sData));
  return sData;
}
Это функция взята из моего модкаста Stepaska.com. Переделать её под другие языки скриптов не самое сложное дело.

В случае с keyset.kz - ссылки были зашифрованы в текстовом файле, который возвращался по запросу с ид фильма. В случае со степашкой.ком - зашифрована прямая ссылка на файл плейлиста или видео. Т.е. варианты что именно шифровать могут быть разные. Но как расшифровать, скорее всего вариант, который тут описан. И это сообщение - небольшая наводка.

В uppod плеере, если кто будет копаться, функции шифровки/дешифровки находятся в классе Is. Вход проверки дешифровки - функция _foo. Хотя, названия функций и класса очень похожи на обфусцированные, поэтому от версии к версии плеера, возможно, будут отличаться.

Вот и всё что хотел сказать. Может кому пригодится. Всё тупо, на самом деле. Спасибо slawa321 за проделанную первоначальную работу и предоставленую информацию.

_________________
SONY KDL-32CX520


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Сб дек 08, 2012 10:18 pm 
Не в сети

Зарегистрирован: Ср фев 15, 2012 11:23 am
Сообщения: 67
Доброго времени суток!!!!
Вопрос, а можно ли в скрипте получить информацию о файле, такую как в MediaInfo или как при выполнении команды "Загрузить свойства файла"?

_________________
Samsung UE32D5500RW, Assistant AP-110, Fly IQ4404 Spark


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Чт дек 13, 2012 8:25 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 384
Я тут немного про другое хочу написать, но заодно и отвечу на предыдущее сообщение.
PavelN65 писал(а):
Вопрос, а можно ли в скрипте получить информацию о файле, такую как в MediaInfo или как при выполнении команды "Загрузить свойства файла"?
Я вот попробовал, но с ходу тоже не смог разобраться с HmsMediaInfoCreate и HmsMediaInfoGet... Ничего не получилось. Можно у Евгения поинтересоваться, если сильно нужно.

А теперь продолжение темы про uppod флеш плеер.

Мне тут tarzann5 интересную ссылку на плеер дал, где нет значений Client.codec_a и Client.codec_b.
http://allserials.tv/sites/all/librarie ... /uppod.swf

Мне показалось интересным и действительно, обычный плеер uppod, только нигде нет присвоения значений этим двум переменным. Но информация на сайте ресурса кодируется. Внимательно поглядев на всю туже функцию _foo класса Is (шифровка/дешифровка в плеере), там видно ещё пару проверок и дешифровка вполне себе работает и без этих заданных переменных. Просто если их нет, то таблицы замен берутся немного не так и сдругого места.
И вместо ответа ему в личку я решил написать статью для всех, сюда. Дополнить информацию по этому плееру.

В общем суть. Если вы увидели использование флеш плеера uppod с закодированными ссылками на ресурсе, заглянули в плеер и не нашли значений codec_a и codec_b, то..
То нужно найти другое значение, hash. Это может быть строчка типа вида:

internal var hash:String="0123456789WGXMHRUZID=NQVBLihbzaclmepsJxdftioYkngryTwuvihv7ec41D6GpBtXx3QJRiN5WwMf=ihngU08IuldVHosTmZz9kYL2bayE";

Если такую строчку нашли, то процедура декодирования будет немного другой, но по суте тойже.
Вот пример функции декодирования на C++ script:
Код:
// -----------------------------------------------------------------------------
// Расшифровка закодированного текста плеера uppod
char DecodeUppodText2(char sData) {
  variant char1, char2, hash, tab_a, tab_b; int i;

  hash = "0123456789WGXMHRUZID=NQVBLihbzaclmepsJxdftioYkngryTwuvihv7ec41D6GpBtXx3QJRiN5WwMf=ihngU08IuldVHosTmZz9kYL2bayE";

  // Проверяем, может не нужно раскодировать (json или ссылка)
  if ((Pos("{", sData)>0) || (LeftCopy(sData, 4)=="http")) return HmsUtf8Decode(sData);

  sData = DecodeUppod_tr(sData, "r", "A");
 
  hash = ReplaceStr(hash, 'ih', '\n');
  if (RightCopy(sData, 1)=='!') {
    sData = LeftCopy(sData, Length(sData)-1);
    tab_a = ExtractWord(4, hash, '\n');
    tab_b = ExtractWord(3, hash, '\n');
  } else {
    tab_a = ExtractWord(2, hash, '\n');
    tab_b = ExtractWord(1, hash, '\n');
  }

  sData = ReplaceStr(sData, "\n", "");
  for (i=1; i<=Length(tab_a); i++) {
    char1 = Copy(tab_b, i, 1);
    char2 = Copy(tab_a, i, 1);
    sData = ReplaceStr(sData, char1, "___");
    sData = ReplaceStr(sData, char2, char1);
    sData = ReplaceStr(sData, "___", char2);
  }
  sData = HmsUtf8Decode(HmsBase64Decode(sData));
  sData = ReplaceStr(sData, "hthp:", "http:");
  return sData;
}
string DecodeUppod_tr(string sData, string ch1, string ch2) {
  string s = ""; int i, loc3, nLen;

  if ((Copy(sData, Length(sData)-1, 1)==ch1) && (Copy(sData, 3, 1)==ch2)) {
    nLen = Length(sData);
    for (i=nLen; i>0; i--) s += Copy(sData, i, 1);
    loc3 = Int(StrToIntDef(Copy(s, nLen-1, 2), 0)/2);
    s = Copy(s, 3, nLen-5); i = loc3;
    if (loc3 < Length(s)) {
      while (i < Length(s)) {
        s = LeftCopy(s, i) + Copy(s, i+2, 99999);
        i+= loc3;
      }
    }
    sData = s + "!";
  }
  return sData;
}

На Pascal Script данную функцию переделать предлагаю самим.

Такие дела. Всё очень просто.
Я посмотрел другие плеера, даже где есть значения codec_a и codec_b, везде есть это значение hash. Это строка из четырёх частей, разделённая символами "ih", где первые две части это таблицы замен закодированного теста, а вторые две части тоже талицы замен (как codec_a и codec_b) только используются в случае, если закодированные данные кончаются на знак "!", при этом если этот знак есть, то он откидывается при декодировании. Это словами то, что выше написано кодом.
Вдруг кому пригодится.

_________________
SONY KDL-32CX520


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Пт дек 14, 2012 11:48 am 
Не в сети

Зарегистрирован: Ср фев 15, 2012 11:23 am
Сообщения: 67
WendyH Спасибо за полезные подсказки!!!!

_________________
Samsung UE32D5500RW, Assistant AP-110, Fly IQ4404 Spark


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Сб дек 15, 2012 8:50 pm 
Не в сети

Зарегистрирован: Пн окт 10, 2011 5:45 pm
Сообщения: 110
Попал на сайт который дает ссылки на многие ресурсы. Хотел сам осилить, но не смог. Не знаю то ли маловато знаний то ли времени. Вообщем прошу помощи! Сайт http://ru.savefrom.net/
Код:
SaveFrom.net делает скачивание из интернета простым и удобным. С нашей помощью можно бесплатно скачать аудио, видео и другие файлы с различных сайтов и социальных сетей: rapidshare.com, youtube.com, depositfiles.com, vkontakte.ru и других.

Добрался до скрипта savefrom.php который выдает шифрованную ссылку
Код:
<html><body><script type="text/javascript">        (function(){
          window.u62=function(a,b,c){return a.replace(c,b);};
          try
          {
            eval(unescape("var%20x%3D%271f%28%22%5C%5C%5C%5CC%5C%
.............................................................
return;
          }
          catch(err){}
        })();</script></body></html>


попытался расшифровать но не смог! Простите ума не хватает.:)

_________________
samsung UE32D5000


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Сб дек 15, 2012 9:23 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 384
linkey писал(а):
...попытался расшифровать но не смог!
Нука-нука, интересно!
Можно рабочий пример, который выдаёт такой код html? А то тут из куска непонятно что там и как.

P.S.: Понял. Отставить. Уже разбираюсь.

_________________
SONY KDL-32CX520


Вернуться к началу
 Заголовок сообщения: Re: Помощь в создании подкастов
СообщениеДобавлено: Вс дек 16, 2012 7:07 pm 
Не в сети

Зарегистрирован: Пт апр 13, 2012 7:59 pm
Сообщения: 384
linkey писал(а):
Попал на сайт который дает ссылки на многие ресурсы. Хотел сам осилить, но не смог. Не знаю то ли маловато знаний то ли времени. Вообщем прошу помощи!
В общем, многочасовой детектив по раскодированию их суперстарательно зашифрованного ответа был завершен, но удовлетворение было получено только от действа, чем от результата.. Ибо изначально я знал, что ветвь развития этого направления ведёт под откос.. Я вот про что. Чтобы яваскриптовые функции использовать, возвращяемые от сайта, нужно делать Eval. А делать Eval содержимого от чужого сайта - эта прямая дорожка к тому чтобы скатиться... Ну, в общем, нельзя. НЕЛЬЗЯ. Конечно можно. Но нельзя. Это плохой тон. Очень. Можно конечно замарочится и сделать свой парсер, который Eval делает не напрямую тупо. Такие есть, но это сложно.

Но чисто для тестирования я слелал. Куча недостатков: получение ссылок медленное. Не 100%. Например, в некоторых случаях получаем ответ, раскодируем, там получаем опять ссылку на iframe, делаем новый запрос, раскодируем... Как с rutube - очень медленно.
Иногда вообще у меня получение ссылок не срабатывало. Правда сегодня у них новость появилась "У нас возникли технические проблемы, работаем над их устранением.
16.11.2012". Может и с этим связяно. И вообще, я всё не проверял. Скорее всего там есть моменты, которые стоит ещё обрабатывать отдельно.

В общем, для простого любопытства и раз просили - вот, пример тест этого ресурса. Скрипт находится в "скрипте чтения списка списка ресурсов". Типа добавляем подкаст со ссылкой - и при обновлении он создаёт ссылки на варианты качества.

Ещё прикол в том, что ссылки с youtube он даёт не прямые, я вам скажу. А копии этих файлов со своего ресурса (что за фигня? они youtube скопировать решили?). В общем, если интресно, можете покапаться.

Ракодировка свожится к Eval данных, потом вырезанию участка кода, который может помешать, корректировке кода, и опяь Eval и так, пока не получаем конечный ответ. Переписал всё на Pascal Script, для вашего удобства. Но внимательный заметит, что я изначально всё делал на C++.

_________________
SONY KDL-32CX520


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 66 сообщений ]  На страницу Пред. 1 2 3 4 57 След.

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


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

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


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

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