Как я написал свой "идеальный" сортировщик и медиа-комбайн без опыта в программировании с использованием ИИ
Всем привет! Хочу поделиться личной историей о том, как наболевшие бытовые проблемы с компьютером и капелька упорства (вместе с ИИ-помощником) помогли мне создать программу, которой я теперь пользуюсь каждый день.
Началось всё с трёх простых, но жутко раздражающих проблем в моей повседневной жизни:
1. Хаос в загрузках. Я постоянно скачиваю кучу картинок, видео, мемчиков и документов. Плюс бэкапы с флешек, старых жестких дисков и прочее. Разбирать всё это сразу не всегда есть время и желание, поэтому мусор годами копится мертвым грузом. И чем дальше, тем страшнее браться за наведение порядка. Существующие программы для сортировки требовали изучения тонны настроек или выглядели как привет из 90-х. Хотелось простого: без установок, без взломов, без лишней сложности. Просто открыл программу, по превью или фильтрам быстро раскидал файлы по нужным каталогам, не копаясь часами в бесконечных иерархиях папок.
2. Сжатие видео для Discord. Постоянная боль аккаунтов без премиума: хочешь скинуть другу смешной ролик весом в 12–15 мегабайт, а ограничение на загрузку — ровно 10. И начинается: заходи на онлайн-конвертеры (которые пережимают видео по полчаса и пичкают рекламой) или открывай тяжелый видеоредактор. Мне нужен был инструмент, который сожмет ролик под лимит мессенджера в один клик. Плюс иногда требовалось на месте обрезать видео, кадрировать, повернуть, убрать звук или быстро вытащить аудиодорожку из подкаста.
3. Анализ забитого диска. Чтобы понять, куда делось место на диске или флешке, я много лет использовал старую утилиту Scaner на 200 КБ. Да, она работала, но была жутко неудобной и устаревшей: ни красивой интерактивности, ни нормальной группировки файлов, ни возможности быстро выкинуть мусор прямо из графика. А изучать новые сложные комбайны было банально лень.
Раньше я бы просто вздохнул и продолжил мучиться, ведь в программировании я не разбираюсь от слова «совсем» (максимум — писал простейшие скрипты на Python для себя). Я даже с технологией Git не был знаком и начал использовать её уже в самом конце разработки. Но с появлением нейросетей всё изменилось. Я решил: почему бы не попробовать сделать такой инструмент для себя, раз мне это интересно, а готового идеала под мои нужды не существует?
Да, возможно, это эгоцентрично — думать, что я лучше других знаю, как всё должно работать. Но меня всегда удивляло: почему вокруг так много крутых программистов и экспертов, а большинство софта в итоге получается кривым и неудобным? И я решил попробовать сам.
Как мы это делали (и сквозь какие тернии прорывались)
Справедливости ради, начинал я не с удобных агентных систем, как все нормальные люди, а напрямую в веб-интерфейсе Google AI Studio. И это был сущий кошмар. Система не поддерживала прямое создание файлов проекта на компьютере. Мне приходилось прописывать правила, по которым ИИ писал код в виде текста, я скачивал его в `.txt`, а потом конвертировал на своем компьютере в рабочий Python-код скриптом. Это было сплошное мучение, продуктивность стремилась к нулю. Скорее всего, отголоски этого «костыльного» старта до сих пор живут где-то в архитектуре проекта.
Позже я узнал об агентных нейросетях и открыл для себя агентного ИИ-помощника от Google. Я знал, что есть другие аналоги, но с ходу не смог быстро разобраться с их установкой и настройкой, а в этом разобрался и остановился на нем. Во мне горел энтузиазм, нужно было поскорее воплотить свою идею в жизнь.
Спойлер: в итоге всё это заняло больше полугода. В течение этого времени я много раз хотел всё бросить и забыть как страшный сон. Но раз вы читаете эту статью, значит, всё-таки не бросил.
Сказать, что всё заработало сразу — соврать. Это была настоящая битва! Нейросеть писала код на Python, а я выступал в роли тестировщика, дизайнера, QA-инженера, идейного вдохновителя и строгого начальника. И это с учетом того, что опыта ни в одной из этих ролей у меня не было до этого момента.
Мы наткнулись на кучу подводных камней, о существовании которых я даже не догадывался:
Длинные пути в Windows: Вы знали, что система начинает сходить с ума и выдавать ошибки, если полный путь к файлу превышает 260 символов? Нам пришлось писать специальный обходной код, чтобы программа не вылетала при переносе файлов из глубоких папок.
Блокировки файлов: Программа намертво зависала, если я пытался переместить видео, пока встроенный плеер его воспроизводил. Мы учили плеер вовремя «отпускать» файлы перед переносом.
Спор с ИИ из-за дизайна и расположения элементов: Нейросеть упорно пыталась сделать всё не так, как я считал удобным и правильным. Я заставлял её по многу раз переписывать интерфейс и элементы программы, чтобы получить то, что соответствовало моему представлению об удобстве. В итоге вроде получился стильный интерфейс с легким закосом под эстетику игры Graveyard Keeper на начальном экране. (Капля забавы никогда не повредит)
Тормоза программы при отрисовке тысяч данных: при нахождении тысяч категорий дубликатов или попытке вывести в список 8 тысяч файлов рисунков всё падало, приходилось изучать механизмы решения этих проблем. (скорей всего не все решены)
Бесконечные баги: Они были на каждом шагу — в дизайне, в производительности, в расположении элементов. Казалось, не было места, где хотя бы что-то работало нормально.
В итоге для стабильности мы написали 85 автоматических тестов, чтобы после каждого нового исправления у нас не ломалось то, что уже работало. И, скорее всего, это ещё не конец.
В итоге получился: Media Keeper 📂✨
Программа состоит из четырех модулей, которые полностью закрыли мои потребности:
Сортировщик (Sorter): Поддерживает drag&drop для настройки каталогов. Показывает файлы из папки «Входящие». В один клик (или по горячим клавишам) я раскидываю файлы из входящей директории по удобному визуальному дереву папок. Есть быстрый предпросмотр картинок, видео и звуков прямо при наведении мышки, а также безопасное индивидуальное и групповое переименование с защитой от конфликтов имен. Поддерживается автопереименование файлов по шаблону при добавлении в каталоги.
Анализатор диска (Analyzer): Строит красивую интерактивную плиточную диаграмму TreeMap или круговую Sunburst. Наводишь на сектор — видишь размер папки и её содержимое. Можно «провалиться» вглубь каталогов и перемещать или удалять тяжелый мусор прямо на месте. И, конечно, есть интеграция с другими функциями программы.
Поиск дубликатов (Cleaner): Находит одинаковые файлы по их хэш-суммам (даже если они переименованы). И тут действует «железобетонное» правило безопасности: программа физически не позволит вам случайно удалить все копии файла — как минимум один оригинал («выживший») всегда останется нетронутым. А также реализован поиск по образцу (функция, которой мне всегда не хватало): можно искать дубликаты только тех файлов, которые лежат в конкретной папке, среди всех остальных директорий.
Редактор и Конвертеры (Editor): Быстрая обрезка видео, наложение размытия (блюра) на область экрана, пакетные конвертеры картинок, аудио и видео и многое другое. И да — то самое сжатие под лимит мессенджеров (до 10 МБ) теперь делается парой кликов.




Подули программы: Сортировка, Анализатор, Поиск дубликатов, Редактор и конвертер.
Полная приватность и Open Source
Для меня было критически важно, чтобы программа не лезла в интернет. Media Keeper работает на 100% локально. Она не собирает метаданные, не отправляет логи на сторонние сервера и вообще не требует сети (интернет нужен только один раз при первом запуске, чтобы скачать библиотеки FFmpeg для видеоредактора, если их у вас нет, но их можно установить и вручную).
Программа полностью бесплатна, в ней нет рекламы и скрытых подписок. Она не требует установки в систему — её можно спокойно переносить на флешке, запускать на любом компьютере, и всё будет работать из коробки (очень на это надеюсь).
Я выложил весь исходный код на GitHub — проект полностью открыт для всех. Надеюсь, кому-то из вас он будет полезен и тоже сэкономит кучу времени и нервов при наведении порядка на компьютере!
Программа переведена на русский и английский язык.
👉 Ссылка на исходный код и скачивание готовой версии: [Ссылка]
Буду рад вашим отзывам, конструктивной критике и идеям, что еще можно улучшить!







