качаем ролики с сайта Россия К

Потребовалось нам скачать передачу АГОРА с сайта и пересмотреть ее в режиме offline.

открываем ссылку

https://tvkultura.ru/video/show/brand_id/61882/episode_id/2169406/video_id/2182968/

переходим в режим отладки Ctrl+Shift+C, выбираем закладку «Сеть» (Network)

очищаем список загруженных документов, жмем в плеере play и у нас начинают появляться подгруженные файлы, в списке находим ролики с расширением ts. Да вся передача разбита на множество небольших фрагментов, по 10-15 секунд, нам надо их всех выкачать.
на найденном файле жмем правой клавишей и выбираем Копировать->Копировать URL (Copy->Copy link address)

у нас в буфере обмена оказывается ссылка примерно такого вида:

https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b1800000_pd3628000_1.ts

находим последний фрагмент, перематываем ролик до конца и подгружается файл с адресом:

https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b800000_pd3628000_374.ts

нам нужны значения от 1 до 374, а далее дело техники, я уже подготовил bash скрипт

#!/bin/bash

# задаем диапазон фрагментов, от 1 до 374
for counter in {1..374}
do
   # дополняем нулями до трехзначного числа (чтобы при склейке в один файл фрагменты не перемешались)
   foo=$(printf "%03d" $counter)
   # скачиваем ролики по одному и сохраняем с дружественными именами
   wget -O "video_$foo.ts" "https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b800000_pd3628000_$counter.ts"
done

# дальше с помощью ffmpeg склеиваем в один файл и сохраняем в формате mp4
ffmpeg -f concat -safe 0 -i <(for f in ./*.ts; do echo "file '$PWD/$f'"; done) -c copy output.mp4

# удаляем лишние файлы
find . -name "*.ts" -type f -delete

в результате работы скрипта получается файл output.mp4, в котором находится вся передача

Поделиться
Отправить
Запинить
 397   2019   bash   ffmpeg   linux