Программирование, радиоэлектроника,
саморазвитие и частичка из моей жизни здесь...

Как скачать длинное видео или его кусочек с интернет сайта

Представлен достаточно простой способ скачивания видео, как полного так и частичного, с потоков и видеоплееров в интернете. Иногда бывает ситуация что нужно скачать небольшую часть (несколько минут) из потоковой видеозаписи или видеоплеера на сайте, где отображено какое либо событие, которое вы хотите показать своим знакомым или же это запись соревнований в которых участвует ваша команда и вы хотите поместить видео с выступления в общий видео архив.

Не очень целесообразно качать все видео, которое может занимать несколько ГигаБайт. Вот и у меня возникла такая задача и пришлось искать решение.  Умело используем возможности Firefox + Firebug + VLC Player.

Содержание:

  1. Подготовка инструментов
  2. Загружаем видео из потока
  3. Выкачивание отрезка видео из потока
  4. Заключение

Подготовка инструментов

Все программы устанавливаются и прекрасно работают как под Windows, так и под Linux. Покажу все подробно и на реальном примере. Итак, к делу!

Попробуем скачать видео с сайта ЛайвСтрим - это сервис вещания и просмотра видео в реальном времени. Допустим мы на нем записали свое видео длительностью несколько часов и нам нужно его оттуда скачать прямо сейчас.

1) Устанавливаем браузер Mozilla Firefox, если он еще не установлен. Можно временно установить портабельную версию для Windows с сайта PortableApps: http://portableapps.com/apps/internet/firefox_portable.

Для Linux ставим браузер Firefox из репозитория, если он еще не установлен, командой (Debian, Ubuntu):

sudo apt-get install firefox

Примечание: для рабочей среды в операционной системе Debian браузер Firefox устанавливается по умолчанию но зовется немного иначе: IceWeasel.

2) Устанавливаем многофункциональный мультимедиа плеер VLC Player. Можно также скачать портабельную версию под Windows с сайта PortableApps: http://portableapps.com/apps/music_video/vlc_portable .

Для Linux ставим из репозитория командой:

sudo apt-get install vlc

3) Устанавливаем расширение Firebug для браузера Firefox (IceWeasel).

Запускаем Firefox, переходим в Главное меню - Дополнения (Add-ons):

Firefox - Главное меню - Дополнения

Набираем в строке поиска "firebug" и напротив найденного дополнения Firebug жмем кнопку Установка(Install).

Установка Firebug

После установки делаем перезапуск браузера Firefox.

Загружаем видео из потока

Теперь переходим в браузер Firefox на страничку где можно посмотреть нужное видео. Когда страница окончательно загрузится нажимаем на кнопку для активации Firebug:

Активация Firebug на загруженной странице

В окне браузера снизу выползет панель инструментов, нам нужно перейти на вкладку Сеть(Net) и активировать ее, нажав на ссылку Разрешить(Enable):

Активация панели Net в дополнении Firebug

Ну вот, почти все готово. Теперь когда мы произведем какие-либо действия на сайте (кликнем ссылку, запустим просмотр видео), Firebug нам покажет все сетевые запросы, откуда и что подгружается с сайта.

Запускаем видео на просмотр и смотрим что будет твориться в окне отладки Firebug. После запуска видео начнет отображаться список запросов к сайту и его ответов. Нас интересует запрос где будет идти наиболее интенсивный обмен данными, вернее загрузка данных - отображаемого видео.

Подождем 10-20 секунд чтобы видео немножко загрузилось и уже начало проигрываться. Теперь просматриваем в окне отладки Firebug все строчки, обращаем внимание на столбец Размер(Size), ищем где будет большое значение, на примере снизу это (18.7 MB). По ходу загрузки видео найденное значение будет увеличиваться (видео качается и кешируется).

Клацаем на найденной строчке ПКМ(правая клавиша мыши) и выбираем Копировать ссылку (Copy location). теперь в буфере обмена есть ссылка на данный поток, вернее его ссылка URL. Остается вставить эту ссылку в адресную строчку браузера и запустить переход по ней - откроется запрос на сохранение файла.

Запрос на сохранение видео потока в файл

Указываем куда сохранить файл и жмем ОК - начнется загрузка файла.

Выкачивание отрезка видео из потока

Как видите, такими простыми манипуляциями можно выкачать видео, которое проигрывается в видеоплеере на сайте в браузере. А если видео весит несколько ГигБайт, а вам из него нужен только кусочек, к примеру 2 минуты в середине видео?

Здесь я вижу два варианта решения данной задачи:

  1. Качаем видео полностью, потом отрезаем нужный кусочек в программе-видео редакторе VirtualDub, Sony Vegas или другой.
  2. Вариант, о котором идет речь ниже.

Определяем ссылку на видео-поток со смещением

Первым делом с помощью Firebug нам нужно определить какой вид будет иметь ссылка (URL) на видео, если его начать проигрывать с определенной позиции. 

Очистим окно отладки Firebug от запросов, которые мы раньше рассматривали. Для этого нажмем Очистить(Clear) на панели инструментов:

Очистка запросов в окне отладки Firebug Net

В плеере, где воспроизводится видео, делаем смещение позиции на то время, с которого нам нужно загрузить видео. Нажимаем на кнопку проигрывания и начинаем искать в окне отладки Firebug (Net) строку с запросом, который больше всего подгружает данных.

Firebug - поиск запроса видео потока со смещением

Теперь будем анализировать тот запрос что мы нашли, для получения более детальной информации клацнем в начале строчки знак плюс (+), снизу под названием запроса раскроется информационная панель, переходим в ней на вкладку Ответ (Response) и начинаем анализировать ссылку. Если сравнить ее с предыдущей, по которой мы качали полное видео, то в текущей в конце добавился кусочек строчки "&seek=2658", который дает команду потоковому серверу что нужно начать выдачу потокового видео с указанным смещением.

Теперь остается клацнуть ПКМ на ссылке, что местит подстроку "&seek=2658" и скопировать ее в буфер обмена (Copy Location).

Выкачиваем видео при помощи VLC

Осталось только выкачать видео по данной ссылке с нужным нам размером по времени, например 2 минуты. В этой задаче нам поможет многофункциональный медиаплеер VLC, который умеет проигрывать, и записывать видео с разных источников, а также генерировать видео-вещательный поток по сети (и еще много всего).

Запускаем плеер VLC, идем в меню Медиа (Media) и выбираем пункт Открыть Устройство Видеозахвата (Open Capture Device):

VLC Open Capture Device

В окне что откроется мы можем выбрать откуда будем записывать видео, это может быть видео-устройство, рабочий стол текущего компьютера. Когда искал способ записать видео то думал просто сделать захват рабочего стола, а на рабочем столе открыть в браузере проигрывание видео на полный экран. И что вы думаете? - это работает, да вот только звука нет в записи видео, поэтому я бросил эту затею и начал искать другие способы.

Мы не зря в предыдущем шаге скопировали в буфер обмена ссылку на видео-поток, поэтому идем в пункт меню Медиа(Media) - Открыть URL (Open Network Stream).

В поле Введите сетевой адрес(Please enter a network URL) вставляем адрес потока, который мы скопировали в буфер обмена на предыдущем шагу(анализ запросов в Firebug).

Возле кнопки Воспроизвести(Play) нажимаем стрелочку и выбираем Конвертировать(Convert).

VLC запись видео из видеопотока

В открывшемся окне в секции Настройки (Settings) есть чекбокс(поле для галочки) - Проигрывать результат (Display the output), в случае если его установить то загружаемое и конвертируемое видео будет отображаться в плеере, но это удобство в свою очередь немного замедлит процесс записи видео.

В поле Конечный Файл(Destination file) жмем кнопку Обзор(Browse) и указываем имя файла и папку, в которую он будет записываться.

В секции Профиль(Profile) есть выпадающий список с заготовками настроек для конвертации видео из входного потока, здесь можно ничего не менять и оставить профиль MP4, а можно поэкспериментировать и все настроить как вам нужно - здесь уже сами решите.

Жмем кнопку Старт(Start) и ожидаем начала записи видео.

VLC Настройки конвертации видео

Начнется процесс записи видео, ползунок проигрывания будет перемещаться а возле него слева будет отображено время - длительность видео, которое уже записано. Ожидаем некоторое количество времени, чтобы записать всю необходимую длину видео. Когда нужная длина видео записана то нажимаем Остановить (Stop Playback).

Все, видео записано в указанный нами раньше файл, его можно смотреть и использовать.

VLC проигрывание записанного из потока видео

Заключение

Похожим способом можно скачивать не только видео но и другие мультимедиа файлы, к примеру MP3, FLV, WAV и другие. Рассмотренные нами инструменты имеют гораздо больше полезного функционала, чем описано в данной статье. Здесь мы лишь использовали их для решения одной несложной задачи.

Надеюсь что данный опыт поможет вам сэкономить массу времени и решить подобную задачу с минимальными усилиями.

Если статья оказалась полезной - помочь проекту можно тут: 👍 ПОМОЩЬ, 🎁 DONATE
Комментарии к публикации (2):
Андрей #1Андрей
23 Август 2016 13:49

Спасибо автору за развернутую инструкцию, но мне этот способ не помог в решении вопроса - как скачать кусок большого видеофайла.
На этом этапе:
"теперь будем анализировать тот запрос что мы нашли, для получения более детальной информации клацнем в начале строчки знак плюс (smile, снизу под названием запроса раскроется информационная панель, переходим в ней на вкладку Ответ (Response) и начинаем анализировать ссылку."
выдает "Перезагрузите страницу, чтобы получить источник для: http://путь/файл.mp4" и никаких ссылок с закодированной задержкой (хотя делал как по инструкции, перематывал в нужную часть)

0
ph0en1x #2ph0en1x
24 Август 2016 15:09

А вы попробуйте перезагрузить страницу (нажать клавиши CTRL+R), в таком случае в окне Firebug появится большое количество запросов - загрузка HTML-файла, JS, CSS, картинок. Потом, когда все загрузится, запустите проигрывание видео и уже тогда начинайте поиск активного запроса загрузки видео-потока в Firebug.

Еще может быть такое, что на сайте запрещена загрузка двух видео-потоков одновременно (ограничение по IP), поэтому чтобы выкачать видео-поток придется остановить проигрывание видео в браузере.
Опыт, описанный в статье, рассказывает как пользоваться инструментами, для разных сайтов процесс выкачивания ресурсов может немножко разниться.

0