Структура и требования стандарта RSS 2.0 для подкастов
Основой любого подкаста является файл разметки XML, соответствующий спецификации RSS 2.0. Для корректной интерпретации приложениями-клиентами и каталогами этот документ должен строго следовать правилам построения XML.
Валидатор проверяет соответствие структуры следующим обязательным правилам:
- Документ должен содержать объявление XML и корневой элемент. Корень документа должен быть
<rss>. - Атрибут
versionэлемента<rss>должен иметь точное значение "2.0". - Внутри корневого элемента RSS должен содержаться ровно один дочерний элемент
<channel>. - В документе не должно быть объявлений DOCTYPE. При наличии такой декларации валидатор выводит ошибку: "Удалите объявление DOCTYPE перед проверкой этого feed.".
- Любые синтаксические ошибки разметки делают файл нечитаемым. Если XML поврежден, возвращается ошибка: "Исправьте неверный XML, затем проверьте еще раз.".
Для полноценного функционирования подкаста в экосистеме Apple Podcasts на корневом элементе <rss> должно быть объявлено соответствующее пространство имен. Если оно отсутствует, валидатор укажет на необходимость добавить декларацию пространства имен Apple Podcasts на <rss>.
Канал подкаста должен содержать как минимум один выпуск (элемент <item>). Если в <channel> не найдено ни одного выпуска, валидатор сообщает: "Добавьте в канал хотя бы один выпуск <item>.".
Требования к метаданным канала и выпусков
Каталоги подкастов предъявляют жесткие требования к наличию и формату метаданных как для всего канала, так и для отдельных эпизодов. Отсутствие ключевых тегов препятствует регистрации подкаста в директориях.
При проверке полей применяются следующие правила:
- Обязательные поля: При отсутствии критически важных элементов валидатор выдает ошибку: "Добавьте необходимый
‹field›.". - Адреса URL: Ссылки в метаданных должны быть абсолютными. Если ссылка некорректна, выводится ошибка: "
‹field›должен быть полным URL-адресом HTTP или HTTPS.". Для изображений действует аналогичное правило: "Задайте для itunes:image href полный URL-адрес HTTP или HTTPS.". - Категории: Элементы категорий не могут быть пустыми. Правило требует: "Добавьте непустой атрибут text в
<itunes:category>.". - Возрастные ограничения: Тег
<itunes:explicit>принимает строго ограниченный набор значений. Валидатор проверяет это правило и выводит: "Установите для<itunes:explicit>значение true или false.". - Сериальные подкасты: Если тип подкаста определен как сериальный, каждый эпизод должен иметь порядковый номер. В противном случае генерируется ошибка: "В сериальных шоу для каждого эпизода требуется положительное целое число
<itunes:episode>.". - Уникальность идентификаторов: Каждый выпуск должен обладать уникальным глобальным идентификатором (GUID). Повторяющиеся значения недопустимы. При обнаружении дубликата выводится ошибка: "Этот GUID повторяет значение в строке
‹first›.".
Валидация аудиофайлов и элементов enclosure
Элемент <enclosure> связывает XML-описание выпуска с непосредственным медиафайлом. Это один из самых критичных узлов RSS-ленты подкаста. Каждый элемент <item> должен содержать ровно один тег <enclosure>. Если в выпуске обнаруживается несколько таких тегов или они отсутствуют, валидатор сообщает: "В этом эпизоде оставьте ровно один <enclosure>; нашел ‹count›.".
При анализе атрибутов <enclosure> проверяются следующие параметры:
- Наличие атрибутов: При отсутствии обязательных параметров генерируется ошибка: "Добавьте необходимый атрибут
‹attribute›в<enclosure>.". - URL медиафайла: Ссылка на файл должна быть доступной и корректной. Ошибка "Укажите в атрибуте url элемента
<enclosure>полный URL HTTP или HTTPS." указывает на неверный формат адреса. URL-адреса файлов не должны повторяться в разных выпусках. Дублирование вызывает ошибку: "URL элемента<enclosure>повторяет значение из строки‹first›.". - Размер файла: Атрибут
lengthдолжен содержать точный размер файла в байтах. Нечисловые значения вызывают ошибку: "Укажите в атрибуте length элемента<enclosure>целое количество байтов.". Если размер указан как 0, система выдает предупреждение: "Атрибут length элемента<enclosure>равен 0. Перед публикацией проверьте фактический размер в байтах.". - Тип данных (MIME-тип): Поле
typeдолжно соответствовать поддерживаемым аудиоформатам. Недопустимый формат вызывает ошибку: "Используйте допустимый тип MIME, например audio/mpeg.". Если указан корректный, но не аудиоформат, выводится предупреждение: "Элемент<enclosure>не помечен как аудио. Убедитесь, что выпуск намеренно содержит видео или документ.". Также проверяется соответствие расширения файла в URL указанному MIME-типу. При расхождениях выводится предупреждение: "Имя медиа-файла и тип MIME не совпадают (‹extension›и‹mime›).".
Форматирование дат публикации по стандарту RFC 2822
Для правильной сортировки эпизодов в приложениях-клиентах даты публикации в теге <pubDate> должны строго соответствовать стандарту RFC 2822.
Отсутствие даты публикации затрудняет хронологический импорт, поэтому валидатор выдает предупреждение: "Добавьте <pubDate>, чтобы приложения для подкастов могли правильно сортировать и публиковать выпуск.".
Если дата записана в неверном формате, валидатор сообщает об ошибке: "Используйте дату RFC 2822 с реальной календарной датой и часовым поясом, например: Sat, 01 Apr 2023 19:00:00 +0000.".
Использование буквенных обозначений часовых поясов (например, EST, GMT) вместо числовых смещений снижает переносимость файла между различными парсерами. В этом случае система выдает предупреждение: "Этот именованный часовой пояс принят, но менее переносим; предпочитайте числовое смещение, например +0000.".
Ограничения на объем данных и лимиты каталогов
При работе с RSS-лентами подкастов необходимо учитывать как технические ограничения валидатора, так и лимиты платформ дистрибуции:
- Лимит размера ввода: Валидатор обрабатывает текст объемом до 500 000 символов на одну проверку. При превышении этого лимита отображается сообщение: "Этот инструмент принимает до
‹max›символов на одну проверку.". - Время обработки: Если разбор файла занимает слишком много времени, процесс прерывается с сообщением: "Проверка заняла слишком много времени. Попробуйте использовать ленту меньшего размера.". При критическом сбое выводится: "Проверка не может быть завершена.".
- Лимит выпусков в Apple Podcasts: Хотя технически RSS-лента может содержать неограниченное число элементов
<item>, каталог Apple Podcasts накладывает ограничение на отображение. При превышении этого порога валидатор выдает предупреждение: "В этой ленте‹count›выпусков; Apple Podcasts показывает только 2000 последних.".
Локализация ошибок с помощью путей XML
Для быстрого устранения неисправностей валидатор не просто констатирует наличие проблемы, но и указывает ее точные координаты в структуре документа. Результаты проверки выводятся в блоке "Диагностика ленты".
Каждая обнаруженная проблема снабжается указанием точного места: "Строка ‹line›, столбец ‹column›". Для быстрого перехода к проблемному элементу формируется XPath-путь в формате "Исправлено: ‹path›." и интерактивная ссылка "Перейдите к ‹path› в строке ‹line›.". Это позволяет разработчикам и авторам подкастов мгновенно находить ошибочные теги в исходном коде XML-файла.
Если количество ошибок слишком велико, список сокращается, о чем сообщает строка: "Показаны первые ‹shown› из ‹total› проблем.". При успешном прохождении всех тестов выводится сообщение: "Проблем со структурой не обнаружено.".
Конфиденциальность и особенности обработки данных
Процесс валидации полностью безопасен для конфиденциальных данных. RSS-лента подкаста проверяется в вашем браузере. BroBroGo ничего не загружает и не сохраняет. Все вычисления и разбор структуры XML происходят локально на стороне клиента.
Необходимо учитывать, что данный инструмент выполняет статическую проверку структуры. URL ленты, обложки и медиафайлов не открываются; отдельно проверьте доступность, размер в байтах, декодирование аудио и приём каталогом. Успешное прохождение валидации подтверждает корректность синтаксиса и структуры XML, но не гарантирует автоматическое одобрение фида модераторами конкретных платформ.
Часто задаваемые вопросы
Что проверяет валидатор подкаста RSS?
Он проверяет корректность RSS 2.0 XML, наличие обязательных полей RSS и распространённых полей Apple Podcasts, а также атрибуты <enclosure>, дубликаты и даты RFC 2822.
Тестирует ли он аудиофайл?
Он проверяет URL в <enclosure>, размер в байтах, MIME-тип, уникальность URL и соответствие имени файла типу. Аудиофайл не загружается и не декодируется.
Примут ли ленту без ошибок во всех каталогах? Нет. Приложения и каталоги подкастов могут применять дополнительные правила и удалённые проверки. Успешный результат означает лишь, что вставленный XML прошёл показанные здесь статические проверки.