Закачка файлов с depositfiles из консоли

Иногда по-прежнему требуется скачать какой-то файл с файлообменника (никогда особо не понимал их популярности, если только не вспоминать про заработок на файлообменниках). А они имеют мерзкое свойство всячески ограничивать закачку — по времени, по скорости, по количеству подключений и ещё по чему угодно (с приходом Яндекс.Диска в массы надеюсь больше файлов станут выкладывать через него хотя бы).

В моём случае дело осложняется тем, что файловый хостинг depositfiles (не самый плохой из них, на мой вкус) постоянно обрубает мне возможность загрузки из-за большого количества подключений — это связано с тем, что локалка находится за NAT и внешних IP не слишком много.

Неплохой выход — скачивать файлы с файлохостинга к себе на сервер, имеющий выделенный IP, а затем уже оттуда загружать на локальную машину. Но на сервере доступна только консоль, значит нужен способ качать при помощи консольных утилит. Такой способ есть — простой комбайн из консольных команд, выполненный в виде функции для bash, опубликован на Хабре (да и много где ещё наверное). Вот эта функция:

down_deposit() {
    wget -O- -q --post-data 'gateway_result=1' "http://depositfiles.com/ru/files/$(basename ${1})" \
    | sed -n -r -e 's/.*<form action=\"([a-z0-9A-Z\/\.:_\-]+)\" \
        method=\"get\" onSubmit=\"download_started.*/wget -c \"\1\"/gp; \
        s/\t+([0-9]{1,3}) минут\(ы\)\./echo Спим \1 минут/gp' \
    | sh
}

Пользоваться down_deposit просто:

  • передать при вызове ссылку на страницу закачки с файлового хостинга depositfiles;
  • функция переходит на страницу и выбирает бесплатный вариант загрузки;
  • ждёт появления ссылки на загрузку в коде страницы, как только ссылка появилась — стартует загрузка;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *