Я хочу загрузить все (подзаголовки, карты, теги, аннотации, миниатюры, и т.д. (и очевидно видео w/аудио)) от видео YouTube (например, этот).
Я использую youtube-dl
и, с подавляющей суммой переключателей для использования я, может казаться, не нахожу, что что-либо соответствует моим потребностям. Я также хочу загрузить видео/аудио в возможном высшем качестве без качественной потери. Даже при том, что это не YouTube, я действительно также хотел загрузить некоторые свои udemy курсы, которые я купил так, я могу наблюдать их, в то время как я нахожусь на прохождении дальней дороги.
Я имею ffmpeg
установленный, и я слышал, что Вам нужно это для загрузок без потерь с YouTube, но я не уверен, как связать его с youtube-dl
.
Это - мой первый раз с помощью youtube-dl
, таким образом, любая справка ценится.
Соответствующие опции Вам нужно:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
Копия это к Вашему файлу конфигурации (также /etc/youtube-dl.conf
или ~/.config/youtube-dl/config
).
Используя ту конфигурацию, я загрузил это видео и youtube-dl
записал следующие файлы:
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
Я не могу отправить mediainfo
вывод здесь, потому что это превышает предел символов, но Вы видите его в GitHub.
Я также хочу загрузить видео/аудио в возможном высшем качестве без качественной потери.
youtube-dl
видео загрузок в высшем качестве, возможном по умолчанию, но можно вызвать это использование поведения --format bestvideo+bestaudio/best
.
Даже при том, что это не YouTube, я действительно также хотел загрузить некоторые свои udemy курсы, которые я купил так, я могу наблюдать их, в то время как я нахожусь на прохождении дальней дороги.
Прочитайте статью Can I Download a Course в мой Компьютер?:
По умолчанию полные курсы не загружаемы от компьютера. Мы делаем это из опасений за пиратство.
Обратите внимание на то, что можно всегда сохранять курсы для офлайнового просмотра на мобильном приложении Udemy. Для получения информации о том, как загрузить видео лекции на Ваше мобильное устройство iOS, щелкните здесь. Для шагов о том, как загрузить видео для офлайнового просмотра на устройстве на базе Android, щелкнуть здесь.
Я имею
ffmpeg
установленный, и я слышал, что Вам нужно это для загрузок без потерь с YouTube, но я не уверен, как связать его сyoutube-dl
.
youtube-dl
использование avconv
по умолчанию, но --prefer-ffmpeg
позвольте Вам использовать ffmpeg
вместо этого. Так или иначе эта опция не нужна для "загрузок без потерь". В примере я, если, youtube-dl
только используемый ffmpeg
объединить все загруженные форматы в единственный mkv файл.
Для простой загрузки видео можно использовать это:
youtube-dl --all-subs "https://www.youtube.com/watch?v=KYBok-XGsKM"
Для выбора качества видео необходимо сначала использовать-F опцию перечислить доступные форматы.
youtube-dl -F "https://www.youtube.com/watch?v=KYBok-XGsKM"
И это - вывод для Вашего видео:
[youtube] KYBok-XGsKM: Downloading webpage
[youtube] KYBok-XGsKM: Downloading video info webpage
[youtube] KYBok-XGsKM: Extracting video information
WARNING: unable to extract uploader nickname
[info] Available formats for KYBok-XGsKM:
format code extension resolution note
249 webm audio only DASH audio 52k , opus @ 50k, 4.19MiB
250 webm audio only DASH audio 75k , opus @ 70k, 5.42MiB
140 m4a audio only DASH audio 129k , m4a_dash container, mp4a.40.2@128k, 10.59MiB
171 webm audio only DASH audio 131k , vorbis@128k, 7.66MiB
251 webm audio only DASH audio 135k , opus @160k, 9.58MiB
278 webm 256x144 144p 98k , webm container, vp9, 30fps, video only, 6.59MiB
160 mp4 256x144 144p 114k , avc1.4d400c, 15fps, video only, 9.04MiB
242 webm 426x240 240p 205k , vp9, 30fps, video only, 11.47MiB
133 mp4 426x240 240p 265k , avc1.4d4015, 30fps, video only, 20.11MiB
243 webm 640x360 360p 362k , vp9, 30fps, video only, 21.93MiB
134 mp4 640x360 360p 602k , avc1.4d401e, 30fps, video only, 20.42MiB
244 webm 854x480 480p 662k , vp9, 30fps, video only, 37.82MiB
135 mp4 854x480 480p 1020k , avc1.4d401f, 30fps, video only, 42.62MiB
247 webm 1280x720 720p 1353k , vp9, 30fps, video only, 81.53MiB
136 mp4 1280x720 720p 2013k , avc1.4d401f, 30fps, video only, 84.69MiB
137 mp4 1920x1080 1080p 2438k , avc1.640028, 30fps, video only, 157.71MiB
248 webm 1920x1080 1080p 2593k , vp9, 30fps, video only, 162.48MiB
264 mp4 2560x1440 1440p 6973k , avc1.640032, 30fps, video only, 459.58MiB
271 webm 2560x1440 1440p 7523k , vp9, 30fps, video only, 485.66MiB
313 webm 3840x2160 2160p 19991k , vp9, 30fps, video only, 1.34GiB
36 3gp 320x? small , mp4v.20.3, mp4a.40.2
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
Вот некоторые полезные опции для подзаголовков:
--write-sub
Write subtitle file
--write-auto-sub
Write automatically generated subtitle file (YouTube only)
--all-subs
Download all the available subtitles of the video
--list-subs
List all available subtitles for the video
И для миниатюр:
--write-thumbnail
Write thumbnail image to disk
--write-all-thumbnails
Write all thumbnail image formats to disk
--list-thumbnails
Simulate and list all available thumbnail formats
Можно также найти больше информации о качестве видео здесь
Примечание: Я буду использовать более длинные имена переключателя для предотвращения беспорядка. Многие используемые переключатели имеют более короткие версии. См. Документы: Опции.
Примечание: - для визуального удобства \
используется для отображения переключателей отдельно; все \
может быть опущен; при использовании \
удостоверьтесь, что после нет никакого пробела \
.
Резюме: ytdl управляет для загрузки единственного видеофайла самого высокого доступного качества видео и качества звука. Сохраняет видео в его собственный каталог (указанный Вами). Загружают все доступные метаданные, пишет каждый в соответствующие форматы файлов и сохраняет в том же каталоге. Добавляют метаданные видео к файлу видеовыхода.
Замена с Вашим собственным:
/archive/videos/TED_Archive/
в переключателях --download-archive
и --output
с путем к каталогу по Вашему выбору.====
youtube-dl \
--limit-rate '0.25M' \
--retries '3' \
--no-overwrites \
--call-home \
--write-info-json \
--write-description \
--write-thumbnail \
--all-subs \
--convert-subs 'srt' \
--write-annotations \
--add-metadata \
--embed-subs \
--download-archive '/archive/videos/TED_Archive/TED_Archive.ytdlarchive' \
--format 'bestvideo+bestaudio/best' \
--merge-output-format 'mkv' \
--output '/archive/videos/TED_Archive/%(upload_date)s_%(id)s/TED_Archive_%(upload_date)s_%(id)s_%(title)s.%(ext)s' \
'https://www.youtube.com/watch?v=0bFs6ZiynSU' ;
Примечание: Включите все споры с ' '
для парсинга безопасности.
Объяснение рекомендуемых переключателей:
--limit-rate '0.25M'
используется для ограничения доступной максимальной скорости загрузки каждого экземпляра youtube-dl в байт/с (байты в секунду).
Аргументы: любое положительное целое число с капитализированным суффиксом единицы.
Суффиксы единицы: K для Килобайта; M для Мегабайта; Неясный, если Гигабайт поддерживается.
Дополнение:
1. избегайте блокировки интернет-соединения.
2. полезный при управлении скоростями загрузки нескольких параллельных ytdl экземпляров.
Ommission:
1. помехи Интернет; не мог просмотреть, изолируя игру видео YouTube.
2. загрузит видео максимально быстро.
Примечание: Можно выполнить несколько экземпляров youtube-dl одновременно.
--retries '5'
используется для автоповторения загрузки видео, если она перестала работать. Полезный при загрузке плей-листа или всего канала (который является, в условиях YouTube, также плей-листе (того определенного канала)).
Значения: Выберите любое положительное целое число. Значение по умолчанию 10
. Max infinite
(войдите как литеральная строка).
--continue
Аргументы:ничего
Дополнение:
1. вызовет резюме downalod частичных файлов
Примечание: ytdl загружает видео в блоках; блоки сохраняются, если ytdl неожиданно завершается во время загрузки.
Ommission:
1. По умолчанию ytdl возобновит загрузки, если это возможно.
--no-overwrites
Аргументы:ничего
Дополнение: не перезапишет существующие файлы метаданных с теми же именами.
Ommission: перезапишет существующие файлы метаданных с теми же именами, но не видеофайл.
--call-home
используемый для контакта с ytdl сервером для отладки. "Если Ваш сервер имеет несколько дюйм/с, или Вы подозреваете цензуру, добавляя - дом вызова может быть хорошей идеей получить больше диагностики". – Документы: Ошибки, полученные 20180408,
--write-info-json
Аргументы:ничего
Выходной формат: json;
Информационное Содержание: просмотрите количество, любит, дата загрузки, качество видео и информация о качестве звука, и т.д. (но не видео текстовое описание (отправленный ниже видео загрузчиком (расположение YouTube 2018 года)))
Дополнение: вписывает в метаданные видео отдельное .info.json
файл. Сохраненный в той же папке как видеофайл.
Ommission: не влияет --add-metadata
который все еще запишет метаданные видео в файл видеовыхода.
--write-description
Аргументы:ничего
Выходной формат: простой текст;
Дополнение: текст записей, отправленный видео загрузчиком в разделе описания видео (ниже видео (расположение YouTube 2018 года)) в отдельное Write .description
файл. Сохраненный в той же папке как видеофайл.
--write-thumbnail
записи доступная миниатюра с самым высоким разрешением (названный maxresdefault.jpg
YouTube) к .jpg
файл. Переименованный согласно шаблону, указанному с --output
. Сохраненный в том же каталоге как видеофайл.
Аргументы:ничего
Выходной формат: только JPEG;
Примечание: Использовать youtube-dl --list-thumbnails '<video_url>'
исследовать доступные миниатюры определенного видео (не работает над ссылками плей-листа);напр.: youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--write-annotations
аннотации видео записей к .annotations.xml
файл. Переименованный согласно шаблону, указанному с --output
. Сохраненный в том же каталоге как видеофайл.
Аргументы:ничего
Выходной формат: .xml;
--all-subs
записи все пользовательские созданные доступные подзаголовки для видео в их соответствующие файлы (напр.: subtitles.en.vtt
, subtitles.fr.vtt
, subtitles.es.vtt
)
Аргументы:ничего
Выходной формат: значение по умолчанию .vtt
; может указать другие форматы с --sub-format
Сообщения об ошибках: Если не будет никаких подзаголовков, доступных, то Предупреждающее сообщение будет распечатано к stdout - формат: WARNING: video doesn't have subtitles
Примечание: Использовать youtube-dl --list-subs '<video_url>'
исследовать доступные миниатюры определенного видео (не работает над ссылками плей-листа);
Напр.: youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--convert-subs 'srt'
Аргументы: Строка: задница расширения формата, srt или лучше всего
Выходной формат: Значение по умолчанию .vtt; или согласно спецификации
Дополнение: подзаголовки записей к указанному формату файла (напр.: .srt
). Сохраненный в той же папке как видеофайл.
Ommission: подзаголовки будут записаны как .vtt
Сообщения об ошибках: Если не будет никаких подзаголовков, доступных, то ИНФОРМАЦИОННОЕ сообщение будет распечатано к stdout - формат: [ffmpeg] There aren't any subtitles to convert
Примечание: преобразование будет выполняться как выполняющий последующую обработку шаг на .vtt
файл после загрузки. Если ytdl выполнение неожиданно завершается, некоторые файлы подзаголовка не могли бы быть преобразованы (в этом случае выполняют команду снова).
--add-metadata
Аргументы:ничего
Поведение: метаданные записей в файл видеовыхода.
Примечание: не требует a .info.json
сгенерированный --write-info-json
--embed-subs
Аргументы:ничего
Поведение:
1. подзаголовки записей в файл видеовыхода;
2. только для mp4, webm и mkv видео
Сообщения об ошибках: Если не будет никаких подзаголовков, доступных, то ИНФОРМАЦИОННОЕ сообщение будет распечатано к stdout - формат: [ffmpeg] There aren't any subtitles to embed
Примечание: не требует a .vtt
сгенерированный --write-sub
, --write-auto-sub
или --all-sub
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
Поведение: используется для создания текстового файла, содержащего ссылки ранее загруженных видео. Позволяет пропускать эти видео при загрузке всего канала. Не необходимый при загрузке единственных видео только.
Аргументы: Строка: составной объект пути к Вашему архиву видеоданных, каталог, названный в честь канала. Имя файла состоит из названия канала с .ytdlarchive
расширение файла. (мог также быть .txt; но уникальный формат допускает легкое дифференцирование),
Выходной формат: простой текст; один videoID на строку
Дополнение:
1. ytdl читает этот файл, игнорирует и пропускает все видео, перечисленные с их videoID в нем, даже если не загруженный все же.
2. автоматически добавляет videoID последнего загруженного видео в этот файл
Ommission: если видеофайл и файлы метаданных будут существовать, то ytdl загрузит их снова.
--format ''
Аргументы: рекомендуемая строка: bestvideo+bestaudio/best
гарантировать самую высокую комбинацию качества видео и качества звука.
Дополнение: полный контроль над качеством видео и качеством звука и их комбинациями, а также качествами нейтрализации
Ommission: значение по умолчанию youtube-dl will guess it for you by default
– Документы
Примечание: См. документы: примеры выбора формата
--merge-output-format '<video_format>'
Аргументы: формат видеофайла. (напр.: mp4, mkv, 3gp, и т.д.)
Дополнение: может указать формат видеофайла
Ommission: значение по умолчанию youtube-dl will guess it for you by default
– Документы
Примечание: См. документы: выбор формата
Примечание: Использовать youtube-dl --list-formats '<video_url>'
исследовать доступные видео и аудио качества и форматы определенного видео (не работает над ссылками плей-листа);
Напр.: youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
Аргументы:
1. формат видеофайла. (напр.: mp4, mkv, 3gp, и т.д.);
2.Рекомендуется: %(upload_date)s_%(id)s_%(title)s.%(ext)s
Дополнение: соглашение о присвоении имен файла влияний для видеофайлов и всех файлов метаданных
Ommission: По умолчанию видео заголовок будет именем файла. Шаблон по умолчанию: %(id)s.%(ext)s
произведет напр.: testvideo.mkv
Примечание: Не забывайте %
префикс и s
суффикс (другой достаточен, существует также.); Тебя _
между шаблоном элементы просто разделитель и может быть любой другой символ.напр.: %(upload_date)s-%(id)s
Примечание: См. документы: выходной шаблон
'<video_url>'
Аргументы: Строка: URL к определенному видео
Сообщение об ошибке:
1. Если никакой видео URL отправленный ytdl не выполнит и отобразит справку.
2. Если недопустимый видео URL утверждал, что сообщение об ошибке будет распечатано к stdout - формат: ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
Рекомендации устройства хранения данных:
сделайте a misc
каталог в Вашем архиве видеоданных и хранилище все единственные видео там.
когда Вы загружаете одно или несколько видео с канала, делают специализированный каталог для того канала. В этом случае название канала TED Archive
и имя каталога будет TED_Archive
. (Я заблаговременно заменяю всеми пробелами с символами нижнего подчеркивания для более легких действий навигации и файлового ввода-вывода каталога при использовании удара (или Python) сценарии).
Ответ на комментарий @leetbacoon
И просто удивление, почему копию на 1 080 пунктов считают лучшим, если 1 440 пунктов доступно? И почему 2 160 пунктов отображены? Та опция не появляется на моем конце (это ограничения в 1 440 пунктах) – leetbacoon
Из документов
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
Я думаю, когда Вы выбираете просто best
и Вы указываете выходной формат, который YouTube отправляет формату, он думает, лучшая video+audio комбинация для того формата. Это могло бы подвергнуться некоторому YouTube внутренние решения балансировки (предположение).
В моем опыте использования я должен был конкретно указать bestvideo+bestaudio
получить Высшее качество, доступное из видео и аудио соответственно и затем объединить их в .mkv контейнере.
Я использую /best
как аргумент нейтрализации только, чтобы быть уверенным.