RSS и Atom — простые и понятные форматы для публикации контента. Кто-то считает, что золотое время RSS осталось в прошлом, но это не так. На самом деле этап хайпа остался в прошлом, а сейчас синдикация вышла на плато продуктивного использования в своих нишах. Например, подкасты (MP3 по RSS) живут и процветают.
Но корпорациям использовать RSS не выгодно. Например, компания Google удалила RSS откуда могла и позакрывала сервисы. Но это не помогло. RSS отлично себя чувствует. Хабр и многие другие сайты получают существенную часть трафика со своих фидов.
Читатели могут скачивать фиды напрямую с серверов издателей. Очень удобно концентрировать в одном месте все свои фиды из тысяч источников. Не нужно вручную ходить на каждый сайт в отдельности. Если автор не нравится — просто убираем его блог из списка источников. Есть нативные RSS-агрегаторы для ПК, например, встроенный в почтовый клиент Thunderbird:
Многие получают контент через облачные RSS-агрегаторы (Feedly, NewsBlur, Inoreader), потому что так удобнее читать фиды с разных устройств (десктоп, смартфоны).
Альтернатива коммерческим облачным сервисам — агрегатор на своём
По своей сути RSS больше подходит для осмысленного контента, сохраняющего свою ценность со временем, а не для краткосрочного кликбейта с целью накрутки посещаемости. Если вы отдаёте контент целиком, то нет смысла нести чушь или какую-то желтуху чисто ради открутки рекламных баннеров. Вы будете думать, стоит ли публикации каждое слово. Поэтому корпорации так не любят RSS.
▍ Агрегаторы фидов
Агрегатор фидов — сложная информационная система, особенно с учётом масштабируемости на миллионы источников информации, которые нужно периодически обновлять (скачивать) — и выдавать пользователям.
Архитектуру агрегатора можно примерно оценить по этой научной статье 2022 года:
Основная часть реализована на C# (.Net Core), хранилища данных PostgreSQL и Elasticsearch. Автор считает, что такие системы агрегации должны быть распределёнными на основе событийно-ориентированной и микросервисной архитектур. Такой подход сделает систему устойчивой к высоким нагрузкам и сбоям, а также легко расширяемой.
Сам факт публикации научных статей на эту тему говорит о том, что RSS и синдикация данных в распределённой системе — актуальная тема, как бы ни старались недоброжелатели.
В последнее время появились и новые, интересные подходы. Например, MonitoRSS (бывш. DiscordRSS) — агрегатор RSS на самохостинге с трансляцией ленты в Discord. Если своего сервера нет, можно использовать ограниченно бесплатный публичный инстанс.
▍ Кто хочет похоронить RSS
Одним из «могильщиков» RSS называют Google. Например, в ранних версиях Chrome на адресной панели была встроенная кнопка RSS. Нажатие на неё загружало RSS-фид страницы для быстрой подписки.
Эту кнопку тихо убрали, а потом удалили и соответствующее расширение.
В 2007 года Google купила крупнейший агрегатор FeedBurner, который использовался блогерами для монетизации фидов. Через пять лет она закрыла FeedBurner API, заблокировав интеграцию с сервисом сторонних приложений, а в 2022 году по сути похоронила FeedBurner, закрыв большинство его сервисов.
Многие помнят драматическую историю Google Reader. Компания открыла его в 2005 году, и за несколько лет он стал самым популярным RSS-ридером в интернете, пока в 2013 году совершенно неожиданно Google его не убила.
С тех пор пополнения на кладбище проектов Google поступают ежегодно, но могилка Google Reader остаётся одной из самых заметных и печальных.
Тогда и стало понятно, что корпоративная культура поискового гиганта стала меняться в сторону коммерциализации и Google больше нельзя доверять. Несмотря на популярность RSS, менеджеры компании враждебно смотрели на этот сервис, не приносивший особой прибыли и якобы отнимающий аудиторию у других подразделений.
Google до сих пор ведёт себя враждебно по отношению к RSS. Например, недавно один из сотрудников Google по личной инициативе выкатил генератор RSS-фидов для динамического контента developer.chrome.com (портал для разработчиков) вопреки официальной политике работодателя.
Но как бы ни старались недоброжелатели, RSS живёт и отлично себя чувствует. Фиды персональной ленты — один из основных источников трафика на Хабр, и не только у нас такая ситуация. Есть куча успешных сервисов, которые с пользой применяют RSS.
Примечание. Несмотря на исчезновение RSS со многих сервисов Google, на YouTube до сих пор официально поддерживаются фиды для каналов, плейлистов, пользователей и т. д. Но в этом отношении на Google нельзя полагаться, так что в качестве запасного варианта для YouTube лучше рассматривать фид-генератор на своём сервере.
▍ Фид-генераторы
Для издателей контента (а это теоретически все люди с блогами и личными сайтами) настроить RSS довольно просто.
Во-первых, для популярных CMS типа WordPress всегда есть соответствующие плагины. Если странички создаются в генераторе статичных сайтов, то для него тоже обычно есть плагины генерации RSS (например, RSS-плагин для генератора 11ty).
Но даже если блог пишут в Блокноте, на этот случай тоже имеется ряд опенсорсных фид-генераторов. Например, python-feedgen создаёт фид с помощью всего нескольких строк. Просто создаём класс FeedGenerator
и вставляем некоторые данные:
from feedgen.feed import FeedGenerator
fg = FeedGenerator()
fg.id('http://lernfunk.de/media/654321')
fg.title('Some Testfeed')
fg.author( {'name':'John Doe','email':'john@example.de'} )
fg.link( href='http://example.com', rel='alternate' )
fg.logo('http://ex.com/logo.jpg')
fg.subtitle('This is a cool feed!')
fg.link( href='http://larskiesow.de/test.atom', rel='self' )
fg.language('en')
Затем фид генерируется путём вызова соответствующего метода:
atomfeed = fg.atom_str(pretty=True) # Get the ATOM feed as string
rssfeed = fg.rss_str(pretty=True) # Get the RSS feed as string
fg.atom_file('atom.xml') # Write the ATOM feed to a file
fg.rss_file('rss.xml') # Write the RSS feed to a file
Или вот простой bash-скрипт для генерации RSS.
Скрипт генерирует фид с полным текстом всех сообщений в блоге, а не только заголовка и ссылки на пост. Он берёт директорию с HTML-файлами от личного сайта и парсит их, доставая нужную информацию с помощью awk
и sed
и добавляя её в файл blog.xml
с помощью echo
:
Заголовки для фида берутся из содержимого между тегами <h1>
и </h1>
, дата публикации каждого элемента генерируется из времени создания HTML-файлов в директории, а описание — из контента между тегами <article>
и </article>
.
В общем, логика понятна: берём нужные данные из файлов и добавляем их в фид, так что bash-скрипт выступает в качестве полноценного генератора RSS. Если запустить его в консоли, он сгенерирует blog.xml
в текущей локации. Файл следует перенести в корневую папку сайта — и официальный RSS-фид готов. Как вариант, скрипт можно подправить, чтобы он изначально создавал файл blog.xml
по нужному адресу.
Для генератора статических сайтов Hugo тоже есть исправление для дефолтного шаблона, чтобы генерировать фиды с полным содержанием постов, указанием автора и др.
Через свой сервер (мост) можно генерировать и транслировать RSS-фиды даже для сайтов, которые сами не выкладывают RSS добровольно. Инструменты вроде RSS-Bridge и RSSHub позволяют настраивать «самодельные» фиды, фильтровать их по ключевым словам, удалять рекламу по стандартному списку блокировки и т. д.
Сервисы вроде PolitePol сгенерируют фид практически из любого URL. Есть специальные RSS-скраперы и правила скрапинга практически любого популярного сайта.
▍ RSS вместо социальных сетей
VCard+RSS может составить альтернативу нынешним социальным медиа. Это будет единая честная сеть, в отличие от современных коммерческих корпораций, которые пытаются всячески отгородиться друг от друга.
В принципе, в этой идее можно узнать известную концепцию Семантического веба. В наше время эта идея становится будто ещё актуальнее, чем раньше.
Экосистема RSS (блоги и комментарии) гораздо здоровее, чем современные социальные медиа. Здесь нет столько злости, споров, троллинга и сарказма. Люди просто читают авторов, которые им нравятся. Это чем-то похоже на чтение книг, даже вёрстка такая же строгая. К сожалению, некоторые изысканно оформленные тексты теряют свою красоту в таком формате, тут ничего не поделаешь.
И главное: в RSS нет рекламы и трекинга. Да, автор не получает такой подробной аналитики по аудитории. Но самому автору она особо и не нужна, это скорее важно рекламодателям. Обычные люди воспринимают рекламу как абсолютное зло. Кстати, по последней статистике Censuswide, доля блокировщиков рекламы во всей американской аудитории выросла до 52%, среди опытных пользователей — до 66%, среди опытных программистов — до 72%. То есть это уже стандарт де-факто в интернете.
Так что если использовать фиды по назначению — для оперативной передачи контента читателям — они до сих пор отлично выполняют свою функцию. Если за прошедшие годы кто-то отказался от RSS в пользу социальных сетей и мессенджеров, есть смысл подумать о возвращении обратно. Ради гармонии и душевного равновесия. Две-три минуты в день на сканирование новостей достаточно, чтобы быть в курсе всего важного и интересного. Например, если просматривать обновления своих каналов YouTube через RSS, то можно автоматически фильтровать шортсы (видео менее 60 с). Только один этот трюк экономит кучу времени.
В последние годы появилось несколько интересных RSS-ридеров, которые стремятся вернуть «на родину» бывших пользователей RSS. Можно взглянуть на Fraidycat и yarr.
RSS не умер, да и не может умереть никогда, потому что никому не принадлежит. Это открытый стандарт. Идея свободного и децентрализованного веба живёт несмотря ни на что.
Автор: Анатолий Ализар