Files
quixotic/README.md
Andrey Kondratev 98787a382e does not work
2025-08-27 18:37:44 +05:00

186 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎵 Quixotic - YouTube to MP3 Telegram MiniApp
Telegram miniapp для поиска музыки на YouTube и конвертации в MP3.
## Возможности
- 🔍 Поиск видео на YouTube
- 🎵 Конвертация в MP3 с помощью FFmpeg
- 📱 Telegram Web App интерфейс
- 💾 SQLite база данных
- 📊 История поиска
- 🤖 Telegram Bot интеграция
## Установка
### 1. Клонирование и установка зависимостей
```bash
git clone <repository-url>
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 <repository-url>
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