Люблю я собирать эмоциональные видео, что бы там была атмосфера, передавалось состояние. Для этого нужно хорошее музыкальное сопровождение. Очевидно, что бесплатная музыка для этого не подходит, нужно что-то другое. Подкинуть в монтажку можно только скаченный трек.

В интернете есть сайты, боты, но это все либо криво работает, либо рекламы кучу пихает и прочее, вот я подумал, а чего бы не сделать что-то свое. Без смс и регистрации так сказать…

Как и в предыдущей статье, я открыл курсор, написал пару промптов, что бы понять, на чем же писать. Снова Python, ну ок.

Создание

AI нашел и предложил взять библиотеки python-telegram-bot и yandex-music. Накидал базовой код, который умел работать с парой команд, все это не взлетело, но после нескольких итераций и ручных исправлений заработало.

Руками нужно было проверить версии библиотек, взять что-то свежее и актуальное, потом в процессе ИИ еще несколько раз предлагал мне откатиться на старые версии, но я упорно отказывался, так же выпилить некоторый ненужный функционал, подебажить.

Бот есть, что-то работает, дальше надо нагенерить токены в @BotFather — тут все просто — можно погуглить, либо спросить у того же GPT. Интересней ситуация была с токенов для Яндекс.Музыки. Рецепт от бездушной машины был простой — создать приложение, получить токен по clientID, все подробно и понятно, но не работает. Просто Яндекс не дает доступ к музыке для сторонних приложений от слова совсем, только для своего родного. Так что после небольшого ручками ресерча (в народе гуглинье) я нашел описание как быть, немного ручных манипуляций с urlами и токен у меня. Ура.

Дальше отладка, проверка того, что работает, а что нет, исправление, уточнение, в основном через промпты. Функционал то в целом примитивный. Отладил локально, порадовался, что решение рабочее и закрывает мои потребности в удобстве и простоте.

Вывод в прод

Потом подумал, классно было бы иметь это все работающее без запуска. Может VPS? На моей памяти это не слишком дешевое удовольствие + настройки всякие, надо будет восстановить свои devops скиллы…

Открываю ChatGPT, прошу собрать мне доступные VPS серваки, и вижу набор с ценами по 300 руб/мес. Кайф! Не дорого. Изучаю инфу — действительно все так. Вспоминаю про своего хостера — минимальная тачка на 1 ядро cpu, 1gb ram, 10hdd стоит 210 руб/мес, дешевле чем хостинг, беру.

Выбираю раскатить там Ubuntu, что бы прям не ограничивать себя в настройках и кастомизациях (хотя и был вариант с докером), через 10 минут у меня рабочая тачка. Ставлю docker по советам того же GPT, закидываю туда образ, запускаю — its work!

BitrixVM — интересно, там код тоже надо на кириллице писать? Типо Сервер обновить --пакет-все -установить. Похоже на отдельный котел в аду)

А дальше думаю, как бы автоматизировать — самое простое bash скрипт. Написал, проверил локально, а дальше что бы не собирать руками, закидывать по scp, потом коннектиться по ssh выполнять набор команд. Так же прошу скрипт у СursorAI. Минут 10 — и все готово. Ну красота!

Потом я еще допилил пару админских фичей, сделал так, что бы можно было ходить в API без токена, что бы не палить и не компроментировать свой, все же закон надо чтить)

Можете протестить тут: https://t.me/YandexMusicSboychenkoBot

Summary

Что могу по итогу сказать про AI — разработчика он не заменит пока, все что я делал — я понимал, технологию, подходы, это помогало мне быстро ориентироваться в том, что оно мне генерит, исправлять, корректно писать промпты, подтверждать или нет изменения, что-то не применять, выполнять команды, которые мне предлагает ИИ. Именно в этом залог успешного применения.

И да, проект в целом не сложный, но огромная экономия именно на том, что можно не погружаться в синтаксис не слишком знакомого языка, тратить десятки часов, что бы запомнить детали, например а как мне в bash скрипте написать команду так, что бы она выполнялась на remote тачке, да еще и прокинуть туда переменные правильно. Экономия получается очень существенная

Что дальше

Можно прикрутить БД, сделать кеш, сделать обновление токена прямо из бота, если он протухнет, возможность подсунуть для каждого пользователя свой токен, собрать 100к пользователей, продать рекламу букмекерам, начать рассылать спам пользователям, поднять денег, похоронить проект. Шучу)

Ну и стандартно код на GitHub: https://github.com/sboychenko/yandex-music-bot/

P.S. Для самых внимательных, я засветил пароль в истории коммитов, shit happens ) Но так как я это пишу, его я уже поменял ;)

P.P.S. В отличии от кода, весь текст написан исключительно мной, без gpt, так что все очепятки тоже мои