Не самая интеллектуальная задача в моей карьере. Зато одна из тех, за которые мне сказали спасибо.
Как выглядела проблема
В компании есть внутренние базы и системы. В них заведены сотрудники. Человек увольняется, а запись остаётся.
Через год таких записей набирается прилично. Отчёты начинают врать, списки раздуваются, кто-то регулярно рассылает письма людям, которые тут давно не работают.
Чистили это руками. Периодически. Когда доходили руки, а руки доходили не часто.
Как я это делал
Скрипт на Python. Ничего сложного: сходить в источник, где отражается актуальный состав, сравнить со списком в системе, вычислить разницу, убрать лишнее.
Основная работа была не в коде. Основная работа была в выяснении, а какой источник считать правдой.
Оказалось, что списков сотрудников в компании несколько, и они не совпадают. В одном человек уже уволен, в другом ещё числится, в третьем его вообще никогда не было, потому что заводили вручную и забыли.
Вот эти уточнения заняли больше времени, чем сам скрипт.
Что получилось в итоге
Скрипт стал отрабатывать сам. Списки перестали расходиться. Задача, которая раньше периодически всплывала как неприятная рутина, пропала из повестки.
Строк кода там было немного. Пользы в человеко-часах вышло заметно больше.
Почему я про это вспоминаю
Потому что представление о профессии обычно совсем другое.
Когда человек идёт в аналитику или в разработку, он представляет себе сложные модели, красивые графики, важные решения. И расстраивается, когда первые полгода занимается вот таким.
А по факту очень значительная часть работы это именно оно. Найти рутину, которую делают руками, и убрать её.
Ежедневная отчётность, которая собиралась в Excel по два часа, превращается в автоматический расчёт. Показатели, которые кто-то пересчитывал вручную, начинают считаться сами.
Это звучит впечатляюще на собеседовании, как раз про такое спрашивают: что конкретно ты сделал и что после этого изменилось.
Какую самую скучную задачу вы автоматизировали и сколько времени это в итоге сэкономило?
Бывает так: нужно накатать длинный текст, отчет или ответить в мессенджере, а печатать лень. Обычный голосовой ввод либо требует включенного браузера/клиентского софта, либо сливает ваши данные в облака Яндекса/Гугла/Майкрософта. А если интернет отвалился — всё, пиши пропало.
Мне хотелось простого: нажал сочетание клавиш, надиктовал, отпустил — и текст сам вставился туда, где сейчас стоит курсор. В любое окно: хоть в Телеграм, хоть в Word, хоть в консоль.
Поскольку я не профессиональный разработчик на Python, я взял в охапку ИИ-редактор Cursor и за пару вечеров собрал BuzzMini.
🛠 Как это работает и что внутри?
В основе лежит faster-whisper — это оптимизированная и очень быстрая версия нейросети Whisper от OpenAI. Программа работает полностью локально и офлайн. Никакие аудиофайлы никуда не улетают.
Управление: По умолчанию зажимаете Left Ctrl + Space (можно поменять в настройках на сочетания с Ctrl, Win или Cmd), говорите в микрофон, отпускаете — текст мгновенно вставляется в активное окно.
Где работает: Приложение пилилось под Windows 10/11. В коде заложена теоретическая поддержка Linux и macOS, но на них я приложение еще вообще не тестировал — не на чем. Буду рад, если кто-то запустит из исходников и отпишется.
Ресурсы: Если у вас видеокарта от NVIDIA, то нейросеть будет летать прямо на GPU через CUDA (кушает от 1 до 8 ГБ видеопамяти в зависимости от выбранной модели). На слабых ПК можно запускать на процессоре (CPU).
⚠️ Ограничение по железу: На видеокартах AMD и Intel аппаратное ускорение (GPU) сейчас не работает. Программа на них запустится, но работать будет только на процессоре (CPU). Для этого лучше выбирать маленькие модели, чтобы не ждать расшифровку по полминуты.
Языки: Отлично распознает русский и английский языки, включая знаки препинания (в настройках можно жестко задать язык для точности).
📦 Модели на выбор и важный нюанс
При первом запуске через меню в трее можно скачать модель под свои задачи и железо — от крошечной Tiny (~75 МБ) до тяжелой Large-V3-Turbo.
Очень нужен ваш фидбек: на этапе тестов вылезал противный баг, когда скачивание моделей из интерфейса приложения намертво зависало или падало с ошибкой. По идее, я его полностью устранил в последнем обновлении, но мне критически важно проверить это на разном железе и провайдерах.
Если вы поставите программу и у вас что-то пойдет не так, не скачается модель или вылезет ошибка — пожалуйста, напишите об этом здесь в комментариях или создайте Issue на Гитхабе! Буду оперативно допиливать.
🚀 Как пощупать?
Проект полностью бесплатный, код открыт, никаких подписок и скрытых майнеров.
Собрал для удобства установщик (он сам подтянет нужные библиотеки для работы с видеокартой, чтобы вам не пришлось возиться с консолью и CUDA): 👉 Ссылка на GitHub (код и релизы):github.com
P.S. Проект развиваю исключительно в свободное время. Если софтина вам зайдет и сбережет пальцы от лишней писанины — буду благодарен за любую поддержку на чашку кофе или на покупку б/у карточки AMD для тестов!
К моему удивлению, предыдущий пост про установку Windows с участием гопоты* встретил очень бурную реакцию со стороны чаек-нейроненавистников. Друзья! Наш мир меняется с сумасшедшей скоростью, и чем дальше - тем быстрее меняются переменные. Всего за три последних месяца нейросети эволюционировали от "тупого решалы" в настоящего помощника.
В этой серии постов я приведу положительные примеры использования современного ИИ, которые действительно способны потеснить джунов.
гопота => Chat GPT
Чудо первое: Лендинги
Давным давно создание даже самых простых сайтов было уделом избранных гиков, которых в девяностые отлавливали, приковывали к батарее, и заставляли работать на Кабан Кабаныча.
Потом пришел ucoz и ему подобные шаблонизаторы сайтов, которые позволяли делать, пусть и не очень красивые, но вполне функциональные решения. Даже я, будучи школьником, пользовался ucoz.
И уже в наше время пришла Tilda! Что может быть лучше, чем собрать сайт самому, под свой бизнес? Самому подобрать описания, фотографии, товары. Веб разработчики больше не нужны!
Но что мы видим? Бизнес начинает нанимать людей, которые работают в Tilda, которая создавалась, чтобы бизнесу не надо было нанимать людей... И тут стало ясно, что проблема не в разработчиках. Предприниматели сами не знают, чего хотят, а потому нанимают человека.
Именно сегодня эта парадигма меняется - даже я, не будучи дизайнером, имею возможность делать вполне симпатичные сайты (пусть и не без огрехов, да):
Начнем с подготовки. В мире программирования и разработки есть расхожая фраза - "на такое тз и результат хз". Ваша задача - открыть блокнот / word / взять листочек и ручку или воспользоваться любым другим инструментом, после чего написать как можно больше подробностей о том, что вы хотите получить.
Помните, нейросеть - это помощник и полезный виртуальный сотрудник. Однако, каким бы крутым сотрудник ни был, если он не понимает, чего вы от него хотите, он ничего вам и не даст.
Пример: Мне требуется сделать сайт для моего проекта modelfood. Суть проекта в предложении ресторанам услуги по 3D печати блюд из их меню.
То есть, мы будем договариваться о встрече, приходить с 3D сканнером и другим оборудованием, снимать 3D сканы с реальных блюд. Далее, полученные модели печатаем на принтере и раскрашиваем.
Вот фотографии наших продуктов: Фото 1, Фото 2 Фото 3
Цены на продукты: Цена раз, Цена два, Цена три
Также, необходимо настроить яндекс и гугл метрику и чтобы сайт был оптимизированным для поисковиков telegram для связи: xxx max: xxx wa: xxx
А теперь возьмите этот текст и... Попросите нейросеть на его основе составить промт!
Небольшая сноска для тех, кто уже готов пойти в комментарии плеваться: я не призываю генерировать (о ужас) ЛЮБЫЕ сайты нейросетью. Тем более, использовать ИИ в чувствительных механизмах, как платежи, обработка персональных данных или что-то еще.
Однако, как показала практика - нейросети отличные дизайнеры. И простенький backend на fastapi им более чем по-зубам, даже без участия специалиста.
Сенсей, промт есть! Что дальше?
Следующий шаг - надо выбрать, кто нам будет делать сайт. Облачных нейросетей есть великое множество, и их отличия не столь очевидны. Некоторые - выдающиеся дизайнеры, другие - делают великолепные 3D модели (об этом в следующих постах), третьи - офигенно пишут код.
По своему скромному мнению, актуальному на 1 сентября 2026 года, могу сказать следующее:
За красивой картинкой - к GPT, за крутым кодом - к Claude. За методами обхода капчи для парсеров - к Deepseek
Так как первоочередная задача лендинга - быть красивым, мой выбор падает на Chat GPT с подпиской Plus в режиме "Работа" (модель Sol 5.6 Очень высокий).
Чем больше информации - тем лучше
А пока мы ждем сайт от нейросети, займемся другими, не менее важными вещами: покупкой домена и арендой VPS (компьютера, на котором будет размещаться программа).
По совету своего товарища, более опытного разработчика, для этих целей я использую сервис Timeweb.
P.S. Это не реклама, использовать можно любой другой, удобный вам хостинг. Пишу про тот, которым сам пользуюсь.
Находим в левом меню раздел "домены и SSL"; Потом, сюда
И за сравнительно небольшие деньги арендуем право называться в сети интернет
По сути, сейчас мы арендовали персональную строчку в телефонной книге, чтобы после настройки, когда кто-то искал, например, modelfood.ru, его отправляло не абы куда, а на конкретный компьютер, который показывает кино наш сайт. Позже, мы к этому еще вернемся.
Теперь, надо арендовать сам компьютер, который послужит сервером для сайта.
В левом меню - облачные серверы; Добавляем
После появления у меня второго компьютера (коробочка от Genmachine), я уже давненько не лазил по облачным серверам. Запомните следующую вещь - компьютеру не обязательно отрисовывать красивый интерфейс, чтобы работать. А порой, чтобы лишний раз не "жрать" ресурсы, лучше, когда интерфейса, кроме консоли, нет.
Именно на этом моменте у многих новичков начинается хтонический ужас и паника. Но не бойтесь - с вами я и chat GPT:))
Облачные сервисы, обычно, идут по двум сценариям - выдают вам ip адрес компьютера, пользователя и пароль, чтобы вы могли подключиться напрямую со своего, и/или предлагают браузерную версию консоли (которой очень неудобно пользоваться). Поэтому, более предпочтительный вариант первый.
Сенсей, мне на почту прислали ip, пользователя и пароль. Куда это вводить?
Как и обещал, работаем через консоль. Открываем терминал (в случае Windows, это пкм по значку винды и в появившемся меню тыкаем на "Терминал" или "Powershell").
Нас приветствует вот такое окошко
Выполним проверку на прямоту ваших рук - подключимся по протоколу ssh к цели.
В случае с моим компьютером, находящимся в локальной сети, команда выглядит так:
Не забудьте написать yes, чтобы вас пустило дальше и укажите свой пароль. Буквы писаться не будут, терминал их специально скрывает! Это нормально!
Если все сделано правильно, вас встретит приветственное окошко
Примерно такое
Поздравляю, вы смогли подключиться к арендованному компьютеру, находящемуся где-то далеко от вас. В дальнейшем, нам потребуется через терминал разместить там сайт. А пока вернемся к нейросети
Если вы уже знакомы с python fastapi, можно проверить уже на нашем компьютере, что получилось.
Верхушка
Листаем
Листаем
Листаем
Низ
Вышло даже лучше, чем я думал. Честно, даже меня GPT смог удивить, при том, что я не дизайнер, от слова совсем.
Сенсей, ну вот есть домен, есть VPS, есть сайт. А как это все склеить вместе?
А тут нам поможет тот же GPT:)
В тот же чат пишем:
А теперь помоги мне разместить его на сервере, пришли команды. Нужно также настроить сертификат. На сервере установлена Ubuntu. Домен сайта - supersajt.com
Ну и дальше по инструкции.
Как говорят водители о себе: "Знаешь, как называется прокладка между рулем и сиденьем?", здесь мы - прокладка между ИИ и терминалом:)
CTRL + C, CTRL + V в помощь. Возникают вопросы или ошибки? Копируем содержимое терминала, отправляем нейросети в тот же чат. Профит.
Итого, сервер работает. Неплохо. Но сайт пока не открывается.
Вишенка на торте - настроить DNS.
По предыдущей инструкции, заходим в раздел "Домены и ssl" на хостинге, находим свой домен, открываем раздел DNS. Наша задача - оформить запись в телефонной книге в духе:
Ищешь Василия Ивановича? -> Иди по адресу пр. Ленина 87 и крикни под окнами "нюанс".
Советую прямо на этом этапе еще дополнительно получить инструкцию от нашего нейропощника, он вам прям на пальцах объяснит, куда тыкать.
Но если настройка DNS вам не впервой, создаем A запись, указываем IP нашего сервера. И подождать.
Тут важный момент - чтобы получить сертификат, и при подключении по http(!)S вам браузер не говорил гадости, следуйте инструкции GPT.
Сначала разворачиваете сервер
Потом DNS
Потом Certbot
Certbot - программа, которая помогает автоматически получить и обновлять бесплатный TLS-сертификат. Сертификат позволяет браузеру проверить, что он действительно подключился к владельцу указанного домена, а также зашифровать соединение между пользователем и сайтом.
Итого
Если все сделано верно, помучавшись ~3 часа (это если в первый раз), вы получаете очень симпатичный лендинг, который при иных обстоятельствах стоил бы приличных денег. Мои поздравления!
Однако!
Друзья, запомните. Главное правило использования нейросетей - это хотя бы на 50% понимать, что именно она делает. Я даже больше скажу, она способна вас научить это делать и разложить все по полочкам.
Тем не менее, если вы видите в ИИ кнопку "БАБЛО" или "сделай все за меня", будьте готовы к приключениям, как в моем предыдущем посте, посвященном переустановке windows:)
Потом
В следующем посте поделюсь опытом 3D моделирования под фотополимерную печать с использованием облачных нейронок.
До связи!
Забавная информация от GPT: сколько этому учиться?
По моему опыту, если у вас есть личная жизнь, умножайте смело на 3 =D
Работа на железной дороге — это стабильность. Так мне всегда говорили старшие родственники. И я верил. Но у этой стабильности есть обратная сторона, о которой не принято громко говорить: ты буквально живешь на работе, гробишь здоровье в ночные смены или на бесконечных дежурствах, а получаешь за это столько, что едва хватает на самое необходимое.
В какой-то момент я посмотрел на свою расчетку, потом на спящего ребенка, которого я снова не успел увидеть бодрствующим из-за графика, и понял: хватит. Железка забирает всё мое время, но взамен дает копейки. Я хочу видеть, как растет моя семья, хочу работать в тепле из дома и сам управлять своей жизнью.
Так в моей жизни появился Python (Пайтон).
Точка кипения: почему РЖД больше не вывозит
Кто работал в структуре РЖД, тот меня поймет. Ответственность огромная, спрос жесткий, инструкции на каждый чих, а индексация зарплаты — это просто смех. Ты можешь упахиваться, брать дополнительные смены, но выше потолка своей должности не прыгнешь.
Последней каплей стало понимание, что я превращаюсь в робота. Пришел, отработал, приполз домой, уснул. Семью я видел в основном на фотографиях в телефоне. Зачем нужна такая «стабильность», если жизнь проходит мимо? Мне захотелось кардинальных перемен, и я начал искать выход. Выходом оказалась удаленка.
Почему именно Python?
В программировании я был полным нулем. Локомотивы, рельсы, графики движения — это я понимал. Код — нет. Погуглив, я узнал, что Пайтон — самый доступный язык для новичков. Его синтаксис называют «человеческим». Он похож на простые предложения на английском.
Я подумал: «Если люди в моем возрасте переучиваются, то чем я хуже? На железке и не такие инструкции зубрили». И начал пробовать.
Обратная сторона учебы: код вместо сна
Конечно, в рекламе курсов всё выглядит красиво: «учись по 15 минут в день за чашкой кофе». В реальности всё гораздо жестче. При моем суровом графике на РЖД свободного времени не было вообще.
Учить язык приходилось в основном по ночам. Представьте: отпахал тяжелую смену, пришел домой, уложил ребенка спать, в доме воцарилась тишина — и вместо того, чтобы наконец-то лечь в кровать, ты открываешь ноутбук.
Глаза слипаются, в чашке уже третий кофе, а ты сидишь до двух-трех часов ночи и пытаешься понять, почему эта чертова функция не работает. Было тяжело? Не то слово. Иногда казалось, что я просто сойду с ума от недосыпа. Но я понимал, ради чего я это делаю. Если бы не поддержка жены, которая видела мои ночные посиделки и молча приносила бутерброды, я бы, наверное, сдался.
Первые победы
Сначала голова просто взрывалась от всех этих переменных, циклов и списков. Казалось, что это темный лес. Напишешь пару строк — всё ломается, программа выдает кучу ошибок. Руки опускались, хотелось всё бросить и вернуться к привычной, хоть и тяжелой рутине.
Но когда после очередной бессонной ночи я написал своего первого Telegram-бота, который по нажатию кнопки выполнял команду, внутри как будто тумблер щелкнул. Ребята, это непередаваемое чувство. Ты сам, своими руками создал что-то рабочее на компьютере! В этот момент я понял, что обратного пути на железку у меня нет.
Моя цель
Я твердо решил увольняться с РЖД. Сейчас я активно нарабатываю портфолио, беру первые заказы на фрилансе (пусть пока небольшие, но это уже реальные деньги за мой код!) и двигаюсь к полноценной удаленной работе.
Мой рабочий день больше не будет начинаться в 5 утра в любую погоду. Я хочу просыпаться, спокойно пить кофе с женой, провожать ребенка в школу и садиться за работу в уютной комнате.
Если вы тоже застряли на тяжелой работе с низкой зарплатой и думаете, что менять что-то уже поздно — поверьте моему опыту. Трудно только начать. Но когда на кону стоит благополучие вашей семьи и ваша собственная жизнь — оно того стоит.
** Есть среди моих читателей те, кто тоже учился по ночам ради смены профессии? Поделитесь своими историями в комментариях, давайте поддержим друг друга!**
Claude finished the responseКлод код ( терминал)может подключиться к андроид студии и править код?Searched the webSearched the webДа, может — и есть два способа.Способ 1: официальный плагин Claude Code для Android StudioAndroid Studio построен на IntelliJ Platform, и Claude Code имеет плагин для JetBrains IDE (куда входит Android Studio).Что даёт:Быстрый запуск: Cmd+Esc (Mac) / Ctrl+Esc (Windows/Linux) — открывает Claude Code прямо из редактораИзменения показываются не в терминале, а во встроенном diff-viewer Android Studio (как при code review)Выделенный код/открытые вкладки автоматически передаются в контекст ClaudeCmd+Option+K / Alt+Ctrl+K — вставить ссылку на файл (
)Установка: Settings → Plugins → Marketplace → искать "Claude Code" → Install → перезапустить Android Studio.Способ 2: просто терминал внутри Android StudioОткрываешь встроенный терминал (Alt+F12), внутри папки проекта пишешь
claude
, и он видит и правит файлы проекта напрямую — без плагина вообще. Многие используют именно так, это проще и стабильнее (плагин пока в бете, некоторые жалуются, что это скорее обёртка над CLI, чем глубокая интеграция).
Всем привет! В связи с частыми отключениями «свободного» интернета в наших краях (СПб) и включением белых списков, от которых с каждым днем спасает все меньше и меньше сервисов, решил я озадачиться скачиванием своих любимых видео из Youtube на локальный носитель. Но при этом не хочется оставлять компьютер включенным, а процесс подгрузки новых видео сделать автоматическим. Тут я вспомнил, что на мой любимый Keenetic Hopper (KN-3811) в рамках поддержки OPKG можно ставить исполняшки на python, в том числе популярную утилиту для скачивания видео с YT – yt-dlp.
Значит так, что нам понадобится:
Роутер Keenetic с USB портом и настроенным прокси/VPN (по понятным причинам настройку в этой статье обсуждать не будем);
Флешка хотя бы в 1Гб;
Жесткий диск, куда будем качать видео (SSD, HDD с переходником или просто большая флешка);
USB-hub для подключения флешки и жесткого диска одновременно (если USB порт всего 1);
Около часа времени.
Также нам понадобятся следующие программы/плагины:
PuTTY для подключения к роутеру по SSH (вроде можно подключаться через родной виндовый power shell, но я не пробовал);
Расширение для хрома «Get cookies.txt LOCALLY» (в рамках статьи будет использоваться браузер Google Chrome, но оно вроде на всех хромоподобных браузерах одинаковое);
DiskGenius для форматирования флешки в ext4;
Установщик Entware для вашего роутера.
ГОТОВИМ ФЛЕШКУ
Скачиваем и устанавливаем DiskGenius (можно с оф сайта не крякнутый, функций нам хватит) и форматируем с его помощью флешку в ext4.
Кнопка форматирования
Выбор файловой системы для флешки
После успешного форматирования подключаем флешку через USB-хаб (это важно) к роутеру.ГОТОВИМ РОУТЕР
Для начала советую обновиться до актуальной версии прошивки на роутере (у меня на момент настройки версия 5.1.1). Это можно сделать в разделе «Управление» - «Настройки системы». Там же нужно догрузить необходимые компоненты (кнопка «Изменить набор компонентов»), а именно:
Файловая система ext;
Утилиты для файловой системы ext;
Поддержка открытых пакетов;
Модули ядра для поддержки файловых систем;
Общий доступ к файлам и принтерам по протоколу SMB;
Сервер SSH.
Еще раз напомню, что ютуб сам по себе должен быть доступен для просмотра. Либо нативно, либо через иные способы, но сам роутер должен видеть ютуб.
После установки всех компонентов и перезагрузки роутера глянем, определилась ли флешка, перейдя в раздел «Управление» - «Накопители и устройства». Скорее всего будет написано «Требуется действие». Нажмите на флешку и проведите ее инициализацию (кинетик сам форматнет ее еще раз). После того, как флешка станет активна, можно начать установку Entware (это легковесная версия OpenWRT для Keenetic). Для этого качаем с официального сайта нужный нам архив.
Для 4G (KN-1212), Omni (KN-1410), Extra (KN-1710/1711/1713), Giga (KN-1010/1011), Ultra (KN-1810), Viva (KN-1910/1912/1913), Giant (KN-2610), Hero 4G (KN-2310/2311), Hopper (KN-3810) и Zyxel Keenetic II / III, Extra, Extra II, Giga II / III, Omni, Omni II, Viva, Ultra, Ultra II
Для Ultra SE (KN-2510), Giga SE (KN-2410), DSL (KN-2010), Skipper DSL (KN-2112), Duo (KN-2110), Ultra SE (KN-2510), Hopper DSL (KN-3610) и Zyxel Keenetic DSL, LTE, VOX
Если вашего роутера тут нет, то придется поискать в гугле по запросу «скачать entware для keenetic KN-****», где **** - модель вашего Keenetic-а.
Заходим на роутер по 192.168.1.1 (или какой там у вас), переходим в раздел «Управление» - «Накопители и устройства» и выбираем свою флешку. В корне флешки создаем папку install если ее нет
Создать папку на флешке
и кнопкой «Загрузить файл в выбранную папку» загружаем скачанный ранее архив с Entware
Загружаем архив с Entware в папку install
После загрузки переходим в раздел «Управление» - «OPKG» и в выпадающем списке «Накопитель» выбираем нашу флешку
Вот эта вот с EXT4 в начале
Теперь можно перейти в раздел «Управление» - «Диагностика» и по кнопке «Журнал» открыть журнал событий роутера. Если все правильно, то мы увидим процессы установки (нет у меня скрина журнала, к сожалению). Когда появится строка «"Entware" installed!» можно продолжать.
Итак, флешка и Entware у нас есть. Теперь нужно подключить хранилище. Отформатируйте свой жесткий, который хотите подключить к роутеру, на ПК. Советую выбирать размер кластера в 64Кб, это максимум, который поддерживает роутер и достаточно большой размер для сокращения кол-ва операций чтение/запись.
В итоге у вас должны появиться в накопителях три устройства: сам роутер, флешка с Entware и наше будущее хранилище.
Проверяем, что всё на своих местах
Если роутер отказывается работать с HDD из коробки, то инициализируйте его как это было сделано ранее с флешкой. Тогда роутер сам отформатирует (обратите внимание) жесткий диск в формате ext4 (ему в нем удобнее).
Далее откроем доступ к хранилищу по SMB. Перейдем в раздел «Управление» - «Приложения». Нам кликните на «СЕРВЕР SMB» и убедитесь, что ваши новые хранилища (жесткий диск и флешка) смонтировались.
Анонимный или парольный доступ - решать вам
Если нет, то нажмите «Добавить общий ресурс» и выберите нужный вам жесткий диск из списка и нажмите кнопку «Выбрать». После этого в проводнике компьютера (для тех, кому за 30 – «Мой компьютер»), в разделе сеть должен появиться ваш кинетик, а в нем – смонтированный жесткий диск.
На этом базовый минимум настройки роутера закончен. О том, как настраивать обходы, я рассказывать не буду. У меня в тот момент стоял WireGuard, так что буду в рассказе опираться на него.
Перейдите на ютуб, авторизуйтесь, откройте Get cookies через верхнее меню браузера или через его общее меню и нажмите «Export»
Выглядит примерно так
Сохраните файл куки и переименуйте его в cookies.txt
Теперь создайте файл archive.txt и файл chan.txt. В последний запишите ссылки на каналы, которые хотите скачивать (по одному в строчку).
Кусочек моего файла
Положите файлы cookies.txt, archive.txt и chan.txt в папку роутера Сеть/Keenetic/*ВАШ_ЖЕСТКИЙ_ДИСК*/Youtube/
Вроде все. Все файлы готовы для работы. Переходим к настройке самого роутера и скачивания (остальной текст я заимствовал у гемини, который помогал мне с первоначальной настройкой, но внес некоторые правки и уточнения).
Шаг 1: Настройка маршрутизации в веб-интерфейсе Keenetic
Чтобы направить трафик роутера через VPN, а домашние устройства оставить на прямом интернете, перестроим логику политик:
Зайдите в веб-интерфейс Keenetic ➔ Сетевые правила ➔ Приоритеты подключений.
Вкладка Основная политика (в ней по умолчанию живут все системные процессы роутера и Entware): оставьте галочку только напротив вашего WireGuard-подключения. Все остальные галочки (основной провайдер) снимите.
Нажмите кнопку + Добавить профиль в верхнем правом углу. Назовите его Домашняя сеть. Внутри этого профиля поставьте галочку только напротив вашего основного провайдера (интернета). Сохраните.
Перейдите на вкладку Применение профилей (вверху страницы).
Найдите ваш основной домашний сегмент (Домашняя сеть / Домашний сегмент) и перетащите его из профиля «Основной» в созданный профиль Домашняя сеть. Нажмите Сохранить.
Результат: Компьютеры и телефоны работают напрямую на максимальной скорости провайдера, а сам роутер и его фоновые службы (включая загрузчик) намертво заперты внутри WireGuard.
Шаг 2: Установка системных зависимостей в Entware
Подключитесь к Keenetic по SSH через установленный ранее PuTTy (стандартно 192.168.1.1 и порт 222; стандартные логин и пароль root и keenetic соответственно)
Кратко как подключиться по SSH через PyTTY к роутеру
и последовательно выполните команды для разворачивания окружения:
Обновляем репозиторий пакетов Entware:
opkg update
Устанавливаем Python 3 и менеджер пакетов pip:
opkg install python3 python3-pip
Устанавливаем ffmpeg для склейки видео и аудио дорожек высокого разрешения:
opkg install ffmpeg
Устанавливаем QuickJS — микро-движок JavaScript:
opkg install quickjs
Устанавливаем службу планировщика задач (cron):
opkg install cron
Разрешаем запуск службы cron и поднимаем её в фоне:
chmod +x /opt/etc/init.d/S10cron
/opt/etc/init.d/S10cron start
Шаг 3: Установка и обновление пакета yt-dlp
Устанавливаем сам парсер вместе с официальным пакетом скриптов дешифрации сигнатур (yt-dlp-ejs) напрямую из библиотеки Python:
python3 -m pip install -U "yt-dlp[default]"
Шаг 4: Подготовка рабочих файлов на жестком диске
Для начала узнаем под каким именем смонтирован HDD в системе:
df -h
В столбце «Size» ищем наиболее подходящее под нашу железку значение (у меня это 16.4Т), а рядом с ней в столбце “Mounted on” находим имя смонтированного тома.
У меня это вон тот здоровяк на 16,4Тб
Запоминаем его.
Создайте на вашем подключенном жестком диске целевую папку (в примере UUID диска — BE5895475894FEF9):
mkdir -p /tmp/mnt/BE5895475894FEF9/Youtube/
Поместите внутрь созданной папки два файла:
cookies.txt — файл в формате Netscape cookie file, экспортированный из вашего браузера на ПК (с помощью расширения вроде Get cookies.txt LOCALLY). Он необходим утилите для авторизации в вашем аккаунте.
chan.txt — резервный текстовый файл со ссылками на каналы (по одной на строку), если захотите качать конкретный список, а не весь фид подписок.
Шаг 5: Создание финального очищенного скрипта загрузки
Создайте чистый Bash-скрипт в защищенной системной папке роутера, которая поддерживает обход ограничений NTFS-дисков (на случай, если HDD все-таки подтянулся в NTFS, а не в ext4) (noexec):
Скрипт будет скачивать видео в формате 720р, а если его нет, то в лучше доступном. Если вы хотите выбрать другие варианты, то замените 398+140 на один из списка
📹 Видео (первая цифра)
Форматы видео
🎧 Аудио (вторая цифра)
Форматы аудио
То есть видео в 4К (кодек H264) с максимальным звуком (при их наличии) будет 266+251, а строка примет вид
-f "266+251/bestvideo+bestaudio" \
Примечание: пробелы в начале строк важны, потому что python относится к ним ревностно.
Лог выполнения будет в реальном времени записываться в файл cron_daily.log на вашем жестком диске.
После запуска можно зайти в сетевую папку на кинетике в проводнике и проверить как лог, так и появление нужных нам видео в соответствующих папках.
Скрипт можно перенастроить на скачивание только новых видео (например, чтобы скачивать их ночью, а днем смотреть без задержки в 4К уже скачанное, если скорость интернета не позволяет смотреть онлайн или если к утру включат БС), настроить на скачивание сразу всех подписок (а не выборочных каналов) или на удаление очень старых видео. Простора для творчества масса, но статья была о базовой базе. Надеюсь, у вас тоже получится и мое потраченное время имеет смысл хоть для кого-то. Всем удачи в настройке! Если есть вопросы – задавайте.
P.S.: не уверен, что правильно выбрал сообщество, поправьте, если ошибся.