# 🎵 Quixotic - YouTube to MP3 Telegram MiniApp Telegram miniapp для поиска музыки на YouTube и конвертации в MP3. ## Возможности - 🔍 Поиск видео на YouTube - 🎵 Конвертация в MP3 с помощью FFmpeg - 📱 Telegram Web App интерфейс - 💾 SQLite база данных - 📊 История поиска - 🤖 Telegram Bot интеграция ## Установка ### 1. Клонирование и установка зависимостей ```bash git clone cd quixotic yarn install ``` ### 2. Установка FFmpeg **macOS:** ```bash brew install ffmpeg ``` **Ubuntu/Debian:** ```bash sudo apt update sudo apt install ffmpeg ``` **Windows:** Скачайте с [ffmpeg.org](https://ffmpeg.org/download.html) ### 3. Создание Telegram бота 1. Напишите [@BotFather](https://t.me/BotFather) в Telegram 2. Создайте нового бота: `/newbot` 3. Получите токен бота 4. Настройте Web App: `/newapp` ### 4. Настройка окружения ```bash cp .env.example .env ``` Отредактируйте `.env`: ```env TELEGRAM_BOT_TOKEN=your_bot_token_here WEB_APP_URL=https://your-domain.com PORT=3000 ``` ## Запуск ### Разработка ```bash yarn dev ``` ### Продакшн ```bash yarn start ``` ## Структура проекта ```bash quixotic/ ├── src/ │ ├── server.js # Express сервер │ ├── bot.js # Telegram бот │ ├── youtube.js # YouTube API │ └── database.js # SQLite база данных ├── public/ │ ├── index.html # Web App интерфейс │ ├── style.css # Стили │ └── script.js # JavaScript ├── database/ # SQLite файлы ├── downloads/ # MP3 файлы └── package.json ``` ## API Endpoints - `POST /api/search` - Поиск видео - `POST /api/convert` - Конвертация в MP3 - `GET /downloads/:filename` - Скачивание файлов - `GET /health` - Проверка здоровья ## База данных SQLite с таблицами: - `users` - пользователи Telegram - `search_history` - история поиска - `downloads` - загруженные файлы ## Деплой ### Heroku 1. Установите [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) 2. Создайте приложение: ```bash heroku create quixotic-app ``` 3. Установите buildpacks: ```bash heroku buildpacks:add --index 1 https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git heroku buildpacks:add --index 2 heroku/nodejs ``` 4. Настройте переменные: ```bash heroku config:set TELEGRAM_BOT_TOKEN=your_token heroku config:set WEB_APP_URL=https://quixotic-app.herokuapp.com ``` 5. Деплой: ```bash git push heroku main ``` ### VPS (Ubuntu) ```bash # Обновление системы sudo apt update && sudo apt upgrade -y # Установка Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # Установка FFmpeg sudo apt install ffmpeg -y # Клонирование проекта git clone cd quixotic yarn install # Настройка PM2 sudo npm install -g pm2 pm2 start src/server.js --name quixotic pm2 startup pm2 save # Nginx (опционально) sudo apt install nginx -y # Настройте reverse proxy на порт 3000 ``` ## Мониторинг ```bash # Логи сервера pm2 logs quixotic # Статус pm2 status # Перезапуск pm2 restart quixotic ``` ## Лицензия MIT License