Мы живем с вами в то время, когда видео с Youtube и других видеохостингов может скачать даже школьник с помощью огромного количества расширений для браузеров.
Что касается онлайн трасляций, то здесь уже не все так просто. В прошлом году еще задался целью скачать записи выступлений на Startup village в Сколково, но тогда ничего кроме захвата экрана не придумал. В этот раз решил пойти до конца и найти способ скачать онлайн трансляции. Готовых решений в интернете не видел, только многочисленные вопросы, как скачать с Comdi. Надеюсь кому-то мой опыт покажется полезным.
Startup village – самая крупная в Восточной Европе конференция для стартапов, которую проводит Фонд «Сколково». Во время проведения конференции ведется онлайн трасляция всех мероприятий, проводимых на многочисленных площадках. Трансляции потом доступны на сайте Startup village.
Сама страница с видео представляет собой фрейм, где отображается broadcast.comdi.com.



На странице можно выбрать зал и интересующее мероприятие.



Ни одно из популярных расширений для браузеров, таких как Save form и другие не находили ссылки на скачивание.
Как показал анализ, вся трансляция в рамках одной секции (например, конкурс стартапов в номинации «Разработка новых лекарственных препаратов» в Патио 4), состоит из файлов нескольких сотен файлов по 12-15 секунд формата MPEG-TS.

Данные о видеопотоке
Видео
Идентификатор : 256 (0x100)
Идентификатор меню : 1 (0x1)
Формат : AVC
Формат/Информация : Advanced Video Codec
Профиль формата : Baseline@L3.1
Параметр CABAC формата : Нет
Параметр ReFrames формата : 3 кадра
Идентификатор кодека : 27
Продолжительность : 14 с.
Вид битрейта : Постоянный
Номинальный битрейт : 2000 Кбит/сек
Ширина : 1280 пикселей
Высота : 720 пикселей
Соотношение сторон : 16:9
Частота кадров : 25,000 кадров/сек
Стандарт вещания : NTSC
Цветовое пространство : YUV
Субдискретизация насыщенности : 4:2:0
Битовая глубина : 8 бит
Тип развёртки : Прогрессивная
Бит/(Пиксели*Кадры) : 0.087
Цветовой диапазон : Limited
Аудио
Идентификатор : 257 (0x101)
Идентификатор меню : 1 (0x1)
Формат : AAC
Формат/Информация : Advanced Audio Codec
Версия формата : Version 4
Профиль формата : LC
Режим смешивания : ADTS
Идентификатор кодека : 15
Продолжительность : 14 с.
Вид битрейта : Переменный
Каналы : 2 канала
Расположение каналов : Front: L R
Частота : 44,1 КГц
Частота кадров : 43,066 кадра/сек (1024 spf)
Метод сжатия : С потерями



Предлагаю готовый рецепт по скачиваю онлайн трансляций с Comdi.
1) Установить расширение Video Downloader Pro
2) Открыть страницу startupvillage.ru/ru/page/video
3) Через расширение Video Downloader Pro скачать файл chunklist.M3U8
В этом файле нам нужно посмотреть имя начального и имя конечного файла. В нашем случае начало трансляции – media_0.ts, конец трансляции –media_408.ts.
4) Скопировать ссылку на один из медиа файлов, например media_0.ts.



У меня это https://webinar-htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/media_0.ts

5) Далее зная, что все файлы одной сессии лежат в одной папке делаем 409 ссылок с инкрементов от 0 до 408.
6) Самый простой вариант Microsoft Excel.

Делаем три столбца
1-й столбец: htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/media_

2-й столбец:
номер по порядку

3-й столбец:
.ts




7) Скопируйте полученную таблицу в Notepad++ и удалите пробелы.



8) Скопируйте полученные ссылки в буфер обмена.
9) Запустите download manager. У меня стоит Download Master. При запуске он подхватил все 409 ссылок и создал загрузки.



10) После завершения загрузки имеем 409 файлов, которые можно при необходимо склеить или смотреть последовательно через плеер.
Have a fun!
Поделиться с друзьями
-->

Комментарии (22)


  1. Alexufo
    20.06.2016 15:46
    +3

    Download Master можно заменить легко на https://aria2.github.io/ а то и на обычный wget.

    И это еще у вас чанки не шифрованные. Обычно они идут ширфованные вместе с ключем. Для шифрованных пришлось мне повозится.
    Вот так. Соотвественно для каждого куска.

    openssl enc -aes-128-cbc -in "C:\media_1.ts" -out "C:\decr_tmp.ts" -d -K D2AFAA16648B17A0FEC9EA533EB244A3 -iv 00000000000000000000000000000001
    

    Ключ соотвественно вставлять свой.

    Склеивать в один файл можно через avidemux.


  1. rockin
    20.06.2016 15:56
    +6

    Способ абсолютно ламерский и для хабра просто моветон!!!

    Тру вей — это F12 и Wireshark для того, чего там нет (RTMP)
    Это чтобы получить плейлист
    А чанки лепятся на ура просто через ffmpeg


    1. rockin
      20.06.2016 16:03

      Не имею возможность править… зачеркнуть ffmpeg, написать livestreamer
      Livestreamer на входе ест не чанки, вам их скачивать не нужно. Он ест сразу файл плейлиста. chunklist.m3u8 или выше playlist.m3u8.


      1. ValdikSS
        20.06.2016 16:06

        ffmpeg -i playlist.m3u8 -map 0 -c copy output.mkv


        1. rockin
          20.06.2016 18:07

          спасибо. я просто сим занимался с полгода назад и из-за переезда и смены компа всё немножко в голове перепуталось :)
          значит, я был прав и так, и сяк. и ffmpeg умеет, и livestreamer

          прекрасные консольные инструменты. как же я их люблю :)


    1. DmitryBigbrain
      20.06.2016 16:07
      -1

      rockin, статья написана для простых смерных, которые хотят скачать трасляцию и не знают матчасть. Так сказать с помощью подручных инструментов, которые есть в каждом доме.


      1. keylase
        20.06.2016 17:21

        ffmpeg всем в дом!


      1. rockin
        20.06.2016 18:18

        простые смертные должны стремиться к прекрасному!
        быстрому, прекрасному и трушному.

        это же хабр, а не какой-то там бложик.

        хабропуть: на входе адрес страницы, на выходе — кучка видеофайликов (один курс — один файл). а вот реализация — это имхо.


  1. Loxmatiymamont
    20.06.2016 16:21

    А теперь автоматизируйте это и люди вас не забудут!


    1. DmitryBigbrain
      20.06.2016 16:27
      -3

      Я то как раз и автоматизировал почти полностью. Пускай по ламерски, но хоть повторить смогут. Ссылки все формируются автоматически в Excel, нужно только растянуть ячейки =)


      1. rednaxi
        20.06.2016 17:23
        +1

        Используйте функцию СЦЕПИТЬ, чтобы сразу из экселя получить список ссылок, без «убирания пробелов в notepad++»


        1. Denai
          20.06.2016 17:46

          Download master, который в пункте 9, сам всё умеет без стороннего софта.


  1. zedalert
    20.06.2016 16:24

    Я так с РБК видео качаю, F12, и через цикл, написанный на PoSH, кладу в папку, затем tsdemux+mp4box.


  1. Denai
    20.06.2016 17:16

    Пункты 1-3 заменить на нажатие F12, пункты 5-9 на что-то просто разумное. Остаётся пункт 4 и 10, которые особой ценности тоже не несут. Замечательное руководство к действию!


  1. lart
    20.06.2016 17:18

    Можно и без екселя.
    В Notepad++ дублируем ссылки вида
    webinar-htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/media_.ts
    нужное количество раз. Выделяем вертикально (через Alt) столбец между media_ и .ts и заполняем через Alt+C (выбрать пункт «Числа для вставки», исходное 0, увеличение на 1, повторить 1 раз). Первые десять значений корректируем путем удаления пробела (тоже можно через вертикальное выделение).


  1. Hello1
    20.06.2016 20:14
    +1

    Зачем так сложно?
    Для тех кто дружит с консолью — ffmpeg
    Для тех кто хочет потыкать мышкой — в VLC в меню media выбираем convert/save и на вкладке network указываем ссылку на chunklist.m3u8


  1. vadimkozhin
    20.06.2016 21:09

    ffmpeg -i «https://webinar-htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/media_0.ts» -c copy video.ts


  1. DmitryBigbrain
    20.06.2016 21:11
    -1

    Большое спасибо за комментарии друзья, узнал очень много нового и интересного. Теперь можно книжку писать «101 способ скачивания потокового видео» =)


    1. andron58
      21.06.2016 11:51

      Есть способ гораздо проще, например через wget делается одной строкой: wget webinar-htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/media_{1..1000}.ts По итогу выполнения wget будем сам перебирать файлы по очереди, если какого-то файла нет, то он быстренько его пропустит.
      Быстро склеить видео файлы в Windows можно простым bat файлом, либо через командную строку: copy /b *.ts output.ts (необходимо предварительно переименовать файлы, чтобы они шли по очереди)


      1. keylase
        21.06.2016 11:56

        а вот так вот собрать религия не позволяет?
        ffmpeg -i http://webinar-htvod.cdn.ngenix.net/vod/_definst_/mp4:webinar/nsvuapdnbvoes8et2ls0_2_11113.mp4/playlist.m3u8 -c copy -bsf:a aac_adtstoasc video.mp4


        1. andron58
          21.06.2016 11:58

          Такие все грубые на хабре… Спасибо конечно за способ, попробую в ближайшее время.


      1. Alexufo
        24.06.2016 23:28

        так копировать не рекомендую. В чанках может быть метадата (не проверял), а не чисто порезанный бинарный поток.