Как я написал свой браузер на Python, который случайно стал наглухо вырезать видеорекламу
Всем привет! Сегодня хочу поделиться историей своего инди-проекта, который изначально задумывался как скромное хобби, а в итоге превратился в полноценный десктопный браузер-хаб, способный удивить архитектурными «багами», ставшими фичами.Проект называется Free-Search.
Рассказываю, как он устроен под капотом, зачем я его создал и как так получилось, что он без всяких расширений блокирует рекламу на Twitch и ВК Видео.
Зачем вообще писать свой браузер в 2026 году?
Давайте честно: современные популярные браузеры стали невероятно тяжелыми. Chrome, Edge, Яндекс — все они превратились в огромные коммерческие комбайны. Они пичкают нас встроенными новостными лентами, виджетами погоды, рекламой и, что самое неприятное, тоннами телеметрии. Они постоянно следят за каждым кликом и отправляют скрытые отчеты корпорациям.Мне захотелось создать альтернативу:
- Абсолютно чистый веб-серфинг — только вы и интернет.
- Нулевая слежка — никакой телеметрии, весь код открыт и работает только локально.
- Легковесность — чтобы программа не жрала оперативку как не в себя.
Технический стек: Python и PyQt6В качестве фундамента я выбрал связку Python + PyQt6. Интерфейс написан на Qt, а за отображение страниц отвечает компонент QtWebEngine. Чтобы вы понимали, внутри QtWebEngine бьется то же самое сердце, что и у Chrome — ядро Chromium. То есть со скоростью отрисовки сайтов и поддержкой современных веб-стандартов проблем нет изначально.
Код проекта я выпустил под свободной лицензией GPL-3 — все прозрачно, каждый может зайти на GitHub, проверить безопасность или доработать браузер под себя. На текущий момент готовы сборки под Windows и Linux.Главный «баг», который стал лучшей фичейСамое интересное началось, когда я дошел до медиаконтента. Дело в том, что «из коробки» Chromium в PyQt6 не умеет играть проприетарные видеокодеки (вроде H.264 и AAC).
Если зайти на Twitch или ВК Видео, плеер просто выдаст ошибку.Мне пришлось вручную настраивать интеграцию сторонних медиабиблиотек и кодеков, собирая плеер буквально на коленке. И тут произошла магия.Из-за специфики работы самосборного ядра и того, как Chromium внутри QtWebEngine обрабатывает видеопотоки, мой браузер стал намертво вырезать рекламу во встроенных плеерах ВК Видео и Twitch! Ему не нужны AdBlock, uBlock или другие сторонние расширения — реклама просто не может физически прогрузиться в этот плеер на уровне самого движка.
Что в итоге?
Проект Free-Search для меня — это и инженерный вызов, и попытка доказать, что на Python можно писать быстрые и полезные десктопные приложения. Браузер получился приватным, независимым и с приятным бонусом в виде чистого просмотра стримов и роликов.Поскольку проект некоммерческий, все исходники и ссылки на скачивание установочных файлов я выкладываю в своем блоге.
Буду очень рад фидбэку, здоровой критике и советам по коду от местного комьюнити!