Skip to content
TBTelegramBuddy
Языкru
Основная навигация
← Все гайды

Загрузка оборвалась: как докачать файл в Telegram

Докачать прерванную загрузку в Telegram можно с того же байта: сон компьютера, обрыв Wi-Fi или выход из приложения больше не обнуляют прогресс на диске.

6 мин чтения

Если многогигабайтное видео остановилось на 80 процентах, почти наверняка его не придётся забирать заново с самого начала. TelegramBuddy пишет каждую большую загрузку во временный файл с расширением .part на вашем собственном диске и знает, сколько байт туда уже попало. Когда вы возобновляете загрузку из Telegram после паузы, обрыва связи или даже полного выхода из программы и повторного запуска, приложение запрашивает у Telegram остаток файла начиная с того байта, на котором всё остановилось, и продолжает писать в тот же файл .part. Прогресс, который уже на диске, на диске и остаётся. По сети идёт только недостающий хвост.

Это короткий ответ. Подробный тоже стоит знать, потому что от того, какие обрывы не стоят вам ничего, какие стоят пары секунд, а какие означают, что Telegram намеренно вас притормаживает, зависит то, как лучше готовить большую задачу.

Что на самом деле прерывает большую загрузку

Почти каждая остановившаяся передача сводится к одной из пяти причин, и только одна из них — настоящая ошибка.

  1. Компьютер ушёл в спящий режим. Закрытая крышка ноутбука посреди передачи — самая частая причина. Сеть исчезает, соединения умирают, и передача останавливается там, где была.
  2. Связь оборвалась или сменилась. Переход с Wi-Fi на точку доступа телефона, перезагрузка роутера, переподключение VPN или гостиничная сеть, которая тихо сбрасывает простаивающие соединения, — для приложения всё это выглядит одинаково: данные перестали приходить.
  3. Вы вышли из приложения. Иногда намеренно, иногда потому что машине понадобилась перезагрузка для обновления.
  4. Вы сами поставили загрузку на паузу или отменили её. Совершенно нормально, и обрабатывается точно так же, как случайность.
  5. Telegram попросил подождать. Это flood wait: серверы Telegram отвечают, по сути, «вы просите слишком много и слишком быстро, вернитесь через N секунд». Это ограничение частоты запросов, а не сбой, и о нём есть отдельный раздел ниже.

Обратите внимание, чего в этом списке нет: испорченного половинчатого файла, который нужно удалить и начать заново. Недокачанный файл — это не поломка. Это закладка.

Как докачать файл из Telegram вместо того, чтобы начинать заново

Шаги нарочно скучные:

  1. Снова откройте TelegramBuddy, если он был закрыт. Ваша сессия Telegram лежит в файле на вашем же компьютере, так что вы по-прежнему авторизованы — заходить в аккаунт заново и что-либо подтверждать не нужно.
  2. Найдите нужный пункт в очереди загрузок.
  3. Нажмите возобновление (или повтор, если файл помечен как неудавшийся).
  4. Приложение проверяет файл .part, видит, сколько в нём байт, запрашивает файл с этого смещения и продолжает дописывать.
  5. Когда приходит последний байт, файл .part превращается в готовый файл с правильным именем.

Три детали стоит знать. Недокачанный файл лежит в той же папке, где окажется готовый, так что вы можете наблюдать, как он растёт. Поскольку докачка отсчитывается в байтах, нет никакой разницы, остановились вы на 3 процентах или на 97. А если вы сами удалите файл .part, пока загрузка на паузе, ничего не сломается — этот файл просто начнётся сначала, и вы потеряете только те байты, которые сами выбросили.

Что не докачивается и почему это нормально

Не всё получает обработку на уровне байтов. Фотографии и небольшие файлы запрашиваются заново целиком, а не докачиваются.

Звучит как пробел, пока не посчитаешь. Фотография — это передача длиной в секунду-две, так что вести учёт недокачанной половины было бы дороже, чем просто запросить её снова. Докачка применяется там, где обрыв действительно бьёт больно: к большим видео, архивам и документам.

Что прервало загрузку Большое видео, архив или документ Фото или небольшой файл
Пауза с вашей стороны Продолжается с последнего записанного байта Запрашивается целиком при возобновлении
Обрыв связи Продолжается с последнего записанного байта Запрашивается целиком при повторе
Выход из приложения или перезагрузка Продолжается с последнего записанного байта Запрашивается целиком при следующем запуске
Flood wait от Telegram Выжидает задержку, затем продолжает Ждёт, затем запрашивается целиком
Уже скачано раньше Полностью пропускается Полностью пропускается

Последнюю строку недооценивают чаще всего.

Повторный проход по каналу забирает только новое

Массовая загрузка сканирует всю историю чата и ставит в очередь каждый подходящий файл, причём в очереди может быть сразу несколько чатов. Самое важное — что происходит, когда вы направляете её на тот же чат во второй раз: файлы, которые уже есть на диске, пропускаются, так что повторный проход забирает только то, что было опубликовано с прошлого раза.

Это превращает «скачать из этого канала всё» из одноразовой операции, повторять которую не хочется, в то, что можно запускать хоть каждую неделю не задумываясь. Работает это потому, что имена файлов устойчивы и предсказуемы. Файлы сохраняют то имя, которое им дал Telegram. Файлы, которые приходят вообще без имени, — а это большинство фотографий и видео — называются по id сообщения, так что одно и то же сообщение всегда соответствует одному и тому же файлу. Если настоящее совпадение имён всё-таки случается, id сообщения добавляется в скобках. У каждого чата своя папка, при желании разделённая на Photos (Фото), Videos (Видео), Files (Файлы), Music (Музыка), Voice (Голосовые), а дата каждого файла ставится по дате публикации, а не по моменту, когда вы его скачали.

Одну вещь стоит сказать прямо: то, что массовую задачу легко запустить заново, не делает всё содержимое канала вашим. Храните только то, на что у вас действительно есть право, и не трогайте чужие платные или защищённые авторским правом материалы.

Flood wait: когда Telegram просит сбавить обороты

Flood wait — это Telegram, защищающий собственную инфраструктуру. Попросите слишком много и слишком быстро, и сервер вернёт вместо данных ответ «подождите столько-то». Некоторые из них — несколько секунд. Некоторые заметно дольше.

Неправильное поведение приложения здесь — счесть это ошибкой, отметить файл как неудавшийся и выдать вам сломанную очередь. Flood wait выжидается автоматически: передача приостанавливается ровно на столько, на сколько попросил Telegram, а затем продолжается. Долгая ночная задача может пересидеть несколько таких пауз и всё равно к утру оказаться завершённой.

Две вещи делают их более редкими:

  • Уменьшите лимит одновременных загрузок. Вы сами выбираете, сколько файлов передаётся одновременно. Большее число не означает автоматически большую скорость; после некоторого предела оно в основном приносит вам ограничения частоты запросов. Если ожидания повторяются, уменьшите его.
  • Используйте свой собственный api_id. Telegram считает ограничения частоты по тому api_id, с которым подключается приложение, — именно поэтому каждая установка TelegramBuddy просит ваши собственные бесплатные данные с my.telegram.org, а не делит один набор на всех. Тогда ваша очередь не конкурирует ни с кем, кроме вас самих. Получение api_id и api_hash занимает пару минут.

Как подготовить большую задачу, чтобы она пережила ночь

  1. Запретите компьютеру засыпать на всё это время. На ноутбуке подключите его к сети и держите крышку открытой либо отключите спящий режим в системных настройках.
  2. Выбирайте самую стабильную сеть, какая у вас есть, и не переключайте сети посреди задачи. Докачка справляется с обрывом, но лучше, когда обрыва нет.
  3. Перед запуском очень большой очереди поставьте скромный лимит одновременных загрузок.
  4. Оставьте приложение запущенным. Закрыть его не смертельно, но и не бесплатно.
  5. Один раз проверьте очередь на старте. Перезапустить две неудачи на первой минуте лучше, чем обнаружить их через восемь часов.

Если вы делаете это с большим медиаканалом, к этому хорошо подходит порядок действий из статьи как скачать все видео из Telegram-канала; а для источников, доступных только участникам, смотрите загрузку из закрытого Telegram-канала.

Куда двигаться дальше

Докачка — самая незаметная функция загрузчика и та, за которую вы благодарны больше всего. Если хотите увидеть картину целиком: страница возможностей описывает фильтрацию галереи, экспорт текста и чатов и раскладку папок по чатам, а FAQ отвечает на практические вопросы о сессиях, хранении и ограничениях. Когда будете готовы всё настроить, начните со страницы загрузки — а если предпочитаете сначала почитать, в списке статей блога есть остальные руководства.