Rose debug info
---------------

Как скачать видео с URL «blob:»

Нередко в последнее время нередко встречается ситуация, когда хочется сохранить себе видео какого-либо курса или подкаста. Для известных хостингов видео, типа «Ютьба» или «Вконтакта» существуют плагины браузера, которые справляются с этой задачей, а с менее известными площадками могут возникать проблемы.

Нередко бывает, что в теге проигрывания видео (который легко найти при помощи «Инструментов разработчика» браузера) указан файл, который можно скачать, но иногда там применяется протокол blob: и с ним не настолько всё просто.

Пример окна «Инструментов разработчика» с найденным файлом с расширением «m3u8»

К счастью, есть способ скачать и такое видео, но он требует кое-каких специальных знаний.

Нужно открыть «Инструмент разработчика» на вкладке «Сеть» («Network»), запустить проигрывание видео и поискать в перехваченных урлах первый, который заканчивается на m3u8.

Этот урл надо скормить известной утилите для работе с видео ffmpeg:

ffmpeg -i 'https://example.org/master.m3u8' -c copy -bsf:a aac_adtstoasc ~/Downloads/output.mp4

Где https:​//example.org/master.m3u8 — перехваченный урл, а ~/Downloads/output.mp4 — файл, куда нужно будет сохранить искомое видео.

После этого остаётся только ждать, утилита ffmpeg сделает всё сама.

Поделиться
Отправить
Запинить
Ctrl →NAS
6 комментариев
PastorGL 9 мес

M3U это «мпег-плейлист», старинный формат из девяностых. Как бы неудивительно, что ffmpeg знает, что с ним делать, он ему родной. Но секрета в нём никакого нет, тот же винамп ещё с самых первых версий его юзал.

M3U8 — то же самое, но в кодировке utf8.

Евгений Степанищев 9 мес

Всё описанное не тайное знание, конечно.

Браузеры используют формат extended M3U (где вводятся дополнительные директивы, начинающиеся с символа комментария), расширенный директивами для стриминга видео (описаны в RFC 8216, «HTTP Live Streaming»).

Неудивительно, что ffmpeg умеет читать формат HTTP Live Streaming, но девяностые тут не причём — он появился около десяти лет назад (и стал стандартом всего три года как).

PastorGL 9 мес

появился около десяти лет назад (и стал стандартом всего три года как)

Неправда. M3U появился в 1996 году. Но он изначально был расширяемым (типа как XML), а стандартного набора тегов как такового никогда не было. Любой вендор волен выбирать своё подмножество.

10 лет назад в него просто добавили очередной набор новых тегов для стриминга по HTTP (конкретно Apple постарались, если не путаю), а три года назад их наконец-таки сподобились упомянуть в соответствующем RFC.

Евгений Степанищев 9 мес

Причём тут M3U? Я про HLS пишу, там же с этого предложение начитается)

PastorGL 9 мес

В диалоге с Евгением иногда довольно трудно удерживаться от фэйлспалма...

В HLS используется древний и отлично известный формат плейлистов M3U. Чтобы с ним работать, специальных знаний не нужно, нужна любая программа, которая умеет его читать, это же совершенно очевидно.

Что я и пытаюсь сказать разными словами третий раз.

Алло, приём. Меня всё ещё непонятно?

Евгений Степанищев 9 мес

У меня те же чувства. Попробую объяснить ещё раз.

Ffmpeg, кмк, понимает этот формат как раз из-за появления HLS, а не потому, что это старый формат. Кроме того, это не тот же формат, что в 90-е, он был расширен. Всё что понимает какой-то M3U, не обязательно сумеет правильно скачать стриминговое видео.

Den Talalá 9 мес

Спасибо большое за подсказку про ffmpeg. Сам сталкивался несколько раз с необходимостью скачать видео из такого «плейлиста», но мне это давалось с большим трудом, а воспользоваться ffmpeg не пришло в голову.

Василий 9 мес

Евгений, рекомендую YouTube-dl.Из названия неочевидно, но он поддерживает кучу других сайтов кроме самого ютуба, срабатывает для меня почти всегда.

Евгений Степанищев 9 мес

Попробую, когда будет случай, спасибо!

Неигор 2 мес

А теперь по человечьи. Я зашёл в винду, открыл сайт и нашёл нужное видео, нашёл адрес плейлиста м3у8 в сетевой вкладке(в инструментах, а не в адресной строке, эту часть я понел). У меня есть ссылка, есть открытый браузер в виндоус. Мои действия?

Евгений Степанищев 2 мес

Шаг 1: поставить другую операционную систему.