Українська

Video & субтитри · Direct Media Downloader

Як завантажити файл з прямого посилання з fetch і Blob

· Як працює

Опубліковано ToolAcre · Рецензування журналу

завантаження веб-сайт труси

Віддалене потокове передавання файлів у браузері Blob та локальне завантаження
Головна ToolAcre векторна ілюстрація

Прогулянка по трубопроводу інструментом браузера використовується для перетворення прямого посилання на збережений файл: викопувати байти, тримати їх як Blob, і вручну їх до атрибуту завантаження. Передбачає, чому сервер не потрібен на будь-якому етапі.

Посилання відкриває гравця замість збереження файлу — натискання прямого MP4 або MP3 посилання, як правило, грає це inline, який є проблемою завантажувача вирішує

Клацніть прямо MP3 посилання може відкрити гравця, оскільки браузер знає, як грати, що MIME тип. Економія тих же байтів є окремою дією. Ключове слово є прямим: посилання на актуальну відповідь файлу, а не веб-сторінку, що містить гравця або проявляється список медіа сегментів. ToolAcre робить цю відмінність, перш ніж пропонувати завантаження і не зашифрувати сторінку URL є файл URL.

Крок один: fetch() просить хост для байтів — що таке GET запит на оголошений хост виглядає так і що повертається назад

Після того, як ви обираєте Перевірити посилання, браузер може випустити HEAD запит на URL Ви надавалися до стану, типу та довжини. Захоплення файлу використовує файл GET запит на це хост, не ToolAcre проксі. Запит навмисно omits credentials, тому хост, який вимагає вашого логіна, може відмовитися від нього. Віддалений сервер повинен також дозволити читання скриптів перехрестя; якщо CORS блокує доступ, інструмент пояснює відмову, а не маршрутизація навколо нього через приховану реле. Перенаправлення може змінити місце призначення, тому перевірте оголошений хост.

Крок другий: тіло відгуку стає Блоб — як зібрані байти в пам'яті і чому Блоб несе MIME Тип

Відповідне тіло читати як потік байтів. Прогрес може використовувати Content-Length, коли хост виводить його; без відома довжина інструмент може показати байти, отримані, але не надійний відсоток. Використовує пам'ять стелі при зборі шматків, потім збирає Блоб з повернутим типом вмісту. Це сейф, ніж виклик response.blob() на необмеженому потоковому режимі, але це не нульово-меморійне потокове передавання на диск: завершено Блоб все ще займає місце в сеансі браузера.

Крок три: URL.createObjectURL і атрибут завантаження — як тимчасовий блоб: URL плюс якірний тригер збереження діалогу

Blob - це дані в пам'яті, а не інтернет-адресі. Переглядач може створити тимчасові незручності: об'єкт URL і прикріпіть його до анкеру за допомогою файлу завантаження; натискаючи, що анкер просить браузер, щоб зберегти байти. Ім'я файла може приходити від заголовка Контенту або заголовка файлу URL шлях не від імені сторінки. Так як посилання тепер є односторінковий Blob URL, веб-переглядач може зберегти результат без того, як він працює ToolAcre. Це все ще мудро, щоб перевірити розширення і MIME тип перед відкриттям файлу з джерела незнайомого джерела.

Зароблений приклад: збереження епізоду подкаст з посилання його закриття — наступний MP3 з пасти URL до файлу на диску

Уявіть собі подкаст видавець, який випробує авторство URL Закінчення в епізоді.mp3. Поставте цю точну адресу, перевірте оголошений хост і використовуйте прапорець. Якщо HEAD дозволено показати аудіо/mpeg і очікувана кількість байтів; Після чого запитує видавець для MP3 байти, потоки їх в Блоб і зберігає епізод.mp3. Якщо господарські товари CORS Заголовки, браузер може грати посилання у власній вкладці, тоді як ця сторінка не може викинути її за допомогою скрипта; «Зберегти посилання як» може бути правильним маршрутом. Право користувача зберігати файл окремо від того, чи є його сервер технічно дозволяє його захопити.

Прибирання: відкликання об'єкта URL і безкоштовна пам'ять — чому добре вбудований завантажувач випускає Blob після завершення збереження

Тимчасові URL-адреси об'єкта зберігають посилання на їх резервні копії. Завантажувач, який залишає кожного URL живий може зберігати великі файли у вкладці довголічена. ToolAcreСпеціалізована утиліта для завантаження локальних URL для збереження дії і відкликання його при закінченні; скасування випускає зчитувач відповідь і відкидає часткові шматки. Для дуже великих файлів, звичайне завантаження веб-переглядача з хосту краще підходить, ніж зібрати всю відповідь на сторінку пам'яті.

Що це не криється — URL-адреси сторінок, потокові проявляється, DRM і посилання, які потребують логіну

Цей інструмент не знайде медіа, приховані за відео сторінкою, parse HLS/DASH .m3u8 або .mpd проявляється, обхід DRM, spoof головки або доступ до захищеного потоку сеансу. Ви не завантажуєте персональний контент для вас і не вирішуєте, чи надає ліцензія дозвіл на копіювання файлу. Р 403, перенаправлення на сторінку входу або CORS помилка є обов'язковим для розуміння, не лікть для пошуку недокументованих проксі.

Похід: три API веб-переглядача, без сервера — як працює Direct Media Downloader

Трубопровід є фіксатором з поставного хосту → отримання шматків → створення Blob → запускає локальне завантаження. Ні ToolAcre реле бере участь, але реальний запит на сторонній хост абсолютно залучений; його журнали можуть бачити підключення. Пряме медіа Downloader повідомляє про те, що зв'язатися з ним і розкаже вам, коли правила безпеки браузера відмовляються від попереднього читання.