Закачка с youtube
Возникла задача скопировать видео с 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. Chocolatey
choco 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