Основан 26 Июля 2013 года
freehacks.ru fhacks.me fhacks.pw fhacksnplmzxaaoo.onion
HashFlare

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 35
  1. #1
    Trust
    TopicStarter
    Аватар для ul1k317

    Статус
    Offline
    Регистрация
    26.08.2013
    Сообщений
    823
    Репутация
    395 + / -
    Web-программист

    Грабим видео с балансера moonwalk.cc

    Решил я посмотреть сериал. Вконтакте нет нихера. Торренты качать, ну их нафиг. Нашел в онлайне через флешовый плеер. Ловить транспорт стрим лень, смотреть в кеш при этом не имеет смысла. Но многие сайты сейчас адаптируют видео под apple устройства, это всегда спасает.

    Итак приступим.

    На сайте размещен iframe на следующий урл [Только зарегистрированные могут видеть это. ]

    Идем туда и получаем флешовый плеер. Нас это не устраивает. Меняем user-agent на iPad и получаем видео transport stream но уже чистое без ебучего флеша.

    Смотрим как формируется отдача видео.

    Во-первых надо забрать токен файла. Это просто он там в открытом виде лежит.

    Делаем $res = grabGET($frameURL); и регуляркой вынеммаем токен.

    Дальше отсылаем токен через curl POST и получаем данные плейлиста.

    Вынимаем адрес плейлиста и забираем его. И тут я долго тупил, потому как в термирале получал ебалу. А в браузере получал нормального вида плейлист с треками. Долго думал. И понял что gzip срет. Браузер его понимает, а я туплю.

    Значит проверяем если разгхипилось то ок если нет то значит юзаем то что есть.

    Дальше я беру треки, я брал самый мелкий, потому что мне пох на качество, на планшете то в метро смотреть. Но можно брать последний и качать HD ready.

    Трек это тоже плейлист но уже со ссылками на куски файла в формате transport stream. Ну и качаем все куски складывая в файл.

    Я этот файл залил в vlc на ipad и с удовольствием сегодня посмотрел пару серий сериала.

    P.S. Я конечно понимаю что это на коленке, но для начинающих подойдет.

    Код:
    function grabPOST($url, $postDATA, $iOS = true) {
    	$ch = curl_init();
    	$ua = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25';	
    	if ($iOS!==false) curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    	
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    	curl_setopt($ch, CURLOPT_HEADER, FALSE);
    	curl_setopt($ch, CURLOPT_POST, TRUE);
    	curl_setopt($ch, CURLOPT_POSTFIELDS, $postDATA);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');
    	curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie.txt');
    	curl_setopt($ch, CURLOPT_REFERER, $url);
    	$out = curl_exec($ch);
    	curl_close($ch);
    	return $out;	
    }
    
    function grabGET($url, $iOS = true) {
    	$ch = curl_init();
    	$ua = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25';	
    	if ($iOS!==false) curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    	curl_setopt($ch, CURLOPT_HEADER, FALSE);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');
    	curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie.txt');
    	curl_setopt($ch, CURLOPT_REFERER, $url);
    	$out = curl_exec($ch);
    	curl_close($ch);
    	return $out;
    }
    
    
    echo "\n-\n";
    
    $frameURL = "http://moonwalk.cc/video/3fc0db3c343e62c97fed4dd48b6e91bb/iframe";
    
    $res = grabGET($frameURL);
    
    preg_match("/video_token: \'([^\']+)\'/is", $res, $m);
    
    if (!empty($m[1])) $token = trim($m[1]); else exit("No token\n");
    
    echo "Token Found: ".$token."\n\n";
    
    $res = grabPOST('http://moonwalk.cc/sessions/create', array('video_token'=>$token));
    
    preg_match("/\"manifest_m3u8\":\"([^\"]+)\"/is", $res, $m);
    
    if (!empty($m[1])) $manifest = trim($m[1]); else exit("No session started\n");
    
    echo "Manifest Found: ".$manifest."\n\n";
    $dirname = pathinfo($manifest);
    $dirname = $dirname['dirname'];
    
    
    $res = grabGET($manifest);
    $resUNZIP = gzdecode($res);
    if (!empty($resUNZIP)) $res = $resUNZIP;
    
    print_r($res);
    
    preg_match_all("/RESOLUTION=([^,]+),/is", $res, $m);
    
    $res = explode("\n", $res);
    foreach($res as $v) {
    	if (!empty($v)) {
    		if ($v[0]!='#') $t[] = $v;
    	}
    }
    
    foreach($t as $k=>$v) {
    	$tracks[] = Array('resolution' => $m[1][$k], 'track' => $dirname.'/'.$v);
    }
    
    print_r($tracks[0]);
    
    unset($t);
    
    // maybe compare resolution ang get better?
    
    
    $res = grabGET($tracks[0]['track']);
    $resUNZIP = gzdecode($res);
    if (!empty($resUNZIP)) $res = $resUNZIP;
    
    $res = explode("\n", $res);
    foreach($res as $v) {
    	if (!empty($v)) {
    		if ($v[0]!='#') $t[] = $dirname.'/'.$v;
    	}
    }
    
    foreach($t as $k=>$v) {
    	file_put_contents("bb-1-3.mp4", file_get_contents($v), FILE_APPEND);
    	echo $k." from ".intval(count($t)-1)."\n";
    }
    
    echo "\n\n";
    Последний раз редактировалось admin; 03.01.2014 в 14:41.
    php, mysql, mssql, js, html, css, ajax, administrating, it consulting, etc.

  2. 7 пользователя(ей) сказали cпасибо:
  3. #2
    Trust
    Админ негодует :3
    Аватар для admin

    Статус
    Offline
    Регистрация
    27.07.2013
    Сообщений
    1,448
    Репутация
    159 + / -
    Безопасность
    Оригинальное решение)
    [Только зарегистрированные могут видеть это. ]
    JID: [Только зарегистрированные могут видеть это. ] - пока не сижу там, только ЛС.

  4. #3
    Trust
    TopicStarter
    Аватар для ul1k317

    Статус
    Offline
    Регистрация
    26.08.2013
    Сообщений
    823
    Репутация
    395 + / -
    Web-программист
    Только сейчас заметил, что качается почему-то все-равно 1280х720
    php, mysql, mssql, js, html, css, ajax, administrating, it consulting, etc.

  5. #4
    Adoa
    Гость
    Аватар для Adoa
    Цитата Сообщение от dsda Посмотреть сообщение
    Только сейчас заметил, что качается почему-то все-равно 1280х720
    А как туда видео то заливать?))

  6. #5
    Trust
    TopicStarter
    Аватар для ul1k317

    Статус
    Offline
    Регистрация
    26.08.2013
    Сообщений
    823
    Репутация
    395 + / -
    Web-программист
    А зачем?
    php, mysql, mssql, js, html, css, ajax, administrating, it consulting, etc.

  7. #6
    Adoa
    Гость
    Аватар для Adoa

    Cool

    Цитата Сообщение от dsda Посмотреть сообщение
    А зачем?
    Ну а зачем его подтягивать если я залить туда нечего не могу, и посмотреть что залито тоже не могу? Можете пояснить в чем тогда фишка)

  8. #7
    Trust
    Админ негодует :3
    Аватар для admin

    Статус
    Offline
    Регистрация
    27.07.2013
    Сообщений
    1,448
    Репутация
    159 + / -
    Безопасность
    Цитата Сообщение от Adoa Посмотреть сообщение
    Ну а зачем его подтягивать если я залить туда нечего не могу, и посмотреть что залито тоже не могу? Можете пояснить в чем тогда фишка)
    грабим - значение видео с балансера moonwalk.cc
    [Только зарегистрированные могут видеть это. ]
    JID: [Только зарегистрированные могут видеть это. ] - пока не сижу там, только ЛС.

  9. #8
    Trust
    TopicStarter
    Аватар для ul1k317

    Статус
    Offline
    Регистрация
    26.08.2013
    Сообщений
    823
    Репутация
    395 + / -
    Web-программист
    Цитата Сообщение от adoa Посмотреть сообщение
    ну а зачем его подтягивать если я залить туда нечего не могу, и посмотреть что залито тоже не могу? можете пояснить в чем тогда фишка)
    это как cdn. сайты загружают свое видео, оно 100% доступно + плеер + монетизация от рекламы.
    php, mysql, mssql, js, html, css, ajax, administrating, it consulting, etc.

  10. #9
    Adoa
    Гость
    Аватар для Adoa
    Цитата Сообщение от dsda Посмотреть сообщение
    это как cdn. сайты загружают свое видео, оно 100% доступно + плеер + монетизация от рекламы.
    Ну а как залить сюда видео я понять не могу, чтоб было 100 доступно+ плеер +монетизация))

  11. #10
    Trust
    TopicStarter
    Аватар для ul1k317

    Статус
    Offline
    Регистрация
    26.08.2013
    Сообщений
    823
    Репутация
    395 + / -
    Web-программист
    Цитата Сообщение от Adoa Посмотреть сообщение
    Ну а как залить сюда видео я понять не могу, чтоб было 100 доступно+ плеер +монетизация))
    залей на ютуб или на vk. зачем именно этот балансер?
    php, mysql, mssql, js, html, css, ajax, administrating, it consulting, etc.

Страница 1 из 4 1234 ПоследняяПоследняя

Метки этой темы

Ваши права

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