Форум русскоязычного сообщества Ubuntu


Автор Тема: yt-dlp Масовое скачивание видео с youtube.com и не только  (Прочитано 468867 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн livanda

  • Автор темы
  • Участник
  • *
  • Сообщений: 233
  • За мной будущее! А что за вами?
    • Просмотр профиля
Всем доброго времени суток. Я в интернете не нашла никакой информации об том, как скачать массово видео с ютуба на линукс. Поэтому решила сделать маленький гайд. По такому приложению как yt-dlp. Многие пользователи спросят - зачем это нужно, в интернете есть сайты, туда вставляешь ссылку и скачиваешь любое видео. На что я скажу - да есть такие сайты. Но эти сайты ничего не стоят сравнению с этой программой. Официальная ветка на гит https://github.com/yt-dlp/yt-dlp там более подробная инструкция. Также можно установить от простого пользователя с репозитория питона.
pip3 install yt-dlpпуть где будет лежать ваш yt-dlp тут
ls $HOME/.local/bin/yt-dlp
Если коротко что может это программа
1. Скачивать видео с youtube
2. Массово скачивать весь канал с youtube. Если оно вам нужно
3. Массово скачать весь плейлист любого пользователя
4. При скачивании указать формат файла, его частоту кадров и т.д.
5. Также, если оно вам нужно можно скачать и в формате mp3 также и канал и плейлист. Как вам угодно.
6. Более того что уже важно мне ей можно указать древо каталогов. То есть
«/home/user/Video/youtube/Канал_Пользователя/Плейлист/Само_видео_ С_котиком.mp4»

Как видите возможностей у нее много и это не весь список, что я тут перечислила. На самом деле их намного больше, если набрать команду
yt-dlp -helpВы увидите, куда более широкие ее возможности. Но пользоваться ей очень легко. Ниже я приведу самый простой пример, который мне пришел только что в голову.
yt-dlp --ignore-errors -o /home/user/Video/youtube/'%(uploader)s/%(playlist)s/%(title)s'.mp4 https://www.youtube.com/user/ArtSorax/playlistsТеперь давайте посмотрим что тут программа тут сделает
--ignore-errors — этот пункт отвечает как уже понятно из названия пропуск ошибок, не важно каких скажем на видео наложено ограничения по странам и или его удалили… В этом случае она пропустит и пойдет качать дальше
-o  - тут мы указываем путь для куда сохранять сами видеофайлы.
%(uploader)s  Тут подставится само название канала.
%(playlist)s  А вот тут имя плей листа
%(title)s     Ну и название самого видеофайла. Название сохранится без расширения, поэтому его можно оставить по умолчанию, кодировка видео идет в формате mp4.
.%(ext)s,   Но если нужно можно сделать его динамическим в зависимости от кодировки. Если вам это нужно.
Ну и в конце в моем примере идет ссылка на канал и с указанием что все видео он скачивал из плейлистов.
Должна отметить что он качает все в максимально высоком качестве по умолчанию.
Все это очень хорошо. И полезно, но что если мне будет нужно скажем скачать видео другого разрешения или формата. Предположим у меня старый или маломощный компьютер, а может я хочу это видео себе на телефон. Для этого мне поможет параметр -F данная команда будет выводить видео какие есть на данном канале.
yt-dlp -F https://www.youtube.com/watch?v=0QudXUs_vq0И ниже программа выдает список всех форматов и кодировок что есть, и все что под маркировкой "DASH" идут отдельно звуковая дорожка и видео файл.
(Нажмите, чтобы показать/скрыть)
Но все что идут под маркировкой small, medium и hd720 уже со звуковой дорожкой.
(Нажмите, чтобы показать/скрыть)
Теперь мне нужно выбрать формат и размер экрана. Предположим, я хочу скачать видео для старого мобильного телефона. В формате 3gp и с разрешением 176x144 пикселей.
В самой начале строки есть цифры.
(Нажмите, чтобы показать/скрыть)
вот эти цифры указывают какое видео я хочу скачать, чтобы программа мне его скачала.
Я должна указать параметр -f c нужным мне префиксом, в моем случае это будет 17.
yt-dlp --ignore-errors -f 17 -o /home/user/Video/youtube/'%(uploader)s/%(playlist)s/%(title)s'.3gp https://www.youtube.com/watch?v=0QudXUs_vq0Все это конечно очень хорошо и удобно. Но очень много кода. Не понятных закорючек, и буковок. И запомнить все это будет очень сложно, простому человеку, а новичку понять и написать все это правильно. Для можно сделать простой скрипт, для автоматизации такой "страшной работы".
#!/bin/bash
DIR="ПАПКА ГДЕ БУДЕТ ЛЕЖАТЬ НАШЕ ВИДЕО"
URL1="https://www.youtube.com/watch?v=0QudXUs_vq0"
CODEC="17"
# В CODEC="17" За место 17 подставьте нужное вам значения

        yt-dlp --ignore-errors -f $CODEC -o "$DIR"'%(uploader)s/%(playlist)s/%(title)s.%(ext)s,' "$URL1"






######
И что зачем нам это нужно? А затем, что если вы куда-то хотите поехать или еще по каким причинам у вас не будет доступа к интернету. То вы можете спокойно смотреть видео офлайн. Ваших любимых котиков и или летсплейщиков. Ну или просто сделать бекап своего канала, чтобы не хотите потерять дорого вам видео.
Гораздо проще поставить весь плейлист на закачку и пойти спокойно спать, чем сидеть часами и все это кликать на каких либо ресурсах. И в БОЛЬШОЙ +  программа консольная.
PS...более Подробно смотрите man страницы или хелп… Я расписала эту программу для новичков которые могут не понять что с ней делать. Или просто не знают, что такая программа вообще существуют.

Скачивание видео с других ресурсов
yt-dlp также может скачивать видео ролики не только с ютуба, но и с других сайтов. Список, откуда он может точно скачать, можно увидеть так
yt-dlp --list-extractorsкак видите, перечень большой. Также она может скачать и видео с сайта, даже если в списке его нет. Но тут как вам повезет.


Proxy
С связи с тем, что происходит в стране, добавляю пункт - Как пользоватся прокси. Вам нужно знать, через что вам подключатся. Указываете протокол и все. Скорость будет не высокая. Но как и раньше, офлайн ютуб можно смотреть. Даже при блокировке.
yt-dlp  --proxy "http://111.111.111.111:1111" https://www.youtube.com/watch?v=0QudXUs_vq0
yt-dlp  --proxy "https://111.111.111.111:1111" https://www.youtube.com/watch?v=0QudXUs_vq0
yt-dlp  --proxy "socks5://111.111.111.111:1111" https://www.youtube.com/watch?v=0QudXUs_vq0
(Нажмите, чтобы показать/скрыть)

ВНИМАНИЕ!
(Нажмите, чтобы показать/скрыть)


Большое спасибо за Внимание ^_^
Надеюсь кому-то я помогла кто искал такую информацию.


OLD
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Марта 2022, 04:12:11 от ALiEN175 »

Punko

  • Гость
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #1 : 12 Февраля 2016, 01:36:23 »
livanda,
Тоже недавно познакомился с программой, за гайд спасибо.

Кстати, в репах 15.10, спокойно через апт-гет ставится.

Программа отличная, особенно радует её консольность и возможность повесить на хоткей (ну очень я люблю это дело =) )

