Грабим видео с kinescope.io

Привет, юнга!

Сегодня я расскажу тебе как правильно брать на абордаж галеоны с контентом. (все id изменены для пущей секретности)

Прелюдия.

Пришел как-то ко мне хороший человек и сказал: “Посмотрел я вебинар интересный, можешь ты его скачать, а то вдруг потом видео закроют”. И кинул в меня ссылочкой на этот вебинар. Достал я подзорную трубу свою, осмотрел неприятельский флот. Вижу, контент мне нужный везет галеон системы kinescope.io. Попробовал я его взять прямым наскоком, посмотрев в developer tools код исходный. Но контента там не обнаружил. Нашел только то, что, когда конопчку play нажимаешь, браузер скачивает какой-то mpd файл, а потом начинает тягать mp4 и показывать их.

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

Акт 1. Облом

Пошел я тогда на Тортугу, в таверну гугловскую, народ расспросить, как такие галеоны грабить. А никто там толком этого и не знает. Максимум слухи всякие ходят, что кто-то когда-то это делал с помощью абордажного крюка youtube-dl. Такой у меня как раз был.

Расчехлил его я, сунул ему ссылку и он радостно захрюкав, начал грабить галеон. Сказал, что сундук с часовым контентом будет весить 36 тонн. “Как-то многовато,” – подумал я, но дождался конца работы этого зверя. Открыл сундук, а там все дукаты поломанные. Выкинул я его на дно морское и решил, что будем грабить по науке. А для этого надо галеон этот изучить всячески.

Акт 2. Наблюдение

В руках у меня были только координаты какой-то неизвестной фигни с окончанием mpd. Надо посмотреть, что это такое.

Сказал я. И увидел нифига. То есть письмо в формате html с надписью “Access forbidden. Video is not available on this domain”. Владельцы контента не хотели всяким бородатым пиратам отдавать важные документы. Почесал я бороду, выкурил трубку и подумал: “Раз они говорят, что в этом домене они никому не доверяют, то как они узнают своих?”. Посмотрел ещё разок в developer tools и увидел в исходящих заголовках слово referrer. “А что если?”

И увидел в ответ громадную депешу на языке xml.

Сохраним ее в файл, чтобы рассмотреть получше

Вот это сокровище! Да тут же все написано что мне нужно. Есть несколько тэгов AdaptationSet, которые помечены mimeType. mimeType=’video/mp4′ — это без сомнения видеопотоки, а mimeType=’audio/mp4′ — аудиодорожка. Тут стало совершенно понятно, как украсть ценный контент. Для этого мне будут нужны C#, curl, ffmpeg и немного bash-магии (я старый пират пингвинячьего флота).

Акт 3. Грабеж

Запускаем VS code, Создаем проект на .net core 6 и начинаем потихоньку кодить. Для начала набросаем вспомогательную функцию, которая будет нам из xml список координат интересных нам дукатов и дублонов доставать. Нам же нужен контент только самой высокой, 1080 пробы )

Эта функция идет по xml, находит тэги “AdaptationSet”, удовлетворяющие условию adaptationAttrFilter, в них находит тэги “Representation” по условию representationAttrFilter и вытаскиваем из их потомков по пути SegmentList/SegmentURL значение атрибута media.

Начнем действовать.

Для начала определимся с количеством параметров и покажем сообщение, если не хватает, а так же загрузим наш xml

Получил самый жирный видео контент

В консоль будем писать команды шелла, чтобы потом их собрать в скрипт. Качать будем в каталог tmp, поэтому для начала приберем там

Сформируем команды скачивания всех кусков

Чем хорош формат mp4 — мы можем просто склеить все куски вместе и получить поток целиком.

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

И финальный аккорд — собрать это все добро в один сундук

Вот так. Всего в 60 строк мы автоматизировали грабеж галеонов с контентом компании kinescope.

Компилируем с помощью команды dotnet build и запускаем наше творение

На выходе получаем shell файл примерно следующего содержания

Запустив его, понаблюдаем за скачиванием контента и на выходе увидим сундук с надписью master_1_1.mkv где будет лежать ценный образовательный контент.

4 комментария для “Грабим видео с kinescope.io

  1. Непонятный гайд.
    В моем случае нет ссылки с окончание mpd

    Сколько будет стоить скачать видео с сайта?

    1. Надо найти знакомого (или не очень) программиста .net и спросить у него.

Добавить комментарий

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

* Все комментарии проходят предмодерацию.