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