Используйте скрипт bash с yt-download и ffmpeg, чтобы извлечь или скрыть в зависимости от формата - PullRequest
0 голосов
/ 07 июня 2018

У меня есть группа файлов, которые я загрузил на YouTube, и теперь я хочу сделать резервную копию на моем MacBook.Когда я загружаю и извлекаю аудио, я получаю либо * .m4a, либо *.opus:

#!/bin/sh
ID="$1"

youtube-dl -f bestaudio -x -i --audio-format best -o '%(playlist)s/%(playlist_index)s %(uploader)s - %(title)s.%(ext)s' https://www.youtube.com/playlist?list="$ID"

Когда расширение файла m4a, мне нужно оставить его таким, и не выполнять преобразование, когда расширение opus, мне нужно преобразовать его в m4a.

Если я хочу преобразовать каждый файл, я могу сделать что-то вроде этого:

youtube-dl -f bestaudio -x -i --audio-format m4a -o '%(playlist)s/%(playlist_index)s %(uploader)s - %(title)s.%(ext)s' https://www.youtube.com/playlist?list="$ID"

Но тогда преобразование выполняется независимо от того, что.

Как я могу извлечь и преобразовать только когда файлрасширение не m4a?

1 Ответ

0 голосов
/ 07 июня 2018

Файлы m4a, которые обслуживает YouTube, часто содержат неправильные / необычные заголовки и поэтому были переписаны youtube-dl.Если все ваше программное обеспечение может работать с этими файлами, просто добавьте параметр youtube-dl

--fixup never

Пока вы загружаете плейлист YouTube по идентификатору, вы можете просто передать идентификатор плейлиста.на YouTube-дл.Поэтому

youtube-dl (...) https://www.youtube.com/playlist?list="$ID"

лучше записать как

youtube-dl (...) "$ID"

, что позволяет загружать Dailymotion, soundcloud и другие плейлисты, включая все плейлисты в профиле YouTube (например, youtube-dl https://www.youtube.com/user/ThirstForScience/playlists).

...