Рекомендации YouTube настроены на время просмотра. Следующий ролик, на который вы кликнете, они находят отлично. А вот доклад, о котором вы будете думать через год, — плохо.

31 октября Андрей Карпатый выложил HackerTube. Он прошёл по всем комментариям Hacker News с 2007 по 2026 год и оставил 6 454 ролика, которые люди раз за разом советуют друг другу. Сайт выглядит как YouTube, но вместо алгоритма там память сообщества: у каждого видео видно, кто и в какой ветке его советовал. Регистрации нет, данные открыты. И самое интересное: по словам Карпатого, весь сайт за ~2 часа написал Claude в Claude Code, а он только ставил задачу.

У нас есть своё такое сообщество — Хабр. Почти двадцать лет в комментариях люди кидают друг другу «посмотри вот этот доклад» и «лучшее объяснение, что я видел». Эти советы разбросаны по миллионам веток. Я собрал их в одном месте — получился «Хабтюб»: ролики, которые советуют на Хабре. Бесплатно, без рекламы и без входа. Сайт уже работает, а свежие комментарии за 2023–2026 годы докачиваются прямо сейчас — подборка будет расти.

Сразу скажу: я не дата-сайентист и не программист. Сделал я это так же, как Карпатый: весь код по моим задачам написал Claude Code. Ниже — откуда данные, как отделить совет от шутки, какие грабли попались по дороге и чем вышло лучше оригинала.


Что умеет

  1. Лента из советов хабровчан. В ней 388 роликов. В каждый ролик минимум трое разных людей ткнули других носом в разные месяцы.

  2. Страница ролика с настоящими комментариями. Можно прочитать, что именно про видео писали на Хабре, и перейти в ту самую ветку.

  3. Описание по-русски. О чём ролик, за что его любят, тип (доклад, лекция, объяснение, документалка…), уровень и устарел ли он. Английские доклады тоже описаны по-русски.

  4. Темы. 27 разделов: от «ОС, ядро и системы» до «Космоса» и «Кино, юмора и культуры».

  5. Поиск по смыслу. Запрос «как работает процессор» находит ролики про квантовый компьютер, «Эльбрус» и бэкдоры в x86, хотя этих слов в них нет.

  6. «Те же люди советуют ещё». Ролики, которые советовали те же самые хабровчане.

  7. Пропуск рекламы внутри роликов. По открытой базе SponsorBlock плеер сам перепрыгивает спонсорские вставки, самопиар и «подпишитесь». На 04.11.2026 разметка есть у 41 ролика из подборки: 59 вставок, в сумме 42 минуты.

  8. Лайки, «Смотреть позже», история — без аккаунта, всё хранится только в вашем браузере.

  9. Превью — кадр из середины ролика, а не кликбейтная обложка (так же сделано у Карпатого).


Цифры

Всё замерено 04.11.2026.

Статей Хабра в архиве

302 049 (2006 — февраль 2023)

Комментариев

10 107 575

Ссылок на видео (в статьях и комментариях)

121 379

Разных роликов в комментариях

39 698

Разных роликов внутри статей

66 363

Прошли порог «≥3 человека, ≥3 месяца»

568

Комментариев к ним

2 973

Осталось после отсева (88 удалены с YouTube, 84 — шутки и мусор, 8 без данных)

388

Время на разбор одного файла архива (10 тыс. статей)

~3 секунды

Для сравнения: у HackerTube 6 454 ролика из 39 834 размеченных комментариев. Комментариев на Hacker News в разы больше, чем на Хабре, поэтому наша подборка примерно в 17 раз меньше. Зато каждый ролик в ней действительно советовали много раз.

Как меняется число роликов от порога (только YouTube):

Порог

≥2 месяца

≥3 месяца

≥4 месяца

≥2 человека

2 132

671

292

≥3 человека

655

562

261

≥4 человека

279

271

229

≥5 человек

150

149

140

Я взял тот же порог, что у Карпатого: три разных человека и три разных месяца. Разовый всплеск в одной горячей ветке так не проходит, а то, что советуют годами, — проходит.


