Быстро и просто качаем видео с YouTube и еще примерно 1000 популярных сайтов

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
Всем привет, решил запилить вторую статью в этом конкурсе =) в раж вошел =)

;-)
В этот раз хочу рассказать как можно легко и непринужденно качать видео с многих (даже очень многих) популярных мировых видеосервисов таких как YouTube, Vimeo, VK, Odnoklassniki, Xvideos и многих многих других.

Зачем их качать каждый решит для себя сам, в наш век быстрого интернета видеоконтент нужен очень много для чего (для наполнения собственных сообществ в соцсетях, для видеоспама, для рекламы, монтажа и еще кучи всего).

Ладно, не буду ходить вокруг да около. Эта статья посвящена одной замечательной консольной утилите, которая почему то в нашем зенносообществе пока еще не особо известна, но ее возможности в связке с зеннопостером могут съэкономить вам целую кучу времени (а иногда и денег).

Итак, встречайте - youtube-dl - это кроссплатформенная консольная утилита с открытым исходным кодом на Python, которая умеет качать видео с самых популярных сайтов в интернете. И пускай название не вводит вас в заблуждение, просто посмотрите на полный список поддерживаемых сайтов с которых можно качать видео. Их там порядка 1000+. Впечатляет, не правла ли? Там есть все популярные видеосайты мира, куча известных телекомпаний, соцсети и многие другие.

Официальный сайт: https://www.youtube-dl.org/
Последняя сборка для Windows всегда доступна тут: https://www.youtube-dl.org/downloads/latest/youtube-dl.exe

Нам, зенноводам, эта утилита инетерсна именно тем, что мы можем ее запускать из ZennoPoster-а, подставляя нужные нам параметры командной строки.
Для простого скачивания видео с различных сайтов будет достаточно стандартного кубика "Запуск программы", однако youtube-dl умеет не только качать, с ее помощью мы можем получать информацию о том или ином видео в форамате JSON (а для ютуба еще кучу всякой информации - о плэйлистах, их содержимом и тд) и вот для этих целей стандартный кубик нам не подойдет т.к запись STD OUT (того что выводится на экран) в переменную работает пока что мягко говоря не айс (может в новых версиях уже поправили, но у меня на 5.33 нормально не работает).

Так же нужно отметить что для нормальной работы youtube-dl потребуется еще одна популярная консольная утилита - ffmpeg т.к зачастую youtube-dl нужно перекодировать результат или склеить видео и звук ( если вы не в курсе, то тот же ютуб наиная с 1080p отдает видео и аудио отдельно, а не единым файлом ... именно поэтому в большинстве сервисов по скачиванию видео с ютуба вы можете скачать видео со звуком только в 720p, а все что выше уже по отдельности ).

Ладно, утомил наверное уже вас большим количеством букв, давайте перейдем к практическим примерам использования youtube-dl в ZennoPoster.

Демонстрационный пример подразумевает что в директории шаблона лежит так же youtube-dl и ffmpeg

Для начала будем использовать стандартный кубик запуска внешних программ.


Запустив кубик с такими параметрами в директорию шаблона скачается видео с ютаба в самом лучшем доступном качестве и с самым лучшим доступным аудио.

1 - качаем видео с youtube.png


Тут нужно понимать, что расширение у конечного файла может быть разным ... мы же качаем все в лучшем качестве и зачастую все это качается по отдельности (видео и аудио) и youtube-dl сам решит в каком контейнере это лучше совместить для лучшего качества. То есть на выходе может получиться mp4 или mkv например. Так же обратите внимание на таймаут, мы все-таки не картинки качаем а видео, соответственно он должен быть большим!

Если мы хотим что бы у скаченного с ютуба видео точно был формат MP4, тогда можно это явно указать

2 - качаем видео с youtube (задаем формат).png


Качаем видео с нашего любимого ВК. Не знаю можно ли тут выбирать качество (почти уверен что можно), но в макcимальном это делается вот так

3 - качаем видео с VK.png


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

4 - качаем видео с OK.png


Ну и конечно все это дело не обойдется без манящей клубнички с крeпнейшего прон-сайта мира :-)

5 - качаем видео с xvideos.png


Хотел было еще пронхаб сделать для вас, но видимо он верстку изменил на днях и ютуб-дл его сейчас не осилил, хотя он поддерживается и я сам с него качал для адалт сайтов. Но не беспокойтесь, youtube-dl ОЧЕНЬ часто обновляется, сами понимаете что с таким количеством поддерживаемых сайтов всегда найдется тот кто что-то поменял ;-)

Ладно, думаю общий принцип простого скачивания вы уже поняли. Давайте перейдем к не менее интерсным штукам, которые позволяет нам сделать youtube-dl .... здесь мы уже перейдем от стандартного кубика запуска программ к C# коду т.к нам нужно будет получать вывод на экран, а у стандартного кубика с этим есть проблемы.

Получаем информация о конкретном видео с ютуба в JSON
6 - парсинг инфы о видео с YouTube.png


заглянув после выполнения этого кода в окно переменных и перйдя на вкладку JSON увидим просто КУЧУ информации об этом видео ... тут есть все - назвние, описание, количество лайков и дизлайков, заставка, тэги и категория, кодеки, прямые ссылки на скачку в разном качестве ... в общеv любителям покопаться будет чем заняться ;-)

1.gif


Давайте еще какой-нибудь примерчик рассмотрим. Например получим информацию о всех видео в плэйлисте из первого видеоконкурса шаблонов на зеннолабе (https://www.youtube.com/playlist?list=PLU9NTYia8FliXxgseUqvH6bsyRRZNt2mV)

8 - получение json о видео из плэйлиста YouTube.png


в результате в переменной result у вас будут построчные JSON-данные каждого видео из плэйлиста

9.png


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

Что еще хотел добавить. Наверное у некоторых из вас возник вопрос как получить название скаченного файла. Тут если несколько путей.
1) Можно вообще не качать с помощью youtube-dl , а получать JSON, брать оттуда нужную ссылку и просто качать зеннопостером. А можно воспользоваться опцией -o и задать полнуй путь сохранения (указывается вместе с названием файла) если мы точно знаем формат выходного видео.... иначе же можно каждого видео создать временную папку со случайным именем в которую и будем его качать ... в результате единственный фал что там есть и будет вашим ;-)

Вот пример как это сделать:

10.png


Ну и шаблон с этими всеми примерами прикладываю, там каждый кубик это отдельный пример ... напоминаю что в папке с шаблоном должен быть youtube-dl и ffmpeg
 
Тема статьи
Другое
Номер конкурса статей
Двенадцатый конкурс статей

Вложения

  • 25,7 КБ Просмотры: 815

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Sanekk

Client
Регистрация
24.06.2016
Сообщения
987
Благодарностей
388
Баллы
63
норм прога, какраз с ОК видео стянуть нужно)
 
  • Спасибо
Реакции: WebBot

DrunkDeath

Client
Регистрация
24.12.2014
Сообщения
566
Благодарностей
379
Баллы
63

Nike59

Client
Регистрация
05.08.2011
Сообщения
122
Благодарностей
121
Баллы
43
Спасибо. Радует продуктивность и креативность автора - WebBot.
 
  • Спасибо
Реакции: WebBot

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
817
Баллы
93

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
288
Баллы
63

Advert31337

Client
Регистрация
18.12.2016
Сообщения
53
Благодарностей
38
Баллы
18
Ух, вот это оч хорошо, заодно в кишки загляну.... python - штука хорошая)
 
  • Спасибо
Реакции: WebBot
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28

inilim

Client
Регистрация
16.09.2017
Сообщения
441
Благодарностей
170
Баллы
43
объективненько...
нет других вариантов чтобы получить:

Название :
Продолжительность :
Пользователь :
Дата публикации :
Просмотры :
Понравилось :
Не понравилось:
Описание...

?
Вкладку json проверяли?
 
  • Спасибо
Реакции: WebBot и Анатолий
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28
  • Спасибо
Реакции: WebBot

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
Еще полезная команда про которую забыл написать в статье - скачка только аудио (mp3) из ютуб-видео, периодически ее юзаю

