Как быстро скачивать файлы из Вконтакта

Данный метод применим относительно Unix систем для быстрого скачивания больших файлов с серверов на которых настроены лимиты отдачи контента. Пример такой настройки хорошо виден вконтакте, когда открываешь страничку с фильмом и  если соединение с интрнетом скоростное, то хорошо видно, как несколько минут фильм закачиваются мгновенно, а остальная часть закачивается гораздо медленне. Это удобно и для пользователей и хозяев сервера, пользователь просто смотрит фильм и может чуть чуть подмонуть его, пропустив титры, а сервер получает меньшую нагрузку. Но это не удобно, когда нужно быстро скачать файл, закинуть на флешку и ехать за 3/9 земель.

Решить эту проблему можно с помощью просто скрипта на Bash, суть его такова, в бесконечном цикле запускается wget с опцией докачивания файла и запуском процесса в фоне, затем следует пауза в 3 секунды, а затем запускается команда выключающая процесс wget и если команда отключения сработала, то значит файл ещё не докачался и нужно повторить докачку иначе закончить цикл. Таким образом прерывая процесс закачки каждые 3 секунды можно добиться максимальной скорости отдачи контента с Вконтакта.

Скрипт демонстирует работу трёх встроенных в bash переменных

$@  список аргументов переданных при запуске скрипта, эту переменную можно использовать если нужно скачать несколько файлов сразу

$! в этой переменной находится PID последнего запущеного в фоне процесса, эту переменную удобно использоваться для вычислений PID процесса wget для того чтобы выключить его с помощью команды kill

$? в этой переменной находится результат выполнения последнй запущенной программы, а эта переменная используется для определения сработала ли команда kill относительно запущенного в фоне wget

вот код скрипта vk-download.sh

while [ 1 ]; do
    wget  -c $@ &
    sleep 3
    kill $!    
    if [ $? != 0 ]; then break; fi;
done;

Для запуска скрипта необходимо дать ему права на выполнение: chmod a+x vk-download.sh и использовать его следующим образом:

vk-download.sh https://psv4.userapi.com/c542408/u131936184/videos/97a37e246e.240.mp4 https://psv4.userapi.com/c542408/u131936184/videos/97a37e246e.720.mp4

Разумеется для скачивания видео из ВК необходимо уметь добывать ссылку на видео, но это другая история. Стоит заметить что с этим скриптом файлы скачиваются в 4-5 раза быстрее чем с помощью обычных методов, вот результат работы скрипта с утилитой time для закачики 338 мегабайтного файла

real    4m27.508s
user    0m1.316s
sys    0m7.340s

 

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут