Как спарсить все видео со страницы — Ubuntu

Итак, встал вопрос, как стянуть кучу видео у пользователей mail.ru.

Для линукса есть прекрасная консольная утилита youtube-dl

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

youtube-dl ссфлка_на_страницу_с_видео

с этим все понятно, но надо скачать очень много видео. Для этого я написал небольшой скрипт

#!/bin/bash
curl https://my.mail.ru/mail/user/video/786 2>&1 | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 >links
file='links'
while IFS='' read -r line || [[ -n "$line" ]]; do
if [ "$(echo "$line" | egrep 'user')" ]
then
  youtube-dl "$line"
fi  
done < "$file"
  • https://my.mail.ru/mail/user/video/786 — ссылка на плейлист со списком видео
  • if [ «$(echo «$line» | egrep ‘user’)» ] — качаем только видео для пользователя user — ну или вы можете сюда вставить любое другое правило, чтобы отфильтровать ссылки на дополнительные видео, которые рекламируются на странице, и нам совершенно ни к чему

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

Теперь остается только ждать, пока все видео скачаются.

Профит.