[PHP] vbox7.com Video & Subtitles Downloader v2

proba

Registered
Здравейте драги съфорумници.
Преди има-няма седмица стана на въпрос за скрипт който да сваля субтитрите на клип от vbox7.com под формат .srt и единственият метод за който се сетих беше чрез сайтът infosphere.
Снощи се записахме с един съфорумец (@critrate) по тази тема и реших да се поразровя малко повече за json кодирането и така към 7 сутринта вече скрипта беше готов.
Не съм сигурен до кога ще работи тъй като начално време на текст, крайно време на текст и самият текст са 3те ключа на масива, но при различните клипове подредбата е различна примерно "s t f" при други "f t s", но за моментът скриптът работи пък ако си направят и 3ти вид кодиране на json тогава вече ще му мисля.
Приемам всякакви критики и препоръки ;)

Свали: http://web-tourist.net/userfiles/5/4929.rar

Поздрави ;)
 
Тъй като вече се започна с въпросите за това което казах за масива, ето малко обяснение.

Примерен файл test.php

Код:
<?php
ob_start();
header('Content-Type: text/html; charset=UTF-8');
$url = "http://vbox7.com/play:2b9524ce69"; // url към клипа
$getjson = stripcslashes(file_get_contents("http://vbox7.com/etc/ext.do?key=".end(explode(":",$url))));
$jsoncode_a = explode("subsData=",$getjson);
$jsoncode_b = explode("&related",$jsoncode_a[1]);
$json_data = urldecode($jsoncode_b[0]);
echo $json_data;
?>

Като резултат давам първият масив:

{"s":"Две класики, една кола
7-ми Юли 2011 г.","t":9,"f":3}

С подредба на ключове: s t f

Примерен файл test2.php при който е сменен само линкът на видеото.
PHP:
<?php
ob_start();
header('Content-Type: text/html; charset=UTF-8');
$url = "http://vbox7.com/play:b74ece70fa"; // url към клипа
$getjson = stripcslashes(file_get_contents("http://vbox7.com/etc/ext.do?key=".end(explode(":",$url))));
$jsoncode_a = explode("subsData=",$getjson);
$jsoncode_b = explode("&related",$jsoncode_a[1]);
$json_data = urldecode($jsoncode_b[0]);
echo $json_data;
?>

Отново резултат от първият масив:
{"f":16,"t":19,"s":"\u0417\u0430\u0445\u0440\u0430\u043d\u0432\u0430\u043d\u0435\u0442\u043e \u0441 \u0435\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043b\u0430\u043c\u043f\u0438\u0442\u0435 \u0432 \u0442\u043e\u0437\u0438 \u0442\u0435\u0430\u0442\u044a\u0440"}

Като оставим настрана че текстът е криптиран, се забелязва че подредбата на ключовете е променена, а именно: f t s

Доста се порових из google докато открия това полезно чудо!:

function ewchar_to_utf8($matches)
{
$ewchar = $matches[1];
$binwchar = hexdec($ewchar);
$wchar = chr(($binwchar >> 8 ) & 0xFF) . chr(($binwchar) & 0xFF);
return iconv("unicodebig", "utf-8", $wchar);
}

function special_unicode_to_utf8($str)
{
return preg_replace_callback("/\\\u([[:xdigit:]]{4})/i", "ewchar_to_utf8", $str);
}

За да може да се декриптира текстът на клипове като този вторият.

И за това казах, че ако направят така, че да се добавят и субтитри по друг начин, примерно пак разменени ключове и съвсем друг вид криптиране на текста, тогава няма гаранция, че ще работи скрипта, но и да стане това предполагам, че ще ми се занимава да го оправя :D

Поздрави ;)
 

Back
Горе