ТранскрибаторТранскрибатор
Практическая инструкция

Главы подкаста в JSON: как подготовить файл и проверить переходы

Формат Podcasting 2.0: время в секундах, готовый JSON, подключение к эпизоду RSS и проверка глав после монтажа.

03 октября 2026Транскрибатор
Темы → секунды → главы04:50 → startTime: 290JSON + эпизод RSS + плеерПроверить каждый переход
Проверенные ограниченияРазобранный примерРабочий шаблон
1. ДанныеJSON читаетсяЧисла в верном порядке2. ДоставкаПубличный файлНужный эпизод RSS3. ПереходыСовместимый плеерНачало каждой темы
JSON, подключение к эпизоду и фактические переходы проверяют раздельно. Синтаксический успех не подтверждает полезность навигации.

Когда нужен отдельный файл глав

Главы помогают слушателю перейти к теме внутри выпуска. В Podcasting 2.0 их можно хранить в отдельном JSON-файле, связанном с эпизодом через RSS. Тогда исправление названия главы не требует заново кодировать аудио. Но поддержку такого способа нужно проверять у хостинга и плеера.

Список «00:00 — вступление» в описании сам по себе не становится файлом JSON. Встроенные метки аудиофайла и отдельный файл для RSS также обслуживаются по-разному. Эта инструкция посвящена именно подготовке и приёмке отдельного файла глав.

Если вы публикуете видеоверсию, главы YouTube оформляются по правилам этой площадки. Можно использовать общий редакторский список тем, но конечные форматы и проверки различаются. Не переносите результат проверки одного плеера на все способы доставки.

На 3 октября 2026 года пример ниже соответствует описанию JSON Chapters Format 1.2. В документации обязательны поля version и chapters, а у отдельной главы — startTime. Для удобной навигации мы также задаём понятное title каждой главы. Пример вымышленный; подключение реального эпизода в этой статье не выполнялось.

Соберите темы по окончательной записи

Сначала выберите финальный аудиофайл. Укажите его имя, версию и длительность в рабочем журнале. После удаления вступления или перестановки ответов времена старой расшифровки могут стать неверными; главы должны относиться к той записи, которую услышит аудитория.

Чтобы найти смены темы, удобно получить текст выпуска в Транскрибаторе. Составьте черновой список разделов по содержанию, затем найдите начало каждого в финальном аудио. Здесь не заявляется автоматический экспорт сервиса в формат глав Podcasting 2.0.

Название главы должно объяснять содержание без знания предыдущих разделов. «Проверка перед отправкой» полезнее, чем «Продолжение разговора». Не создавайте отдельную главу на каждую реплику: навигация должна показывать структуру выпуска, а не превращаться в стенограмму.

Проверяйте границу прослушиванием. Начало важной мысли может находиться раньше первого термина в расшифровке: слушателю нужно услышать вопрос или условие. Сохраните отдельно черновую отметку из текста и подтверждённую отметку финального файла.

Переведите время в секунды и создайте JSON

В startTime записывают число секунд от начала аудио, при необходимости с дробной частью. Для отметки 04:50 расчёт такой: 4 × 60 + 50 = 290. Для 01:04:50: 1 × 3600 + 4 × 60 + 50 = 3890. Строка «04:50» не заменяет числовое значение.

Расположите главы по возрастанию startTime. В рабочей проверке также исключите отрицательные времена, повторные начала и отметки за концом записи. Эти проверки помогают поймать ошибку редактора, даже когда сам JSON синтаксически корректен.

Используйте обычные двойные кавычки и десятичную точку. Не добавляйте комментарии и запятую после последнего элемента массива. Сохраните текст как файл с расширением .json в UTF-8, а не как документ с дополнительным скрытым расширением .txt.

Начните с простого набора startTime и title. Формат допускает дополнительные данные, например изображение или тематический адрес, но они добавляют отдельные проверки доступности. Для первой рабочей пробы важнее точное время и понятные названия, чем сложная карточка каждой главы.

Подключите файл к конкретному эпизоду

Разместите JSON так, чтобы его можно было получить без входа в ваш личный кабинет. При открытии адрес должен отдавать файл, а не страницу редактора, форму доступа или HTML-сообщение об ошибке. В документации для этого формата указан Content-Type application/json+chapters.

