Ну а как формируется ссылка для скачивания? И не с Ютуба а с intv.ru ??
Дело в том что ссылка на скачивание действует только пару часов, а далее чоб скачать, то нада снова генерировать по новой. В чем там прикол? Вот код ниже, это с того сайта
Code
var req;
var reqTimer;
var reqTimeout = 90000;
var processorURL = 'http://cs.videosaver.ru/url/';
function loadXMLDoc(url) {
if (req != null) return;
if (window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch (e) {
}
} else if (window.ActiveXObject) {
try {
req = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {
}
}
}
if (req) {
req.onreadystatechange = processReqChange;
req.open('POST', processorURL, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
req.send('url=' + escape(url));
reqTimer = setTimeout("abort();", reqTimeout);
} else {
alert("Браузер не поддерживает передачу данных при помощи JavaScript");
}
}
function processReqChange() {
setResult(stat(req.readyState));
if (req.readyState == 4) {
clearTimeout(reqTimer);
if (req.status == 200) {
processResult(req.responseText);
} else {
processResult('CLIENT_ERROR');
}
}
}
function abort() {
req.abort();
processResult('SERVER_TIMEOUT');
}
function stat(n) {
switch (n) {
case 0:
return "не инициализирован";
break;
case 1:
case 2:
case 3:
return "загрузка...";
break;
case 4:
return "готово";
break;
default:
return "неизвестное состояние";
}
}
function translateResult(result) {
var bug = ' '
if (result instanceof Array)
{
return (getMultiLinks(result));
}
else
{
if (result.match("^http:"))
{
return 'Нажмите, чтобы <a href="' + unescape(result) + '" target="_top" style="margin: 0 10px 0 10px;">» скачать файл «</a> [как смотреть <a href="http://videosaver.ru/blog/2007-11-08-2" target="_blank">FLV</a> ?]';
}
else if (result.match("^\\["))
{
return (getMultiLinks(eval(result)));
}
else if (result == "INCORRECT_URL")
{
document.getElementById('divBug').style.display = "block";
return 'Некорректный адрес.';
}
else if (result == "UNSUPPORTED_SERVICE")
{
return 'К сожалению, данный сервис пока не поддерживается.';
}
else if (result == "RETRIEVE_DATA_ERROR")
{
return 'Не удалось получить данные с запрашиваемой страницы. Попробуйте снова или чуть позже.';
}
else if (result == "INTERNAL_ERROR")
{
return 'Сожалеем, но у нас произошла ошибка. Попробуйте снова чуть позже. Извините за неудобства.';
}
else if (result == "CLIENT_ERROR")
{
return 'Не удалось получить данные. Возможно, происходит обновление. Пожалуйста, попробуйте снова или чуть позже.';
}
else if (result == "UNFOUND_VIDEO")
{
document.getElementById('divBug').style.display = "block";
return 'Не удалось найти видео файл. Возможно, он был удален, либо на него наложены какие-то ограничения.';
}
else if (result == "SERVER_TIMEOUT")
{
return 'Время ожидания ответа от сервера истекло. Пожалуйста, попробуйте снова или чуть позже.';
}
else if (result == "RESOURCE_NOT_FOUND_ERROR")
{
document.getElementById('divBug').style.display = "block";
return 'Не удалось найти запрашиваемую страницу. Пожалуйста, убедитесь, что введенный Вами адрес существует.';
}
else if (result == "VK_FRIENDS_ONLY")
{
return 'Не удалось найти видео. Данная страница доступна только друзьям пользователя.';
}
else if (result == "VK_GROUPS_ONLY")
{
return 'Не удалось найти видео. Данная страница доступна только участникам группы.';
}
else if (result == "SERVER_OVERLOADED")
{
return 'К сожалению, в настоящее время сервер перегружен. Повторите попытку чуть позже.';
}
}
return 'Произошла внутренняя ошибка, сожалеем. Попробуйте снова или чуть позже.';
}
function requestdata(params) {
document.getElementById('divExample').style.display = "none";
document.getElementById('divMessage').style.display = "block";
document.getElementById('dButton').disabled = true;
document.getElementById('divBug').style.display = "none";
document.getElementById('divImg').style.display = "block";
if (params.match('http://') == null) {
processResult('INCORRECT_URL');
return;
}
loadXMLDoc(params);
}
function processResult(result) {
req = null;
document.getElementById('divImg').style.display = "none";
document.getElementById('dButton').disabled = false;
setResult(translateResult(result));
if (result instanceof Array || result.match("^\\[")) {
changeLink(0);
}
}
function setResult(result) {
document.getElementById('divMessage').innerHTML = result;
}
function getMultiLinks(result) {
var links = '';
links = links + 'Нажмите, чтобы <div id="divLink" style="display:inline;"></div> '
links = links + '<select id="filesList" onchange="changeLink(this.selectedIndex);" style="width:150px;">'
for (var i = 0; i < result.length; i++) {
var url = result[i][1];
var title = result[i][0];
var brief = (title.length > 64) ? title.substring(0, 64) + '...' : title;
links = links + '<option value="' + url + '" title="' + title + '">' + (i + 1) + '. ' + brief + '</option>';
}
links = links + '</select>'
return links;
}
function changeLink(index) {
setLink('<a style="margin: 0 10px 0 10px;" href="' + document.getElementById('filesList').options[index].value + '" target="_blank">» скачать файл №' + (index + 1) + ' «</a>');
}
function setLink(message) {
document.getElementById('divLink').innerHTML = message;
}