Перейти к содержимому

yt-dlp в MP3: правильная команда, настройки качества и метаданные

Автор Команда TunelioОпубликовано

Достаточно одной строки: yt-dlp -x --audio-format mp3 --audio-quality 0 URL. yt-dlp скачивает лучший аудиопоток YouTube (обычно Opus или AAC), а ffmpeg конвертирует его в VBR MP3. Ниже: что значат флаги, как выбрать битрейт, встроить обложку и теги, работать с плейлистами и когда в MP3 конвертировать вообще не стоит.

Команда

yt-dlp -x --audio-format mp3 --audio-quality 0 "https://youtu.be/dQw4w9WgXcQ"
  • -x (--extract-audio): скачать только аудиопоток и запустить аудио-постпроцессор.
  • --audio-format mp3: перекодировать результат в MP3 через ffmpeg (обязателен — см. ниже).
  • --audio-quality 0: лучшее качество VBR (0 = лучшее, 10 = худшее, или фиксированный битрейт вроде 192K).

Нужен ffmpeg в PATH или через --ffmpeg-location; без него yt-dlp пишет «ffmpeg not found» и сохраняет исходный .webm/.m4a вместо MP3. Установка описана в руководстве по ffmpeg.

Битрейт: что выбрать

--audio-quality 0        # VBR ~220–260 кбит/с, лучшее качество (рекомендуется)
--audio-quality 5        # VBR ~120–150 кбит/с, маленькие файлы
--audio-quality 192K     # постоянные 192 кбит/с для плееров, не любящих VBR

Исходное аудио YouTube — максимум около 128 кбит/с AAC или ~160 кбит/с Opus. MP3 не добавит качества, которого не было, поэтому 320K в основном увеличивает размер; VBR 0 сохраняет всё, что есть в источнике. Любая конвертация в MP3 — транскодирование lossy-в-lossy: если MP3 не нужен именно как формат, оставьте оригинал (следующий раздел).

А нужен ли вам MP3?

yt-dlp -x --audio-format best "URL"     # оставить исходный Opus (.webm/.opus) или AAC (.m4a) — без транскодирования
yt-dlp -x --audio-format m4a "URL"      # AAC в .m4a: играет на устройствах Apple и большинстве плееров

MP3 — правильный выбор для старых автомагнитол, некоторых подкаст-приложений и всего, что понимает только MP3. Для телефонов, браузеров и современных плееров исходный Opus или AAC меньше и звучит лучше. Подробнее — в руководстве webm vs mp3.

Обложка, название, исполнитель

yt-dlp -x --audio-format mp3 --audio-quality 0 \
  --embed-thumbnail --embed-metadata \
  --parse-metadata "title:%(artist)s - %(title)s" \
  "URL"

--embed-thumbnail записывает превью видео как обложку ID3 (yt-dlp сам конвертирует WebP в JPEG). --embed-metadata заполняет теги: название, автор, дата, описание. Строка --parse-metadata разбивает имена вида «Исполнитель - Название» на поля artist и title, если автор использовал эту конвенцию.

Имена файлов и папки

yt-dlp -x --audio-format mp3 -o "~/Music/%(uploader)s/%(title)s.%(ext)s" "URL"
# плейлист: нумерованные файлы в папке с именем плейлиста
yt-dlp -x --audio-format mp3 -o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" "PLAYLIST_URL"

Используйте %(ext)s, а не жёсткое .mp3: yt-dlp сначала скачивает с исходным расширением и переименовывает после конвертации. --restrict-filenames заменяет пробелы и спецсимволы, если плеер капризный.

Плейлисты и каналы

yt-dlp -x --audio-format mp3 --audio-quality 0 \
  --download-archive done.txt --ignore-errors \
  --sleep-interval 2 --max-sleep-interval 6 \
  "https://www.youtube.com/playlist?list=PL..."

--download-archive запоминает готовые видео, чтобы повторные запуски брали только новые; --ignore-errors пропускает удалённые или приватные элементы вместо прерывания; флаги sleep держат массовые запуски в пределах лимитов YouTube — что бывает без них, описано в руководстве по бот-проверке.

Сохраните как конфиг

# ~/.config/yt-dlp/config  (Windows: %APPDATA%\yt-dlp\config.txt)
-x
--audio-format mp3
--audio-quality 0
--embed-thumbnail
--embed-metadata
-o ~/Music/%(title)s.%(ext)s

С таким конфигом достаточно yt-dlp URL. Для разовой загрузки видео используйте --ignore-config.

Частые проблемы

  • На выходе .webm или .m4a вместо .mp3 → нет ffmpeg; установите или передайте --ffmpeg-location.
  • «Postprocessing: Conversion failed!» → повреждённая частичная загрузка или очень старый ffmpeg; удалите .part, обновите оба инструмента, повторите.
  • Нет обложки → --embed-thumbnail требует ffmpeg и для части файлов Python-пакет mutagen (входит в официальные бинарники и yt-dlp[default]).
  • Медленные загрузки, 403, бот-проверка → это не проблема MP3; обновите yt-dlp и пройдите руководства по 403 и бот-проверке.
  • Не та дорожка на многоязычных видео → выберите через -f 'ba[language=ru]' или посмотрите список дорожек в yt-dlp -F.

MP3 через API

Если MP3 — функция вашего бота или приложения, а не личная загрузка, описанный пайплайн (yt-dlp плюс ffmpeg плюс чистый IP) становится инфраструктурой, которую нужно запускать и патчить. Хостинговый API возвращает готовую ссылку на MP3 одним запросом:

curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=mp3" \
  -H "Authorization: Bearer tnl_your_api_key"
# → { "url": "https://…/tunnel?id=…&sig=…", "file_size_str": "3.29 MB", "status": "ok" }

Tunelio — наш сервис; для личного использования достаточно команды в начале страницы. Новые аккаунты получают 100 бесплатных кредитов, карта не нужна.

Источники

  • README yt-dlp — опции постобработки (-x, --audio-format, --audio-quality, --embed-*), шаблон вывода.
  • README yt-dlp — выбор и сортировка форматов (-f, -S).
  • Документация ffmpeg — шкала качества VBR libmp3lame.

Частые вопросы

--audio-quality 0 — это 320 кбит/с?

Нет. 0 — лучшая настройка VBR (примерно 220–260 кбит/с в зависимости от материала). Источник YouTube всё равно ~128–160 кбит/с, так что 320K только увеличивает файлы.

Почему получился .webm, а не .mp3?

ffmpeg не установлен или не в PATH, и yt-dlp оставил исходный аудиоконтейнер. Установите ffmpeg или передайте --ffmpeg-location.

Можно скачать весь плейлист в MP3?

Да: дайте yt-dlp ссылку на плейлист и добавьте --download-archive и --ignore-errors, чтобы повторные запуски были инкрементальными, а битые элементы не останавливали пакет.

Теряется ли качество при конвертации в MP3?

Немного — это второе lossy-кодирование поверх Opus/AAC YouTube. Используйте --audio-format best, чтобы оставить оригинал, если плеер его поддерживает.

Похожие руководства