История разработчика
1 пост
1 пост
Писал тут про бота, который переносит плейлисты между сервисами. Собрал кучу отзывов, спасибо всем, кто попробовал. Вот что изменилось.
Теперь работает между всеми сервисами в обе стороны
Раньше было только Яндекс - Spotify. Теперь бот переносит в любом направлении:
- Яндекс.Музыка - Spotify
- Spotify - Яндекс.Музыка
- ВК - Spotify
- Spotify - ВК
- ВК - Яндекс.Музыка
- Яндекс.Музыка - ВК
То есть можно переехать с Яндекса на Spotify, с ВК на Яндекс, обратно - куда угодно. Порядок треков сохраняется, пароли вводить не нужно, только ссылка.
ВК теперь нормально работает
Раньше с ВК был костыль: треки приходилось присылать списком текстом, потому что официальный API для аудио закрыт, а неофициальные токены получать всё сложнее. Теперь доделал нормальный перенос по ссылке - как с Яндексом.
Оптимизация
Прошёлся по внутренностям: кэш стал агрессивнее, очередь запросов работает ровнее, меньше холостых обращений к Spotify. Стало быстрее и стабильнее.
Переезжаю с домашнего ПК на хостинг
До этого всё крутилось на обычном домашнем компьютере. Комп шумит, свет выключат — всё встанет. Надоело. Сейчас готовлю нормальный хостинг, чтобы бот работал круглосуточно и не зависел от того, включён у меня комп или нет.
Что дальше
Хочу докрутить матчинг - особенно ремиксы и сборники, там чаще всего не находит.
Если кому надо - бот тут: @TrackShift_Ru_bot
Интересно, у кого что не переносилось из последнего. Особенно ремиксы и русский рэп.
Решил наконец перебраться на Spotify.
Плейлистов много, переносить руками - неделя жизни. Сервисы переноса просят логин от аккаунта на левом сайте. Пароль отдавать непонятно кому не хотелось.
В итоге сел и написал бота. Кидаешь ссылку на плейлист - получаешь готовый в Spotify. Без паролей. Порядок треков сохраняется.
Пока делал, столкнулся с кучей всего:
- Spotify в режиме разработки пускает только заранее внесённых людей. Пришлось сделать одного служебного бота, который создаёт плейлисты у себя, а ты добавляешь их к себе.
- Лимиты запросов нигде не прописаны. Сделал очередь и кэш, чтобы популярные треки искались один раз.
- Яндекс поменял формат ссылок, старая библиотека их не понимает. Пришлось читать через API напрямую.
- ВК закрыл аудио API. Долго выкручивался через список текстом, потом всё-таки доделал нормальный перенос по ссылке.
Треки ищутся сначала по ISRC, потом по названию и исполнителю с проверкой длительности, в крайнем случае нечёткое сравнение.
Стек: Python, aiogram 3, SQLAlchemy, SQLite, httpx, rapidfuzz.
Если кому надо - бот тут: @TrackShift_Ru_bot