Закачка с youtube
2022-03-09
·
2 мин. для прочтения
Возникла задача скопировать видео с Youtube. Основная часть содержимого — это мои видеозаписи для преподавания.
Для этой задачи я использовал yt-dlp.
Содержание
1 Общая информация
- Репозиторий: https://github.com/yt-dlp/yt-dlp
- Является продвинутым форком youtube-dl.
2 Установка
2.1 Linux
- Gentoo- Установка yt-dlp:emerge net-misc/yt-dlp
- Установка в режиме совместимости с youtube-dl:USE=yt-dlp emerge net-misc/youtube-dl
 
- Установка 
2.2 Windows
- C использованием Пакетный менеджер для Windows. Chocolateychoco install yt-dlp
3 Примеры использования
3.1 Скачивание видео с Youtube
- Просто указывается линк на скачиваемое видео:yt-dlp <url>
- Загрузите лучшее видео с лучшим кодеком, но не лучше, чем h264; разрешение не выше, чем 1080 строк:yt-dlp -S "codec:h264,height:1080" <url>
3.2 Скачать только аудио-дорожку
- Опция -xиспользуется для загрузки только аудио (требуется FFmpeg):youtube-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'": будем скачивать только те видео, который загрузили мы сами.
- Итоговый скрипт - Итоговый скрипт будет иметь следующий вид:yt-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 Конфигурационный файл
- Конфигурационный файл служит для заданий опций по умолчанию. 
- Конфигурационный файл: - ~/.config/yt-dlp/config
- Пример содержания конфигурационого файла: - ## Ignore errors --ignore-errors ## Save in ~/Videos -o ~/Videos/%(title)s.%(ext)s ## Prefer 1080p or lower resolutions, FPS < 60 Hz -f bestvideo[ext=mp4][height<1200][fps<60]+bestaudio[ext=m4a]/bestvideo[height<1200][fps<60]+bestaudio/best[height<1200][fps<60]/best