Хостинг может иметь поле адреса глав или самостоятельно формировать подключение. Если поддерживается ручное описание RSS, используется один элемент podcast:chapters внутри item нужного эпизода с атрибутами url и type. Пространство имён podcast должно быть объявлено в RSS. До ручной правки уточните, не генерирует ли хостинг этот элемент сам.

Не прикрепляйте общий файл ко всем выпускам. Сверьте название эпизода, его аудио и адрес глав. Ошибка выбора item даст корректный файл и рабочие переходы, которые относятся к чужой записи. Это не выявляется одной проверкой синтаксиса.

После изменения названия главы аудио может остаться прежним, но плеер способен использовать сохранённую копию файла. Поэтому проверяйте фактическое отображение обновления. Если менялось само аудио, пересмотрите все времена; замена файла глав не исправляет смещённые отметки автоматически.

Проверьте данные и навигацию отдельно

Для локальной проверки синтаксиса можно выполнить python -m json.tool episode.chapters.json. Команда читает JSON и сообщает синтаксические ошибки; она не подтверждает соответствие глав аудио и не проверяет доступность публикации.

Затем проверьте числа по длительности финального файла и прослушайте переходы к каждой теме. Особое внимание уделите второй и последней главе: ошибка единиц времени или старый монтаж часто заметны именно на них. Сверка расшифровки по записи помогает проверить формулировки названий и важные условия.

После подключения откройте эпизод в поддерживающем такой формат плеере. Убедитесь, что видны нужные названия и нажатие ведёт к началу нужного разговора. Если список не появился, разделите диагностику: доступен ли файл, связан ли он с правильным эпизодом, поддерживает ли его приложение.

Сохраните список времени, JSON и результаты приёмки вместе с версией аудио. Запишите, какой плеер и когда проверен. Корректный файл, успешная доставка и полезные переходы — три разные проверки; завершайте работу после всех трёх, а не после первой успешной команды.

Учебный пример

Три темы вымышленного выпуска

Учебный выпуск длится 18 минут. Его темы и времена вымышлены: проблема версий начинается сразу, общий список комментариев — в 04:50, проверка перед отправкой — в 12:10. JSON ниже содержит эти три проверяемые точки.

Учебная отметкаstartTimeЧто сверить
00:000Начало окончательного выпуска
04:50290Начало общего списка комментариев
12:10730Разговор о проверке перед отправкой
Длительность 18:001080 секундКаждая глава начинается до конца
Список редактора04:5012:10Время финального аудиоJSON: числа секунд4 × 60 + 50 = 29012 × 60 + 10 = 730startTime без кавычек
Учебное преобразование времени: минуты умножают на 60 и добавляют секунды. В JSON записывают число, а не строку вида минуты:секунды.

Если из начала выпуска удалить 20 секунд, второй и третий переходы больше не соответствуют прежним временам. Сначала найдите новые границы по изменённой записи, затем обновите данные. Не вычитайте одинаковое число из всех глав, если монтаж затрагивал несколько мест.

Готовый учебный файл episode.chapters.json

Рабочая заготовкаВыделите и скопируйте
{
  "version": "1.2.0",
  "chapters": [
    {
      "startTime": 0,
      "title": "Почему теряется версия"
    },
    {
      "startTime": 290,
      "title": "Общий список комментариев"
    },
    {
      "startTime": 730,
      "title": "Проверка перед отправкой"
    }
  ]
}

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

Можно записать в startTime строку «04:50»?

В этом формате используется число секунд. Для 04:50 укажите 290.

Title обязательно по спецификации?

У главы обязательно startTime; title необязательно. В практической навигации понятное название помогает слушателю выбрать тему.

Файл JSON меняет звук подкаста?

Это отдельные данные навигации, связанные с эпизодом. Они не выполняют монтаж аудио.

Достаточно команды json.tool?

Она проверяет синтаксис JSON. Время, нужный эпизод, доставку файла и переходы в плеере проверяют отдельно.

Почему обновление названия не видно сразу?

Приложение может использовать сохранённую копию данных. Проверьте актуальное содержимое файла и фактическое обновление в выбранном плеере.