Программирование

Как скачать запись Zoom со второй аудиодорожкой — инструкция

Пошагово: как скачать запись Zoom с отдельной второй аудиодорожкой (интерпретация) через веб или API, извлечь/объединить через FFmpeg; обходы для yt-dlp и OBS.

Как скачать запись Zoom (zoom.us) со второй аудиодорожкой, отличной от дорожки по умолчанию?

Есть запись конференции на zoom.us с двумя аудиодорожками — переключение на вторую в веб‑плеере выполняется вручную через значок «глобус» в правом нижнем углу. Нужно скачать видео именно со второй аудиодорожкой или хотя бы извлечь эту дорожку отдельно. yt-dlp скачивает только дорожку по умолчанию и, похоже, не «видит» вторую (пробовал разные флаги/параметры — безрезультатно).

Какие есть рабочие методы для решения этой задачи:

  1. скачать весь файл сразу с выбранной второй аудиодорожкой;
  2. извлечь вторую аудиодорожку отдельно.

Существуют ли параметры yt-dlp/ffmpeg, другие инструменты или возможности через API/прямой доступ к файлам Zoom, которые позволяют выбрать и скачать не‑по‑умолчанию аудиодорожку? Или единственный практический вариант — вручную переключить дорожку в плеере и записать экран (например, через OBS)?

Можно скачать запись Zoom со второй аудиодорожкой — но при условии, что встреча была записана в облако и включена функция Language Interpretation: в облачной записи Zoom сохраняет отдельные файлы типа audio-original.m4a и audio-.m4a, которые можно скачать через веб‑портал или API и затем смержить с видео через FFmpeg. YT‑DLP чаще всего видит только дорожку по умолчанию, поэтому лучший рабочий способ — загрузить нужный audio-.m4a (веб/API) и объединить его с видео локально; если облака нет — остаётся записать воспроизведение (OBS) как запасной вариант.


Содержание


Проверка: включена ли интерпретация и запись в облако

Прежде чем пытаться что‑то скачивать — проверьте две вещи: была ли включена функция Language Interpretation в настройках встречи и записывалась ли встреча в облако (Cloud Recording). Если интерпретация включена и запись шла в облако, Zoom обычно сохраняет отдельные аудиофайлы для оригинала и для каждого языка интерпретации; в веб‑плеере переключение производится через значок «глобус» в правом нижнем углу при воспроизведении записи (официально). Подтверждение обновления поведения (Zoom сохраняет языковые каналы в облаке) есть и в обсуждениях сообщества и в пользовательских видео-обзорах см. пример.

Короткая проверка:

  • Войдите в Zoom → Recordings → найдите нужную запись.
  • Откройте страницу записи: под «Recording Files» должны быть перечислены video (.mp4) и отдельно audio-original.m4a, audio-.m4a (для каждого языка). Это означает — в облаке сохранены отдельные дорожки и их можно скачать.

Если таких отдельных audio-.m4a нет — скорее всего запись была локальной или интерпретация не была включена, и тогда второй канал просто не сохранён.


1) Скачать запись Zoom с выбранной аудиодорожкой — веб‑интерфейс

Самый надёжный и простой сценарий — скачать нужные файлы через веб‑портал Zoom.

Шаги:

  1. Войдите в Zoom на https://zoom.us/signin и откройте раздел Recordings (или перейдите по ссылке записи, если владелец дал публичный доступ).
  2. Откройте нужную запись — в блоке Recording Files увидите список файлов: обычно это video‑mp4, audio‑original.m4a и audio‑.m4a.
  3. Нажмите Download рядом с нужным audio‑.m4a и с основным video.mp4.

Примечания:

  • Файлы доступны только владельцу записи/хосту или тем, кому выдан доступ; публичные ссылки могут иметь срок действия. Детали по скачиванию — в обсуждении сообщества и описании форматов файлов (пример шагов).
  • Zoom, как правило, не даёт отдельного готового MP4 «с уже подменённой» дорожкой — он сохраняет отдельные файлы и даёт веб‑плееру переключать их при воспроизведении. Потому чтобы получить единый MP4 с выбранной второй дорожкой, нужно сделать локальный merge (ниже — команды FFmpeg).

1b) Скачать через API Zoom (прямой доступ к audio-.m4a)

Если вы администратор/владелец записи или имеете API‑доступ — можно получить прямые ссылку(и) на файлы через Zoom API.

Как:

  1. Получите OAuth/JWT токен для аккаунта (см. доки Zoom Developer).
  2. Вызов API:
    GET https://api.zoom.us/v2/meetings/{meetingId}/recordings
    В JSON‑ответе ищите массив recording_files — в нём будут объекты с полями file_type / download_url / file_name. Объект для интерпретации обычно имеет имя вроде audio‑.m4a или file_type = “audio”. Это описано в практиках сообщества (пример запроса/ответа).
  3. Пример извлечения ссылок (curl + jq):
bash
curl -s -H "Authorization: Bearer $TOKEN" \
 "https://api.zoom.us/v2/meetings/$MEETING_ID/recordings" \
 | jq -r '.recording_files[] | select(.file_type=="audio") | .download_url'
  1. Скачайте нужный файл (иногда требуется тот же заголовок авторизации; иногда download_url уже подписан):
bash
curl -L -o audio-es.m4a "PASTED_DOWNLOAD_URL"
# или, если требуется токен в заголовке:
curl -L -H "Authorization: Bearer $TOKEN" -o audio-es.m4a "PASTED_DOWNLOAD_URL"

Важно: права доступа и срок действия ссылок — частая причина проблем. Если запрос выдаёт 401/403, проверьте токен и права аккаунта.


2) Извлечь вторую аудиодорожку отдельно (FFmpeg / ffprobe)

Вариант A — файл уже отдельный: если вы скачали audio-.m4a — это и есть вторая дорожка, ничего дополнительно извлекать не нужно.

Вариант B — аудиодорожка встроена в MP4 (реже, но бывает). Проверяем и извлекаем:

  1. Посмотреть список потоков:
bash
ffprobe -v error -show_streams video.mp4

Вы увидите номера потоков audio: 0:1, 0:2 и т.п.

  1. Извлечь второй аудиопоток (пример: второй audio — это 0:a:1):
bash
ffmpeg -i video.mp4 -vn -map 0:a:1 -c copy second_audio.m4a

Если команда жалуется, что нет stream 0:a:1 — значит альтернативной дорожки в контейнере нет (и нужно скачать cloud audio‑файл или использовать запись экрана).

Для конвертации в mp3/wav:

bash
ffmpeg -i second_audio.m4a -c:a libmp3lame -b:a 192k second_audio.mp3

Если аудиодорожка требует смещения по времени (синхронизировать):

bash
# подставьте нужный оффсет в секундах (может быть положительным или отриц.)
ffmpeg -itsoffset 0.5 -i audio-es.m4a -i video.mp4 -map 1:v -map 0:a -c:v copy -c:a aac output_sync.mp4

Слияние: собрать видео с нужной аудиодорожкой (FFmpeg)

Чтобы получить единый MP4 с выбранной второй дорожкой — объедините видео и аудио локально.

Пример простого комбинирования (без перекодирования), если форматы совместимы:

bash
ffmpeg -i video.mp4 -i audio-es.m4a -map 0:v:0 -map 1:a:0 -c copy -shortest output_replace_audio.mp4

Если контейнер/кодеки не позволяют copy — перекодируйте аудио в AAC:

bash
ffmpeg -i video.mp4 -i audio-es.m4a -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -y output_replace_audio.mp4

Чтобы добавить вторую аудиодорожку, не удаляя оригинал (полезно, если хотите сохранить и оригинал, и перевод):

bash
ffmpeg -i video.mp4 -i audio-es.m4a -map 0 -map 1:a -c:v copy -c:a aac -metadata:s:a:1 language=es output_with_alt_audio.mp4

(проверяйте поддержку плееров: не все плееры корректно показывают несколько аудиотреков в MP4).


Почему yt-dlp не видит вторую дорожку и что пробовать

Коротко: yt-dlp работает, когда источник явно предоставляет мультитрейки или манифест (HLS/DASH) с описанием аудиогрупп. Zoom же для интерпретации обычно хранит перевод как отдельные файлы на сервере и управляет переключением клиентским JS (значок «глобус»), поэтому yt-dlp по умолчанию «видит» только основной видеофайл с базовой аудиодорожкой.

Публичные обсуждения разработчиков yt-dlp подтверждают сложности выбора «не‑по‑умолчанию» аудиодорожек на разных сервисах и невозможность автоматически выбрать Zoom‑перевод в большинстве случаев: см. issue‑обсуждения проекта #7877, #8568, #3540.

Что можно попытаться:

  • Запустить yt-dlp -v и посмотреть, видит ли он HLS/DASH и альтернативные audio groups. Если видит — применить фильтр форматов (-f). Но чаще всего этого нет.
  • Использовать сетевой лог браузера (DevTools → Network) при воспроизведении записи: отследить запросы к audio‑*.m4a и вручную скачать найденные URL. Это трюк‑вариант, когда API недоступен.

В итоге: для Zoom практический путь — веб/API + ffmpeg, а не yt-dlp.


Если облачной записи нет — запись воспроизведения через OBS (последняя надежда)

Если в записи нет отдельной второй дорожки (локальная запись без переключений), единственный рабочий вариант — воспроизвести запись в веб‑плеере, переключить язык через «глобус» и записать экран/звук.

Советы по OBS:

  • На Windows: в OBS используйте «Display Capture» или «Window Capture» + «Audio Output Capture» (укажите системный выход).
  • На macOS: нужен виртуальный вывод (BlackHole, Soundflower) чтобы захватить системный звук.
  • Настройки: контейнер MP4, высокий битрейт, формат аудио 48 kHz, чтобы минимизировать потери.
  • Недостатки: повторная перекодировка и потенциальная потеря качества; возможно появление UI/курсорных артефактов; длительные записи требуют надёжного диска.

OBS — действительно рабочий запасной путь, но он менее аккуратен по качеству и удобству, чем прямая загрузка audio-.m4a.


Практические советы, частые ошибки и синхронизация

  • Проверьте, что у вас права на скачивание (владелец записи/хост).
  • Если download_url из API «истекает», скачивайте сразу или используйте авторизованный заголовок.
  • Всегда сначала скачивайте оригиналы (video + все audio), затем работайте локально.
  • Если при merge наблюдается рассинхрон — используйте -itsoffset или отрежьте/подрежьте треки.
  • Для совместимости с большинством плееров лучше конвертировать аудио в AAC при добавлении в MP4.
  • Тестируйте операции на коротком фрагменте, прежде чем обрабатывать гигабайтные файлы.

Примеры команд (curl, jq, ffprobe, ffmpeg, yt-dlp)

Проверить потоки в видео:

bash
ffprobe -v error -show_streams video.mp4

Извлечь вторую дорожку (если она встроена):

bash
ffmpeg -i video.mp4 -vn -map 0:a:1 -c copy second_audio.m4a

Скачать список audio через API (пример):

bash
curl -s -H "Authorization: Bearer $TOKEN" \
 "https://api.zoom.us/v2/meetings/$MEETING_ID/recordings" \
 | jq -r '.recording_files[] | select(.file_type=="audio") | .download_url'

Скачать конкретный audio-файл:

bash
curl -L -o audio-es.m4a "PASTED_DOWNLOAD_URL"
# или с заголовком
curl -L -H "Authorization: Bearer $TOKEN" -o audio-es.m4a "PASTED_DOWNLOAD_URL"

Объединить видео и вторую дорожку (рекодировать аудио в AAC):

bash
ffmpeg -i video.mp4 -i audio-es.m4a -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -y output_with_es.mp4

Добавить перевод как альтернативную дорожку:

bash
ffmpeg -i video.mp4 -i audio-es.m4a -map 0 -map 1:a -c:v copy -c:a aac -metadata:s:a:1 language=es output_alt_audio.mp4

Диагностика yt-dlp (что видит источник):

bash
yt-dlp -v "https://zoom.us/rec/share/...."

Источники

  1. Using Language Interpretation in your meeting or webinar
  2. Cloud recording - interpreter’s language (Zoom Community)
  3. Downloading files from a recording (Zoom Community)
  4. Zoom Records All Language Channels to the Cloud - YouTube
  5. maestra.ai — Zoom translation / globe icon note
  6. yt-dlp issue #7877
  7. yt-dlp issue #8568
  8. yt-dlp issue #3540

Заключение

Коротко: да, скачать запись Zoom со второй аудиодорожкой можно — при условии облачной записи и включённой интерпретации. Рабочий порядок действий: зайти в веб‑портал (или запросить через API) → скачать нужный audio-.m4a и video.mp4 → объединить их локально через FFmpeg (или добавить дорожку как альтернативную). YT‑DLP в большинстве случаев не подойдёт — он не «видит» клиентское переключение через значок «глобус». Если облачной записи нет — остаётся запись воспроизведения (OBS) как крайний вариант.

Авторы
Проверено модерацией
Модерация