Как вытащить ссылку на потоковое видео m3u8 на смартфоне
Рассказываю как скачать потоковое m3u8, ts и hls видео. Пожалуйста используйте описанное ниже исключительно для ознакомительных и личных целей. Не копируйте видео защищенное авторскими правами и нарушайте законодательства.
Если знаете другие интересные способы скачивания защищенного видео, поделитесь с нами, мы обязательно дополним статью.
Как скачать M3U8, TS и HLS потоковое видео с помощью FFmpeg
Для начала установите FFmpeg. Это консольная утилита для кодирования видео. Как работать с FFmpeg я подробно рассказывал ранее, однако глубоких знаний не требуется, нужно лишь знать как запустить его.
Если таких файлов несколько, нужен тот, который называется master, у него как правило лучшее разрешение и качество.
Когда процесс завершится, в папке назначения появится файл со скачанным видео, в моем случае это C:\Users\Dmitry\output.mp4
Как скачать M3U8, TS и HLS потоковое видео с помощью расширения в Google Chrome
Вариант проще предыдущего. Однако помните, что использование сторонних расширений потенциально может причинить вред вашему устройству или данным. Я не ручаюсь за их безопасность.
В Google Chrome поищите расширения по запросу HLS Downloader или m3u8 Downloader, установите понравившееся (я использую CoCoCut ). Далее перейдите на сайт видео которого хотите скачать. Обновите страницу, кликните на установленное расширение и увидите ссылку на скачивание видео файла.
Данный тип расширений ориентирован как правило для скачивания потокового видео M3U8, TS и HLS, для роликов YouTube оно скорее всего не подойдет.
Как скачать защищенное видео с Vimeo
Очень странный, но рабочий хак. Возможно когда нибудь Vimeo его прикроет.
Обязательно запустите видео. Укажите в настройках плеера желаемое разрешение.
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Есть другой сайт, который тоже возвращает файл название_файла.m3u8. Там записано что-то
, то и этот m3u8 файл будет работать.
Но проблема в том, что такой же способ с добавление названия сервера и расширения .ts не срабатывает с первым сайтом.
Эти сайты отличаются тем, что у первого сайта не показывается расширение у плейлиста и фрагментов, а у второго они есть. Если я открою ссылку на плейлист из первого сайта, то я получаю 403 ошибку, а у второго скачиваю m3u8 файл.
Плюс первый сайт возвращает ошибку 403, если я обращаюсь к нему через curl --verbose https://название_сайта/путь_к_файлу/файл, но если я сделаю такой же запрос, но с curl -H "Origin: https://сайт_из_поля_origin", то я получаю, то же самое, что и в спойлер 1.
Как из всего этого можно получить нормальный, рабочий m3u8 файл с первого сайта? Streamlink же как-то частично получает видео.
Надеюсь, кто-нибудь дочитал до конца.
Средний 1 комментарий
Повторяю, это задача, а не вопрос.Сайты которые вы пытаетесь спарсить активно противодействуют этому, и поэтому причина может быть в чем угодно, начиная от проверки юзер агента и кончая привязкой фрагментов к ip или коротким временем жизни ссылки.
Попробуй сконвертировать m3u8 файл в готовый видеофайл с помощью ffmpeg (он умеет загружать), чтобы не перекодировало указывай кодек -c copy
Если я в ffmpeg вставляю это ffmpeg -i ссылка_на_файл.m3u8 -c copy -bsf:a aac_adtstoasc video.ts, то я получаю ошибку HTTP error 403 Forbidden. Запрос не проходит или что, я не знаю. Я не разбираюсь особо в этом. Но такая же ошибка и через curl и streamlink бывает. Но там мы указываем доп параметр типа -H "Origin: название_сайта_из_origin" или --http-header Origin=название_сайта_из_origin. Так они работают. Т.е. он смотрит откуда запрос идет и что.А как запихать в m3u8 файл типа Origin comment__date"> Написано вчера
это значит сайт защищается от копирования, проверяя заголовки запроса (куки например), в браузере их устанавливает javascript а ffmpeg и твой curl по умолчанию нет, делай как я в ответе написал
ты не сможешь в m3u8 файл вставить желаемое (можно свой сервер поднять который будет запросы дополнять нужными origin, тогда ссылки в этом файле уже будут не на оригинальные а на твой сайт, но мне кажется тебе просто видео нужно скачать да?)
rPman, знать бы еще, куда и что подставлять. Я не разбираюсь во всем этом. Да, мне надо просто скачать видео. Сейчас для примера взял ссылку на m3u8 файл со второго сайта, вставил в ffmpeg как в первый раз и все без проблем получилось.
как и во всем, либо ты разбираешься сам, либо ищешь кто за тебя будет все делать.
я вроде описал достаточно простой способ, даже особо программировать не надо
тебе надо из m3u8 файла сделать список ссылок на куски, делай как можешь, хоть в экселе, хоть вручную, хоть програмку из трех строчек напиши
затем копируй вручную из браузера из дев-консоли команду curl, и подставь ее вызов к каждой ссылке, подменяя ссылку этой скопированной команды на в каждой строчке свою, и получишь bat файл для загрузки кусков видео, затем подсовываешь m3u8 (чтобы ссылок не было только имена файлов) ffmpeg-у чтобы все файлы в текущем каталоге были, и получаешь собранный файл (вообще этот m3u8 на этом этапе сможет проиграть vlc)
rPman, спасибо. Буду пытаться разобраться с тем, что ты написал)Я скопировал curl команду от файла, который как бы должен быть основным m3u8 файлом.
Если я ее ввожу в консоли, то она мне возвращает это
К m3u8 файлу я вставил ссылки на cdn. Мой m3u8 выглядит так
А что дальше делать, я не понимаю. Я даже не уверен, что хоть что-то правильно сделал.
что то сломалось под windows (ссылка генерируется рабочей для linux), где то ковычки не поставились, либо замени все двойные ковычки на одинарные, и возьми в двойные ковычки саму ссылку
после этого подправь m3u8 чтобы в нем были не пути на сайт а пути на файлы которые скачались, т.е. цифры 1,2,3. и все, готов файл для локального просмотра
p.s. порядок параметров curl может быть любой, обычно сначала ставят все заголовки и параметры запроса, а в конце ссылку и -o куда сохранить, если не умеешь программировать, рекомендую используя excel в первой колонке тупо скопировать curl команду без ссылки и -o, во вторую колонку добавить список ссылок, в третью список -o, в четвертую числа 1,2,3.
копируешь через буфер получившуюся таблицу, вставляешь в текстовый файл, получаешь объединенные строки (там между колонками будет табуляция, для bat это то же что и пробел, т.е. как обычный разделитель)
- не всегда они работают так, как заявлено;
- могут показывать рекламу или устанавливать дополнительные программы (Яндекс браузер, антивирус Аваст);
- в бесплатной версии могут скачивать только часть видео или накладывать свои водяные знаки.
Преимущество способов, описанных в статье, в том, что не нужно искать дополнительные специальные программы. Достаточно тех, что наверняка уже установлены на вашем компьютере. Все способы работают в 2021 году.
Savefrom
Этот самый простой способ скачать видео с Youtube, Фейсбука, Vimeo, Dailymotionдругих и других популярных ресурсов, даже если оно защищено настройками приватности, а также музыку Вконтакте.
А еще проще: скопируйте ссылку на видео, перейдите на Savefrom, и вставьте ссылку в окно для скачивания.
Если вы часто скачиваете видеоматериалы, или не получается это сделать через сайт, установите Savefrom-помощник. Таким образом с ютуба можно скачать и общедоступные ролики, и защищенное с доступом по ссылке. А вот чтобы скачать защищенное потоковое видео (онлайн-трансляцию) придется использовать VLC-проигрыватель.
Скачиваем потоковое видео через проигрыватель
VLC media player — популярный бесплатный медиаплеер с множеством настроек и возможностей. Он установлен на многих компьютерах. С его помощью можно скачивать как обычное, так и защищенное потоковое видео.
Таким образом можно скачать потоковое видео — вебинары, стримы, трансляции. Способ точно работает на Ютубе, на остальных сайтах надо тестировать. Если и VLC media player не помогает скачать защищенное видео, можно попробовать хакерский метод.
Как стать хакером и скачать видеоматериал с любого сайта
Спокойно. Вам не придётся взламывать сайты и прятаться потом от ФБР. Хотя со стороны очень похоже. Коллеги по работе после этого будут смотреть на вас снизу вверх. Начнем со скачивания видео с Getcourse.
Как скачать защищенное видео с Геткурса
Подробная инструкция по скачиванию видео с getcourse.
Затем откройте VLC media player и в Меню выберите пункт Конвертировать/сохранить. Откройте вкладку Сеть, вставьте скопированный сетевой адрес, удалите в нем всё после символов m3u8, и нажмите Конвертировать/сохранить.
В следующем окне:
Как скачивать видео с других сайтов
Если ни один из приведенных здесь способов, как и поиск в интернете, не помог вам скачать защищенное видео, попробуйте его записать.
Запись видео с экрана на Windows
Есть программы, которые все происходящее на экране компьютера. Но мало кто знает, что в Windows 10 уже встроена эта возможность — Xbox. Хотя утилита предназначена для геймеров, с ее помощью можно записать все происходящее на экране, даже видео с защищенного сайта.
Чтобы активировать Xbox зайдите в Настройки Windows >> Меню игры — включить пункт “Записывайте игровые клипы, делайте снимки экрана”.
Как записать видео экрана с помощью Xbox
- Включите воспроизведение, желательно на весь экран.
- Включите звук на устройстве.
- Нажмите сочетание клавиш Win+G.
- Слева вверху нажмите кнопку “Запись” или сочетание клавиш WIN+ALT+R.
Запись сохранится в папку C:\Users\Videos\Клипы. При желании в настройках можно указать другую папку.
Совет: поиграйтесь с настройками Xbox, особенно с микрофоном и звуком, чтобы понять принцип работы и исключить ошибки при записи.
Заключение
На днях у меня появилась потребность сохранить видео лекции с некоторого сайта, которой такой функциональности не представляет, а причиной этой необходимости послужило то, что после определенного времени с момента оплаты видео становится не доступным.
Анализ
Первое что пришло мне в голову это записать видео с экрана, например через QuickTime, но в таком случае нужно все их просмотреть а это по времени достаточно долго и этот вариант мне не понравился.
Следующим шагом было исследовать html код страницы, и там я нашел интересную ссылку:
Далее я попробовал подставить эту ссылку в адресную строку браузера и в результате скачался файл master.m3u8 следующего содержания:
Как можно увидеть этот файл содержит еще набор ссылок, и судя по их названию они обозначают разрешение видео, которое загружается.
Я решил посмотреть что из себя представляет файл 720.m3u8, для этого я его скачал, перейдя по соответствующей ссылке:
Если присмотреться внимательней то можно увидеть что все ссылки содержат *.ts, после того как я их скачал, оказалось что это как раз куски данного урока.
После небольшого поиска что-же такое m3u8 файл, я выяснил, что это формат для хранения плейлистов.
Теперь был вопрос как же его сохранить локально.
Сохранение видео из m3u8
Первое что я нашел в Интернете предлагало это сделать через VLC. Для этого нужно зайти в Файл -> Конвертировать/Передавать , после чего можно увидеть следующее окно:
В указывается исходный файл плейлиста, профиль сохранения и выходной файл. После чего нажимается кнопка Сохранить и процесс начинается (надо отметить, что процесс не быстрый).
Альтернативное сохранение
После того как таким способом я сохранил пару видео, я начал думать как оптимизировать процесс. Тут меня посетила мысль, что можно просто попробовать скачать все эти маленькие файлы и объединить их в один.
Для этого я написал небольшую утилитку на Go, для обработки файла *.m3u8 и объединения всех маленьких кусков из него в один файл.
Алгоритм работы ее достаточно прост: сначала я перехожу по заданной ссылке на m3u8, затем построчно обхожу его и если строка содержит URL кусочка, я скачиваю его и результат сразу пишу в выходной файл.
Код который это делает следующий:
Функция downloadFilePart отвечает именно за скачивание файла и вывод его в байтовый массив:
Такой метод полностью себя оправдал и оказался самый быстрый.
Заключение
В конечном счете я не только скачал все нужные лекции, но еще и создал утилиту для скачки и сохранения *.m3u8 файлов.
Читайте также: