Загрузите все с видео YouTube использование youtube-dl

Я хочу загрузить все (подзаголовки, карты, теги, аннотации, миниатюры, и т.д. (и очевидно видео w/аудио)) от видео YouTube (например, этот).

Я использую youtube-dl и, с подавляющей суммой переключателей для использования я, может казаться, не нахожу, что что-либо соответствует моим потребностям. Я также хочу загрузить видео/аудио в возможном высшем качестве без качественной потери. Даже при том, что это не YouTube, я действительно также хотел загрузить некоторые свои udemy курсы, которые я купил так, я могу наблюдать их, в то время как я нахожусь на прохождении дальней дороги.

Я имею ffmpeg установленный, и я слышал, что Вам нужно это для загрузок без потерь с YouTube, но я не уверен, как связать его с youtube-dl.

Это - мой первый раз с помощью youtube-dl, таким образом, любая справка ценится.

15
задан 12 January 2019 в 21:15

3 ответа

Соответствующие опции Вам нужно:

# 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 файл.

14
ответ дан 23 November 2019 в 02:45

Для простой загрузки видео можно использовать это:

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

Можно также найти больше информации о качестве видео здесь

6
ответ дан 23 November 2019 в 02:45

@leetbacoon видят ответ комментария в очень нижней части. (низкий представитель все еще sry)

Примечание: Я буду использовать более длинные имена переключателя для предотвращения беспорядка. Многие используемые переключатели имеют более короткие версии. См. Документы: Опции.

Примечание: - для визуального удобства \ используется для отображения переключателей отдельно; все \ может быть опущен; при использовании \ удостоверьтесь, что после нет никакого пробела \.


Резюме: ytdl управляет для загрузки единственного видеофайла самого высокого доступного качества видео и качества звука. Сохраняет видео в его собственный каталог (указанный Вами). Загружают все доступные метаданные, пишет каждый в соответствующие форматы файлов и сохраняет в том же каталоге. Добавляют метаданные видео к файлу видеовыхода.

Замена с Вашим собственным:

  • замена /archive/videos/TED_Archive/ в переключателях --download-archive и --output с путем к каталогу по Вашему выбору.
  • путь хранения в качестве примера/archive/videos
  • видеосвязь в качестве примера: https://www.youtube.com/watch? v=0bFs6ZiynSU
  • каталог канала в качестве примера/TED_Archive

====

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


Рекомендации устройства хранения данных:

  1. сделайте a misc каталог в Вашем архиве видеоданных и хранилище все единственные видео там.

  2. когда Вы загружаете одно или несколько видео с канала, делают специализированный каталог для того канала. В этом случае название канала 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 как аргумент нейтрализации только, чтобы быть уверенным.


3
ответ дан 23 November 2019 в 02:45

Другие вопросы по тегам:

Похожие вопросы: