Сохранить несохраняемое видео от дяди Боба Мартина

Дядя Анкл Боб Мартин уже давно записывает местами хилэриоус, местами вообщенотхилэриоус видео про всякие премудрости относительно программирования и продаёт на cleancoders.com доступ к ним за сравнительно немного мировых нефтяных запасов:

  • 14$ за просмотр видео (стриминг)
  • 20$ за возможность скачать видео)

Анадысь я сбегал на один его открытый стрим про историю и будущее языков программирования и получил за это такое письмо

Thanks for attending Uncle Bob’s webinar, The Future of Programming Languages! Use the following code to redeem a free streaming episode of your choice from cleancoders.com…

Я выбрал видео самым близким мне названием «Test Design»

Clean Code: Advanced TDD, Episode 21

56 minutes • 1.00GB • Aug 2013

https://cleancoders.com/episode/clean-code-episode-21

Редим-код как раз на 14$, поэтому я положил в корзину «стрим» и купил видео на просмотр бесплатно, на условиях продавца, легально и законно.

Но я хочу это видео скачать бесплатно без регистрации и смс. Что делать?

Найти источник видео

Ввиду того, что меня никто не просил всё это делать, и вообще это всё мамкино кулхацкерство для обучения неофитов, все уникальные символосочетания в ссылках и на скриншотах заменены/замазаны.

И вообще все ссылки резко сокращены, бо всё равно это условности.

Firefox: F12 > Сеть > Медиа (это фильтр, собственно). Тыкнуть по какому-нибудь источнику в списке полученных ответов и выбрать для него режим просмотра Headers (Заголовки).

Chrome: F12 > Сеть > XHR (или фильтруем по All, разница несущественная). Тыкнуть по какому-нибудь источнику и выбрать для него режим просмотра Headers (Заголовки).

В общем, что хром, что по лбу — видим повторяющиеся URL типа https://videos-cloudflare.jwpsrv.com/content/conversions/abcdef123456/videos/NVGldаRq-2327О335.mp4-67.ts — отсюда далее представляем их в виде

https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…

Следовательно, видео приходит в браузер кусками/частями в виде ts-файлов, которые принадлежат какому-то большому файлу с названием «NVGIdаRq-2327О335.mp4» и пронумерованы логично и последовательно.

Прокрутил я это видео дяди АнклБоба в конец и посмотрел в логе номер последней прилетевшей части — «848.ts» — всего-то файлов скачать. Оукей, «Челленджер» акксепдет.

Хотя, мы уже знаем имя файла (NVGldaRq-23270335.mp4). Так поскорее же

wget https://videos/NVGldаRq-2327О335.mp4

Однако в ответ приходит

403 Forbidden
2020-09-27 23:59:22 ОШИБКА 403: Forbidden.

Нда? Ну, тогда надо

Упорядочить добычу

Чтобы получить ВСЕ ссылки на ВСЕ эти файлы, их надо инкрементально размножить. Для этого можно выучить, наконец, Python, или можно зайти в Excel. Ладно, у меня

LibreOffice Calc

И в первую колонку положим общий шаблон

https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-

А во вторую — инкремент

1.ts
2.ts
3.ts

Достаточно трёх строк. Ухватили край третьей ячейки курсором и потянули вниз, пока не мелькнёт строка «848». Автоподстава безупречна.

Выделить обе колонки, Ctrl+C.

Kate

Ctrl+V. Получили вот это:

https://videos/NVGldаRq-2327О335.mp4- 1.ts
https://videos/NVGldаRq-2327О335.mp4- 2.ts
https://videos/NVGldаRq-2327О335.mp4- 3.ts
…

Kate.Замена #1 (Ctrl+R)

Убираем символы табуляции после «.mp4»

[.mp4-\t]
[.mp4-]
Режим: Управляющие последовательности
«Заменить все».

Результат:

https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…

Kate.Замена #2

Убираем перенос строк

[.ts\n]
[.ts ]
Режим: Управляющие последовательности
«Заменить все».

Результат: одна длинная строка, уходящая в правую даль.

https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts

Перед этой строкой дописываем настройки wget (Расшифровка: эй, wget, а поскачивай мне файлы из строки поочерёдно, и если будет отказ соединения, повторяй подключение через каждые 60 секунд):

wget -c -t 60 https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts…

Ctrl+A, Ctrl+C.

В консоль

Сделать новый каталог и зайти в него.

mkdir UncleBobVideo && cd UncleBobVideo

Вставить награбленное добро с wget в голове (Ctrl+V) и запустить (Enter).

Смотрим на мельтешение строк.

Если всё ок — уходим играть «Белоруссия ждёт переименования в Беларусь» на ксилофоне, бо это надолго.

Итог скачивания файлов в Dolphin выглядит норм. Но там сортировка приближённая к естественной (в настройках Sorting mode = Natural).

В действительности всё отсортировано так, как это всегда было в DOS…

И если запихнуть все эти файлы в один плейлист в видеоплеере, то воспроизводиться всё будет именно так, как должно по машинной логике:

1.ts
10.ts
100.ts
101.ts
…

Что можно сделать:

  1. или выстроить файлы в плейлисте вручную,
  2. или — old school — переименовать файлы по следующему шаблону:

    001.ts

    002.ts

    009.ts

    010.ts

    011.ts

    и так далее.

Возможно, отредактировать плейлист будет проще. Это же обычный текстовый файл с расширением m3u, а его содержимое — хэх, копипаст из того самого Excel идеально подойдёт (мы же его не удалили?) с удалением символов табуляции.

Ну или в консоли

ls > playlist.m3u

Чтобы получить более внятный список файлов, можно использовать ls так:

ls --group-directories-first -p -1 > playlist.m3u

Затем открыть файл playlist.m3u в Kate и вперёд, переставлять блоки текста местами. Или же копипаст из экселя, чо мудрить-то…

Теперь можно открыть этот плейлист в видеоплеере и если он будет адекватным, то можно будет смотреть череду коротких видеофайликов как один большой (50 минут).

А если раз в сутки будут разрывы между файлами — можно собрать все разрозненные файлы в один большой видеофайл, мне для этого очень норм OpenShot.

Или можно поискать какое-то сложное колдунство в консоли, бо буквально всё то, что я сделал в Calc и Kate, можно сделать в консоли, бо это же работа со строками в plain/text файлах.

И даже сборку множества видеофайлов в один можно сделать в консоли…

Итоговое соображение: всё то, что попадает в сеть, может быть скачано и использовано. Смиряемся с этим.

Сохранить полноразмерное фото из инстаграма

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

  1. Запустить в браузере «уголок веб-мастера» по [F12].
  2. Открыть страницу с фотографией (иначе ничего не загрузится же), например, это https://www.instagram.com/p/CFXlAIpgU1w/

Firefox: F12 > Сеть > Изображения

Отсортировать по колонке «Размер» так, чтобы самые объёмные файлы были первыми.

Тыкнуть по первому источнику и выбрать режим просмотра Ответ.

Если картинка неподходящая — тыкаем следующий источник. Долго тыкать не придётся.

Затем даблклик по подходящему источнику — откроется новая вкладка с искомой картинкой в полном размере первоисточника.

Chrome: F12 > Network > Img

Тыкнуть по какому-нибудь источнику и выбрать режим просмотра Preview.

Общая сортировка по размеру принятых файлов и последовательное тыканье по ним — ня.

Ставьте лайки на свои колокольчики и подписывайтесь на дядибобин канал.

Мне же остаётся последний лайфхак: сделать это всё в консоли, на bash и в Python. Задача достижима (руками), следовательно, можно всё сделать не выходя из консольки.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.