Закачка с youtube

Возникла задача скопировать видео с Youtube. Основная часть содержимого — это мои видеозаписи для преподавания. Для этой задачи я использовал yt-dlp.

Содержание

1 Общая информация

2 Установка

2.1 Linux

  • Gentoo
    • Установка yt-dlp:
      1emerge net-misc/yt-dlp
      
    • Установка в режиме совместимости с youtube-dl:
      1USE=yt-dlp emerge net-misc/youtube-dl
      

2.2 Windows

3 Примеры использования

3.1 Скачивание видео с Youtube

  • Просто указывается линк на скачиваемое видео:
    1yt-dlp <url>
    
  • Загрузите лучшее видео с лучшим кодеком, но не лучше, чем h264; разрешение не выше, чем 1080 строк:
    1yt-dlp -S "codec:h264,height:1080" <url>
    

3.2 Скачать только аудио-дорожку

  • Опция -x используется для загрузки только аудио (требуется FFmpeg):
    1youtube-dl -x -f bestaudio <url>
    

3.3 Скачивание своего общедоступного видео с Youtube

3.3.1 Постановка задачи

  • Видео добавлены в плейлисты по темам.
  • Есть ссылки на чужие видео.
  • Скачать нужно только своё общедоступное видео.
  • Следует сохранить порядок расположения видео в плейлистах.

3.3.2 Решение

  • %(playlist)s : будем сортировать виде по плейлистам.
  • %(playlist_index)s : будем сохранять номер видео в плейлисте.
  • %(title)s.%(ext)s : будем сохранять видео с его названием.
  • --write-comments : будем сохранять всю дополнительную информацию в отдельный файл формата json.
  • --match-filter "uploader = 'Dmitry Kulyabov'" : будем скачивать только те видео, который загрузили мы сами.
  1. Итоговый скрипт

    • Итоговый скрипт будет иметь следующий вид:
      1yt-dlp -o "%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "https://www.youtube.com/user/<youtube user name>/playlists" --write-comments --match-filter "uploader = 'Dmitry Kulyabov'"
      

4 Конфигурационный файл

  • Конфигурационный файл служит для заданий опций по умолчанию.

  • Конфигурационный файл:

    1~/.config/yt-dlp/config
    
  • Пример содержания конфигурационого файла:

    1## Ignore errors
    2--ignore-errors
    3
    4## Save in ~/Videos
    5-o ~/Videos/%(title)s.%(ext)s
    6
    7## Prefer 1080p or lower resolutions, FPS < 60 Hz
    8-f bestvideo[ext=mp4][height<1200][fps<60]+bestaudio[ext=m4a]/bestvideo[height<1200][fps<60]+bestaudio/best[height<1200][fps<60]/best
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие