Пост
Hello :)

PHP

-

Как Namba.kz генерирует ссылки, для просмотра видео :)

На досуге решил заняться чем-нибудь интересным, а точнее написать граббёр видео с намбы) не тут-то было, прямых ссылок, при публикации видео нет, а значит генерируются уже по ходу дела, видимо защита от умников))

 

Пример, возьмём часть кода:


<object height="375" width="100%" type="application/x-shockwave-flash" data="http://video.namba.kz/swf/player/3.2.7/flowplayer-3.2.7.swf">
<param value="true" name="allowfullscreen" />
<param value="opaque" name="wmode" />
<param value="always" name="allowscriptaccess" />
<param name="src" value="http://video.namba.kz/swf/player/3.2.7/flowplayer-3.2.7.swf" />
<param value="config=http://video.namba.kz/flashvars.php?i=15702541_15702511__2962791_1" name="flashvars" /></object>


И так, мы имеем:

Плеер: http://video.namba.kz/swf/player/3.2.7/flowplayer-3.2.7.swf

Подгружаемый конфиг: http://video.namba.kz/flashvars.php?i=15702541_15702511__2962791_1

Покопавшись в конфиге, также не нашел прямых ссылок, зато нашел метод выполнения XSS :)


Далее, запустил обычный http снифер и обнаружил, что при нажатии кнопочки Play идёт видео поток:
http://download.files.namba.kz/files/0a93dd3c5883fa4048299f4c3936a619/4f4e3a1d/15702541/video.flv

 

 

Данные в сылке: 4f4e3a1d и  15702541  берутся из конфига:

 

4f4e3a1d - Штамп времени, для генерации временной ссылки, примерно выглядит так:


$time = time();
$time_hex = sprintf("%08x", $time);

15702541 - Уникальный ID ролика

 

А вот Хэш:  0a93dd3c5883fa4048299f4c3936a619, я так понял - генерируется самим плеером.

 

Пришлось копаться, в исходном коде плеера :) Думал что-то интересное, а это оказался стандартный Flowplayer) Вот исходной код функции:


internal function buildClipUrl(arg1:String, arg2:org.flowplayer.model.Clip):String
{
var loc1:*=0;
var loc2:*=null;
if (!arg1)
{
return null;
}
this.log.debug("main resolver is " + this._mainResolver);
if (org.flowplayer.util.URLUtil.isCompleteURLWithProtocol(arg2.getPreviousResolvedUrl(this._mainResolver)))
{
loc1 = arg2.url.lastIndexOf("/files/") + 6;
loc2 = [arg2.url.substring(0, loc1), arg2.url.substring(loc1 + 1)];
return org.flowplayer.util.URLUtil.appendToPath(org.flowplayer.util.URLUtil.appendToPath(loc2[0], this.generateProtection(arg1, loc2[1])), loc2[1]);
}
return org.flowplayer.util.URLUtil.appendToPath(this.generateProtection(arg1, arg2.getPreviousResolvedUrl(this._mainResolver)), arg2.url);
}
 
internal function generateProtection(arg1:String, arg2:String):String
{
var loc1:*=this._config.token;
return com.adobe.crypto.MD5.hash(loc1 + "/" + arg1) + "/" + arg2;
}


После изучения кода, пишем функцию на php и делаем всё, что нам нужно, от вставки в свой плеер до граббёра.

  • Serj, 01 марта 2012
9 комментариев
Avatar
  1. Ghanijon Safarov
    Ghanijon Safarov
    9 августа 2015 20:11
    как правильно вставить url адрес ролика на сайте Namba.kg
  2. Sergey Kolesv
    Sergey Kolesv
    9 октября 2012 02:40
    А можно попродробнее про "пишем функцию на php" ? Спасибо заранее.
  3. DELETED
    DELETED
    30 сентября 2012 00:04
    Блин, я не могу, просто по одному айди 2962791 к примеру (это последние цифры), как получить те первые два числа??? откуда
  4. Ерлан Даутов
    Ерлан Даутов
    25 августа 2012 02:11
    как заблокировать рекламу я видел на одно сайте они через php заблокировали рекламу но там один мину он не катин на crome можешь написать скрип для блокирования этой рекламы
    1. Евгений Ведмедь
      Евгений Ведмедь
      25 августа 2012 21:14
      Не подскажешь кто писал ???
    2. Serj
      Serj
      25 августа 2012 21:39
      Жанат Уалитов, можно пару кешев поставить вырезая теги с рекламой и запастись пачкой прокси) но всёравно бред)
    3. Ерлан Даутов
      Ерлан Даутов
      25 августа 2012 21:43
      бред не бред смотри на этом сайте сделано http://ikinokz.net/2868-super-mayk.html тока через хром не смотри он в нем неработает а в остальных работает без какой либо рекламы
    4. Serj
      Serj
      25 августа 2012 23:50
      И?)) эта система была мной год назад реализованна на заказ, а потом ктото слизал и сделал очень криво)) но у меня она работала 100%) а тут как я погляжу сайт лагает и пару экспериментов и можно сделать так, чтобы намба забанила IP) да и сервак повесить данным методом 2 секунды) И кста Намба скоро сменит алгиритм ;)
  5. Serj
    Serj
    9 июня 2012 03:40
    Пример работы тут: http://serj.kz/namba

© SERJ.WS 2011-2021