Оффлайн livanda

  • Автор темы
  • Участник
  • *
  • Сообщений: 233
  • За мной будущее! А что за вами?
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #2 : 12 Февраля 2016, 01:45:13 »
Punko,
ну я ее знаю давно. Она не раз меня спасала когда я знаю что за месяц не смогу за интернет заплатить а каналы смотрю. И вот как-то так. Как раз сейчас вот. Качаю несколько каналов и реши посмотреть обновления. Ну и на русском языке по нее вообще кот на плакал. А так хоть что-то будет.
На счет репазитория не знаю у меня 14.04.03 и пока обновятся не хочу и не буду. Но если есть это уже хорошо
« Последнее редактирование: 12 Февраля 2016, 01:49:00 от livanda »

Punko

  • Гость
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #3 : 12 Февраля 2016, 01:56:23 »
livanda,
Угу. У меня интернет есть всегда, в принципе, но захотелось принести пару видосов на флешке человеку со слабым интернетом вот и пришлось ковырять, чтоб лептоп не тянуть с собой. Может, еще чем-нибудь дополню топик.

Почитал ман, нашёл интересную опцию
--source-address
Насколько я понял, можно скачивать видео, которые недоступны для региона\страны, подставив нужный айпишник, не использую при этом прокси. Интересная фича.


Также интересная опция
--dateafterПозволяет загружать видео, которые были добавлены на канал после определённой даты. Так удобно сделать скрипт, запихнуть его в крон и пару раз в неделю ( в зависимости от живучести канала) обновлять себе локальное хранилище каналов, качая только свежее видео.

Оффлайн theurs

  • Активист
  • *
  • Сообщений: 470
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #4 : 12 Февраля 2016, 03:06:49 »
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

так не работает /usr/local/bin/ надо переделать в

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/bin/youtube-dl
sudo chmod a+rx /usr/bin/youtube-dl

Пользователь решил продолжить мысль [time]12 Февраль 2016, 04:10:45[/time]:
Для скачивания в действительно хорошем качестве, 1080 и больше надо использовать ключи -F(список всех дорожек) и -f x+y(номер видеодорожки+номер аудио) кроме того нужен пакет ffmpeg которого тоже нету в репозитории.


Пользователь решил продолжить мысль 12 Февраля 2016, 03:16:33:
Кстати, в репах 15.10, спокойно через апт-гет ставится.

В 14.04.3 тоже вроде есть в репе но устаревшая, неправильно работает.
« Последнее редактирование: 12 Февраля 2016, 03:16:33 от theurs »

Punko

  • Гость
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #5 : 12 Февраля 2016, 03:18:44 »
theurs,
Это ffmpeg`a нет в репозиториях?? Оо

Оффлайн theurs

  • Активист
  • *
  • Сообщений: 470
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #6 : 12 Февраля 2016, 04:18:17 »
theurs,
Это ffmpeg`a нет в репозиториях?? Оо
Нету. https://help.ubuntu.ru/wiki/ffmpeg

Оффлайн livanda

  • Автор темы
  • Участник
  • *
  • Сообщений: 233
  • За мной будущее! А что за вами?
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #7 : 12 Февраля 2016, 11:49:27 »
theurs,
А зачем тебе ffmpeg? там же можно указать качество ? кстати есть еще mencoder. если нужно переконверитировать но я уже им давно не пользовалась андроид все отрывает и без какой либо конвертации 

Оффлайн theurs

  • Активист
  • *
  • Сообщений: 470
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #8 : 12 Февраля 2016, 11:56:14 »
theurs,
А зачем тебе ffmpeg? там же можно указать качество ? кстати есть еще mencoder. если нужно переконверитировать но я уже им давно не пользовалась андроид все отрывает и без какой либо конвертации 

Ютуб не дает скачивать качество больше 720р в собранном виде, только дорожки по отдельности, отдельно видео отдельно звук, ffmpeg нужен чтоб их соединить.

Оффлайн lin_user

  • Старожил
  • *
  • Сообщений: 1292
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #9 : 12 Февраля 2016, 13:38:25 »
Да, вещь отличная. Всем её рекомендую. Никакие мерзкие расширения для браузера не нужны.

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #10 : 13 Февраля 2016, 15:25:49 »
Punko,
Цитировать
Это ffmpeg`a нет в репозиториях?? Оо
В ubuntu 14.04 нету
А с этим вашим avconv я пару часов долбился из спортивного интереса, чтоб склеить аудио и видео с тытрубы из DASH формата..,
Так и не смог. Поставил ffmpeg - и элементарно всё сдедалал.

Оффлайн dstftw

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #11 : 14 Февраля 2016, 14:31:01 »
youtube-dl --ignore-errors -o /home/user/Video/youtube/'%(uploader)s/%(playlist)s/%(title)s'.mp4 https://www.youtube.com/user/ArtSorax/playlists
Правильнее указывать расширение также шаблоном, иначе возможны проблемы по части постпроцессинга:
-o '/home/user/Video/youtube/%(uploader)s/%(playlist)s/%(title)s.%(ext)s'
Почитал ман, нашёл интересную опцию
--source-address
Насколько я понял, можно скачивать видео, которые недоступны для региона\страны, подставив нужный айпишник, не использую при этом прокси. Интересная фича.
Только если этот IP на одном из ваших сетевых интерфейсов. Для прокси используется --proxy.

Также интересная опция
--dateafterПозволяет загружать видео, которые были добавлены на канал после определённой даты. Так удобно сделать скрипт, запихнуть его в крон и пару раз в неделю ( в зависимости от живучести канала) обновлять себе локальное хранилище каналов, качая только свежее видео.

Более правильное решение для такого юз-кейса это использование --download-archive.

Для скачивания в действительно хорошем качестве, 1080 и больше надо использовать ключи -F(список всех дорожек) и -f x+y(номер видеодорожки+номер аудио) кроме того нужен пакет ffmpeg которого тоже нету в репозитории.

Не нужно ничего мудрить с -f x+y, по умолчанию это делается автоматически (скачивается лучшее видео, лучшее аудио и муксится) при наличии установленного ffmpeg.

я вообще то предпочитаю этот вариант от Рикардо Гарсия
https://github.com/rg3/youtube-dl
-- там и инструкция есть, по добавлению новых каналов для считывания и декодирования, и таким образом вы можете создать свой шаблон для считывания видео - с любого источника, и тд.

Это в точности та же программа, что лежит на yt-dl.org, да и Рикардо, с точки зрения разработки, уже лет 5 не при делах.

Оффлайн theurs

  • Активист
  • *
  • Сообщений: 470
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #12 : 14 Февраля 2016, 15:55:09 »
Для скачивания в действительно хорошем качестве, 1080 и больше надо использовать ключи -F(список всех дорожек) и -f x+y(номер видеодорожки+номер аудио) кроме того нужен пакет ffmpeg которого тоже нету в репозитории.

Не нужно ничего мудрить с -f x+y, по умолчанию это делается автоматически (скачивается лучшее видео, лучшее аудио и муксится) при наличии установленного ffmpeg.

У меня установлен ffmpeg. Пишу просто youtube-dl URL скачивается 720р. Пишу youtube-dl URL -F и вижу что там есть еще куча вариантов вплоть до 4К. Пишу youtube-dl URL -f x+y качается и склеивается то что запрошено. Версия последняя или около нее.

Оффлайн dstftw

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #13 : 14 Февраля 2016, 18:54:29 »
Для скачивания в действительно хорошем качестве, 1080 и больше надо использовать ключи -F(список всех дорожек) и -f x+y(номер видеодорожки+номер аудио) кроме того нужен пакет ffmpeg которого тоже нету в репозитории.

Не нужно ничего мудрить с -f x+y, по умолчанию это делается автоматически (скачивается лучшее видео, лучшее аудио и муксится) при наличии установленного ffmpeg.

У меня установлен ffmpeg. Пишу просто youtube-dl URL скачивается 720р. Пишу youtube-dl URL -F и вижу что там есть еще куча вариантов вплоть до 4К. Пишу youtube-dl URL -f x+y качается и склеивается то что запрошено. Версия последняя или около нее.

Последняя это какая? Если "последняя" из репозиториев убунты, то значит не последняя. Последняя версия на момент написания этого поста - 2016.02.13. В любом случае лог с --verbose в студию.

dstftw,
ха ха - Рикарда автор! так что он в любом случае при делах, и только его контент есть единственный вариант расширения пунктов хранения видео.

!! всего час назад Рикардо обновил контент, так что ваши 5 лет как то не катят в принципе

Гит лог хотя бы глянули что-ли, прежде чем чушь нести: https://github.com/rg3/youtube-dl/commits/master?author=rg3.

Оффлайн livanda

  • Автор темы
  • Участник
  • *
  • Сообщений: 233
  • За мной будущее! А что за вами?
    • Просмотр профиля
Re: youtube-dl Масовое скачивание видео с youtube.com
« Ответ #14 : 14 Февраля 2016, 20:24:07 »
youtube-dl --ignore-errors -o /home/user/Video/youtube/'%(uploader)s/%(playlist)s/%(title)s'.mp4 https://www.youtube.com/user/ArtSorax/playlists
Правильнее указывать расширение также шаблоном, иначе возможны проблемы по части постпроцессинга:
-o '/home/user/Video/youtube/%(uploader)s/%(playlist)s/%(title)s.%(ext)s'
расширение указанно правильно и проблем не будет. И вообще bash  это за ошибку не считает  /home/user/Video/youtube/ или '/home/user/Video/youtube/'  моем Варианте нету синтаксичеких символов  или пробелов. чтобы bash посчитал это за команду так что все хорошо

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.