Media
December 15, 2021

Изъять звук из видео и преобразовать в файл

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

Причем если это будет плейлист, то этой командой скачивается весь контент