Изъять звук из видео и преобразовать в файл
Мы уже ранее поговорили о возможности скачивания видео с ю-туба, и при этом сразу заметили, что можно скачивать только аудио дорожку не скачивая сам видео-трек, используя скачивание через указания формата, где полностью отсутствует видео-трек. Одним из таких форматов на ю-туб это 140. Этот формат хранения удобен тем, что его аудио-трек ближе всего к "лучшему формату", и имеет контейнер mp4, тот же что и видео-трек, и выдает аудио-трек в формате m4a файла. В качестве источника мы возьмем тестовую загрузку аудио-книги
$ yt-dlp -f 140 https://youtu.be/-f8zINCwGDM
И в результате мы получим аудио-трек Красный сфинкс-4 - Александр Дюма отец [-f8zINCwGDM].m4a в следующем выхлопе
[youtube] -f8zINCwGDM: Downloading webpage [youtube] -f8zINCwGDM: Downloading android player API JSON [youtube] -f8zINCwGDM: Downloading MPD manifest [youtube] -f8zINCwGDM: Downloading MPD manifest [info] -f8zINCwGDM: Downloading 1 format(s): 140 [download] Destination: Красный сфинкс-4 - Александр Дюма отец [-f8zINCwGDM].m4a [download] 100% of 213.82MiB in 02:49 [FixupM4a] Correcting container of "Красный сфинкс-4 - Александр Дюма отец [-f8zINCwGDM].m4a"
Структура имени выходного файла содержит кроме самого имени фрагмента, так же и идентификатор контента на ю-тубе. В принципе это не имеет значения, но мы попытаемся изменить имя выходного файла, чтобы показать еще одну опцию утилиты.
Имя выходного файла можно задать указав напрямую имя файла используя опцию -o с параметром {имя файла}. Вместо явного имени файла можно задать строку синтеза имени через шаблон. И тогда имя файла будет выдано из внутренней структуры скаченного файла , выбирая необходимые его поля. По умолчанию шаблон имеет вид '%(title)s [%(id)s].%(ext)s'. Изменим шаблон, чтобы был вывод только имени и расширение ИТОГО
$ yt-dlp -f 140 -o '%(title)s.%(ext)s' https://youtu.be/-f8zINCwGDM
И в результате мы имеем аудио-трек с именем из структуры сервера хранения и расширением по формату 140 в контейнере mp4, и с расширением m4a.
Итого Красный сфинкс-4 - Александр Дюма отец.m4a
Такая структура имени файла пригодится нам в будущем, когда мы перейдем к 3п. алгоритма
Причем если это будет плейлист, то этой командой скачивается весь контент