Как устроено

  1. Архив. Полная выгрузка Хабра со всеми комментариями лежит на Hugging Face. Её собрал Илья Гусев, 31 файл parquet, 6,2 ГБ.

  2. Ссылки. Скрипт проходит по каждому комментарию и вытаскивает ссылки на YouTube, RuTube, VK Видео и Vimeo.

  3. Порог. Ролики группируются: сколько разных людей и в скольких разных месяцах их советовали. Голая ссылка без текста не считается.

  4. Чтение. Каждый комментарий к ролику-кандидату вместе с заголовком статьи прочитала модель Claude. Она решила, что делает автор: горячо советует, советует, ссылается как на источник, шутит или ругает. Там же она написала описание ролика по-русски.

  5. Сайт. Получилась статика: один index.json на все ролики и по файлу с комментариями на каждый ролик. Всё лежит на Cloudflare Workers, сервера с базой нет.


Грабли №1. Оригинальный архив закрыт

Симптом: датасет IlyaGusev/habr отвечает 401, даже через API.
Причина: автор закрыл его согласием на условия (gated): скачать можно только с аккаунтом Hugging Face.
Решение: на Hugging Face есть точные открытые копии. Я сверил схему и число строк — 302 049, как у оригинала — и взял vypivshiy/habr. Совет: проверяйте не название, а схему и num_examples через datasets-server:

curl -s "https://datasets-server.huggingface.co/info?dataset=vypivshiy/habr"

Грабли №2. 6 ГБ архива и 4 ГБ свободного места

Симптом: на ноутбуке не хватает места даже на скачивание.
Причина: архив хранит полный текст каждой статьи в двух видах (HTML и Markdown) плюс все комментарии.
Решение: обработка на арендованном сервере, и только нужные колонки. Parquet — колоночный формат: можно не читать тексты статей. Файл читается пачками по 300 статей, поэтому памяти почти не нужно:

pf = pq.ParquetFile(f)
for batch in pf.iter_batches(batch_size=300, columns=cols):
    for post in batch.to_pylist():
        ...

Один файл (10 тыс. статей, 337 тыс. комментариев) разбирается примерно за 3 секунды, весь архив — за пару минут.

Грабли №3. Ссылки на YouTube бывают десятка видов

Симптом: если искать только watch?v=, теряется большая часть ссылок.
Причина: за 17 лет на Хабре накопились все форматы: youtu.be/ID, watch?v=ID, watch?feature=player_embedded&v=ID, &v= внутри HTML, /embed/, /v/, /shorts/, /live/, youtube-nocookie.com и встроенные плееры в статьях.
Решение: один регэксп со всеми вариантами и проверкой, что ID ровно 11 символов и дальше не продолжается:

YT = re.compile(
    r"(?:youtube(?:-nocookie)?\.com/(?:watch\?(?:[^\s\"'<>]*?&(?:amp;)?)?v=|embed/|v/|shorts/|live/)"
    r"|youtu\.be/)([A-Za-z0-9_-]{11})(?![A-Za-z0-9_-])"
)

Грабли №4. Третий по популярности ролик Хабра — Рик Эстли

Симптом: в топе после подсчёта — dQw4w9WgXcQ. Его кидали 22 разных человека в 18 разных месяцах, с 2011 по 2023 год.
Причина: ссылка — не совет. Рикролл, мемы, «вот пруф, что он это говорил», «посмотрите, какой бред» — по числам всё это выглядит как популярность.
Решение: каждый комментарий читается вместе с заголовком статьи и получает метку: strong (горячо советует), rec (советует), source (ссылается как на источник), joke, critic, other. Ролик остаётся, только если хотя бы два разных комментария его реально советуют или опираются на него как на полезный. Культовый юмор, который хабровчане советуют с удовольствием, остаётся с типом «юмор». Розыгрыши уходят.

А на первом месте по числу месяцев — сюжет РЕН-ТВ «НЛО из принтера»: 25 человек в 23 разных месяцах, с 2010 по 2022 год. Отсюда и НЛО в логотипе.

Грабли №5. YouTube не пускает серверы

Симптом: при запросе метаданных с сервера YouTube отвечает «Sign in to confirm you're not a bot».
Причина: адреса дата-центров YouTube помечает как ботов.
Решение: название, канал, длительность и просмотры для 564 роликов я собрал с обычного домашнего адреса. Это нужно сделать один раз, а сайт потом работает уже без YouTube API.

Грабли №6. Все ролики включались с субтитрами

Симптом: у английских докладов сразу вылезали автоматические русские субтитры.
Причина: YouTube сам включает субтитры, когда язык ролика не совпадает с языком интерфейса. А в ссылке плеера стоял hl=ru — русский интерфейс, — при том что больше половины роликов английские.
Решение: убрал hl=ru, добавил cc_load_policy=0, а когда плеер всё-таки подгружает субтитры, один раз выгружаю их через API плеера. Кнопка CC работает как обычно — кому нужно, включит сам.

onApiChange: (e) => { if (!ccOff) { ccOff = true; e.target.unloadModule("captions"); } }

Как я это делал

Инструмент — Claude Code. Он пишет код и запускает команды, а задачу, решения и проверку оставляет мне.

  1. Разобрал оригинал. Прошёлся по hackertube.org: меню, фильтры, страница ролика, порог отбора, формат выгрузки. Получился список того, что нужно повторить, и того, что можно сделать лучше.

  2. Задал границы. Как у Карпатого: без регистрации и бесплатно. Интерфейс по-русски, ролики и русские, и английские.

  3. Нашёл данные. Оригинальный архив Хабра оказался закрыт — взял его точную открытую копию (грабли №1).

  4. Разобрал архив на своём сервере. На ноутбуке не хватало места (грабли №2).

  5. Отсеял шутки и мусор, чтобы рикролл не стал главным роликом Хабра (грабли №4).

  6. Проверял руками. Открывал сайт на телефоне и компьютере. Так нашлись субтитры, которые включались сами (грабли №6), и логотип: при наведении кнопка плей у НЛО летала туда-сюда. Теперь она стоит на месте, а загорается подсветка луча.

  7. Правило для цифр: в статье только то, что есть в логах и замерах.

Задачи я ставил голосом, с ошибками и неточными словами, — Claude Code понимал по смыслу. По-моему, вайбкодинг так и выглядит: я отвечаю за «что» и «зачем», а инструмент — за «как».


Что хранится

  • На сервере — ничего о вас. Сайт — набор статических файлов, базы пользователей нет.

  • Лайки, история и «Смотреть позже» лежат в localStorage вашего браузера. Почистили браузер — всё исчезло. Синхронизации между устройствами нет.

  • Видео играют через приватный встроенный плеер YouTube (youtube-nocookie.com).

  • Комментарии — публичные комментарии Хабра: короткая цитата, ник и ссылка на ветку.


Чем отличается

Рекомендации YouTube

HackerTube

Хабтюб

Откуда ролики

Алгоритм на время просмотра

Комментарии Hacker News 2007–2026

Комментарии Хабра 2006–2023

Роликов

Бесконечно

6 454

388

Язык описаний

—

Английский

Русский

Видно, кто и где советовал

Нет

Да

Да, со ссылкой на ветку

Пропуск спонсорских вставок

Нет

Нет

Да (SponsorBlock, 41 ролик)

Аккаунт

Нужен для истории

Не нужен

Не нужен

Цена

Бесплатно с рекламой

Бесплатно

Бесплатно

Что у нас лучше, чем у HackerTube:

  • Пропуск рекламы внутри роликов. Плеер берёт разметку из открытой базы SponsorBlock и сам перепрыгивает спонсорские вставки, самопиар и «подпишитесь на канал». Под плеером написано, сколько вставок пропустим и сколько это секунд. Пропуск можно выключить. Проверено 04.11.2026: в ролике der8auer про техпроцессы плеер пропустил 5-секундную рекламу в начале. У Карпатого такого нет.

  • Описания по-русски — в том числе у английских докладов.

  • Русские и английские ролики в одной ленте.

Что лучше у Карпатого: роликов в 17 раз больше (Hacker News больше и пишет чаще), а данные свежие — до 2026 года.

Чего не умеет

  • Пока данные только до февраля 2023 года. Открытый архив Хабра заканчивается на этом месяце. Комментарии с марта 2023 по ноябрь 2026 прямо сейчас докачиваются с самого Хабра — это около суток. Новые ролики появятся на сайте сами, а в статье я допишу обновление.

  • Описания написала модель. Она могла ошибиться в деталях. Под каждым описанием есть исходные комментарии, по ним можно проверить.

  • В России для YouTube нужен VPN. Ролики играют с YouTube, а сам сайт лежит на Cloudflare — без VPN он может открываться медленно.

  • Нет синхронизации между телефоном и компьютером — потому что нет аккаунтов.

  • Ролики RuTube и VK почти не попали в подборку. До 2023 года их на Хабре почти не советовали: порог не прошёл ни один ролик.


Ссылки:

Независимый проект, с Хабром не связан.

Дальше будет ещё.

Прошлые статьи серии: Качалка · Чисто · Кружок · Толково · Мимо

Комментарии (10)