Код:
youtube-dl.exe -x --audio-format mp3 https://www.youtube.com/watch?v=XUXJeCfAkKs
А вообще там конечно еще сотни (если не тысячи) всяких полезных команд (особенно касающихся ютуба)... так что кому интересно поэкспериментировать, рекомендую почтить официальную документацию
 
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28
Еще полезная команда про которую забыл написать в статье - скачка только аудио (mp3) из ютуб-видео, периодически ее юзаю

Код:
youtube-dl.exe -x --audio-format mp3 https://www.youtube.com/watch?v=XUXJeCfAkKs
А вообще там конечно еще сотни (если не тысячи) всяких полезных команд (особенно касающихся ютуба)... так что кому интересно поэкспериментировать, рекомендую почтить официальную документацию
комменты бы спарсить...
 

inilim

Client
Регистрация
16.09.2017
Сообщения
441
Благодарностей
170
Баллы
43
  • Спасибо
Реакции: WebBot и Анатолий

slava1975

Client
Регистрация
12.09.2016
Сообщения
236
Благодарностей
13
Баллы
18
А как быть с видео которые сигментами идёт?
 

slava1975

Client
Регистрация
12.09.2016
Сообщения
236
Благодарностей
13
Баллы
18
А как работать с сайтами типа этих
Тут видео сигментами идёт и целую ссылку редко удается спарсить
 
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28
А как работать с сайтами типа этих
Тут видео сигментами идёт и целую ссылку редко удается спарсить
так то это не парсер сайтов, а качалка, которая вряд ли поддерживает конкретно этот сайт.
тут работа по ссылкам на конкретные ролики.
 

slava1975

Client
Регистрация
12.09.2016
Сообщения
236
Благодарностей
13
Баллы
18
Так я не парс ссылок,я спрашиваю про то что как с подобного сайта скачатт
 
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28

slava1975

Client
Регистрация
12.09.2016
Сообщения
236
Благодарностей
13
Баллы
18
Вот вот,а как же их собрать?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
@slava1975
youtube-dl поддерживает только сайты имеющиеся в этом списке . Указанного выше сайта в нем нет т.ч если только самому разбираться каким образом на указанном выше сайте можно получить прямую ссылку на видео (или куски видео и потом с помощью того же ffmpeg их клеить)
 
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28
Вот вот,а как же их собрать?
по классам вовсе комменты, я не особо шарю в этих плеерах, но с данного сайта вряд ли что получится скачать.
набор файлов, которые собираются в кучу скриптом...
блокнотом откройте файл, скачайте содержимое любой ссылки и посмотрите через медиаплеер - ролики по несколько секунд.
ищите сайты с нормальными роликами.
 

Вложения

  • 38,3 КБ Просмотры: 376

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
@slava1975
зашел на указанный вами сайт, тыркнул в случайное видео и открыл в браузере код страницы
ShareX_2019-12-12_16-44-39.png
там прямые ссылку на файлы m3u8 для каждой серии, а внутри них ссылки на кусочки видео в формате ts .... соответственно нужно качать m3u8, качать все кусочки в формате ts и склеивать их с помощью ffmpeg
 
Регистрация
13.04.2016
Сообщения
650
Благодарностей
52
Баллы
28
самодельный плеер, чтобы не дать вам скачать ролики, а так же размещать любую рекламу в своих видео. толково.
 
Регистрация
04.09.2014
Сообщения
444
Благодарностей
624
Баллы
93
Добавлю-ка я вам мыслей.
Берем сервак или виртуал самый дешевый, но позволяющий выполнить youtube-dl.
Берем урлы xvideos на инетересующие страницы с хардкором. Отбираете. Они ссылки на видео каждые 3 часа (вроде) меняют.
Берете прямые руки, и пишите код, который при каждом обращении с конкретные параметрами на вашей стороне запускает youtube-dl с данными урла соответствующей страницы xvideos.
Получаете урл. Суете в свой плеер.
????
Профит!!!
 
  • Спасибо
Реакции: WebBot

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
Добавлю-ка я вам мыслей.
Берем сервак или виртуал самый дешевый, но позволяющий выполнить youtube-dl.
Берем урлы xvideos на инетересующие страницы с хардкором. Отбираете. Они ссылки на видео каждые 3 часа (вроде) меняют.
Берете прямые руки, и пишите код, который при каждом обращении с конкретные параметрами на вашей стороне запускает youtube-dl с данными урла соответствующей страницы xvideos.
Получаете урл. Суете в свой плеер.
????
Профит!!!
Да, запросто можно сделать свой мега-пронсайт беря прямые ссылки для своего плеера с крупных мировых пронсайтов. Хотя, нужно сначала посмотреть как там отдается видео и аудио, может так же как на ютубе по отдельности, тогда шаманить придется ж)
 

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
Да хорошая утилька, главное что она умеет сама прямую ссыль получать в отличии от wget.exe
Ого го, даже отлично качает онлаин трансляции, ваще респект тебе дружище.
 
  • Спасибо
Реакции: WebBot

T710MA

Client
Регистрация
30.11.2018
Сообщения
91
Благодарностей
3
Баллы
8

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 713
Благодарностей
1 370
Баллы
113
Сейчас в телеграм написал человек, интересовался можно ли сделать шаблон для выкачивания MP3 из указанных им альбомов на Яндекс Музыка (там дальше с этими mp3 еще кое-что делать нужно, но здесь не об этом) .... в общем сразу вспомнил про youtube-dl и решил проверить - отлично выкачивает с ЯМ, как отдельные треки так и целые альбомы или плейлисты. Вот считай сразу шаблон на 90% готов ж) В общем в 100500 раз убеждаюсь в полезности этой штуки.

+ кроме выкачивания так же с помощью -j можно получать информацию в формате JSON, где есть прямая ссылка на скачку, название артиста и трека, длительность, thumbnail, размер файла и другая инфа. В общем сказка ;-)

JSON:
{"genre": "electronics", "album": "Chilled House 2018", "album_artist": "\u0441\u0431\u043e\u0440\u043d\u0438\u043a", "_filename": "Mr. Chillout - Crockett\u00b4s Theme-38339585.mp3", "playlist_index": null, "thumbnail": "http://avatars.yandex.net/get-music-content/149669/43d0c52f.a.4898100-1/orig", "ext": "mp3", "extractor": "yandexmusic:track", "format": "0 - unknown", "format_id": "0", "protocol": "http", "abr": 192, "webpage_url": "https://music.yandex.ru/album/4898100/track/38339585", "thumbnails": [{"id": "0", "url": "http://avatars.yandex.net/get-music-content/149669/43d0c52f.a.4898100-1/orig"}], "artist": "Mr. Chillout", "track_number": 2, "duration": 217.89, "requested_subtitles": null, "playlist": null, "disc_number": 1, "title": "Mr. Chillout - Crockett\u00b4s Theme", "acodec": "mp3", "filesize": 5229922, "webpage_url_basename": "38339585", "id": "38339585", "http_headers": {"Accept-Encoding": "gzip, deflate", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-us,en;q=0.5", "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3733.0 Safari/537.36"}, "fulltitle": "Mr. Chillout - Crockett\u00b4s Theme", "extractor_key": "YandexMusicTrack", "url": "http://s94vla.storage.yandex.net/get-mp3/3a26b03a7ee62e08fbc4589476b034e6/000599babf913b8a/rmusic/U2FsdGVkX18xT65kdCB_JjNqCMhkd2A2a4uEXB3YXogEEIvEK8W0pMWlHKqNFjBXHWpqSaqcHfr6eY3PDoKqR7oha6QiQ6uEuiOGbLefFss/692554aad494e0a4adb1a326bfb73f357b5021d3ea06e57119e2b8c43e3ca334?track-id=57348376 ", "display_id": "38339585", "track": "Crockett\u00b4s Theme", "release_year": 2017}
 
  • Спасибо
Реакции: Colter и inilim

spbalexpiter

Client
Регистрация
24.11.2013
Сообщения
353
Благодарностей
55
Баллы
28

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)