Pull to refresh
3070.34
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

RSS отлично себя чувствует

Level of difficultyMedium
Reading time6 min
Views13K


RSS и Atom — простые и понятные форматы для публикации контента. Кто-то считает, что золотое время RSS осталось в прошлом, но это не так. На самом деле этап хайпа остался в прошлом, а сейчас синдикация вышла на плато продуктивного использования в своих нишах. Например, подкасты (MP3 по RSS) живут и процветают.

Но корпорациям использовать RSS не выгодно. Например, компания Google удалила RSS откуда могла и позакрывала сервисы. Но это не помогло. RSS отлично себя чувствует. Хабр и многие другие сайты получают существенную часть трафика со своих фидов.

Читатели могут скачивать фиды напрямую с серверов издателей. Очень удобно концентрировать в одном месте все свои фиды из тысяч источников. Не нужно вручную ходить на каждый сайт в отдельности. Если автор не нравится — просто убираем его блог из списка источников. Есть нативные RSS-агрегаторы для ПК, например, встроенный в почтовый клиент Thunderbird:



Многие получают контент через облачные RSS-агрегаторы (Feedly, NewsBlur, Inoreader), потому что так удобнее читать фиды с разных устройств (десктоп, смартфоны).

Альтернатива коммерческим облачным сервисам — агрегатор на своём хостинге, такой как FreshRSS. Его тоже можно читать и с десктопа, и со смартфона.

По своей сути 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 не умер, да и не может умереть никогда, потому что никому не принадлежит. Это открытый стандарт. Идея свободного и децентрализованного веба живёт несмотря ни на что.

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Tags:
Hubs:
Total votes 92: ↑92 and ↓0+105
Comments78

Articles

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds