ๅบไบ YouTube ่ง้ข็ๆบ่ฝ้ฎ็ญ็ณป็ป๏ผ้็จ RAG (Retrieval-Augmented Generation) ๆถๆใ
๐ ็ไบง็ฏๅข้จ็ฝฒ: ๆฅ็ ็ไบง็ฏๅข้จ็ฝฒๆๅ
โจ RapidAPI ้ๆ: ๅฎๅ จ็ป่ฟ YouTube bot ๆฃๆต - ๆฅ็ RapidAPI ้ๆๆๅๆฅๅ
- โ ่ง้ขๅบ็ฎก็: ๆทปๅ YouTube ่ง้ข URL๏ผ่ชๅจๆๅปบ็ฅ่ฏๅบ
- โ ๆบ่ฝ้ฎ็ญ: ๅบไบ่ง้ขๅ ๅฎน็่ฏญไนๆ็ดขๅ AI ้ฎ็ญ
- โ ่ง้ขๆบฏๆบ: ๆไพ็ฒพ็กฎ็่ง้ข็ๆฎตๅผ็จๅๆถ้ดๆณ่ทณ่ฝฌ
- โ ๅค่ฝฎๅฏน่ฏ: ๆฏๆไธไธๆ็่งฃ็่ฟ็ปญๅฏน่ฏ
- โ ้ๆตไฟๆค: Redis ้ๆต้ฒๆญขๆปฅ็จ (3 ่ง้ข/ๅฐๆถ/IP)
- โ Docker ้จ็ฝฒ: ไธ้ฎๅฏๅจๆๆๆๅก
- โ ๅคๅฑ้็บง็ญ็ฅ: ่ชๅจๅๆขๆไฝณๆฐๆฎๆบ
็ณป็ป้็จๆบ่ฝ้็บง็ญ็ฅ๏ผ็กฎไฟๆ้ซๆๅ็๏ผ
- โ ๆ ้ Cookies - ่ชๅจ่ฎค่ฏ
- โ ็ป่ฟ Bot ๆฃๆต - ๅไธ API ๅฎๅ จ้ฟๅ ๅฐ็ฆ
- โ ็จณๅฎๅฏ้ - SLA ไฟ้
โ ๏ธ ๆ้่ฎก่ดน - ้่ฆ RapidAPI ่ฎข้
้ ็ฝฎ:
RAPIDAPI_KEY=your-rapidapi-key
RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com
- โ ๅฎๆน API - ๅฏ้ ็จณๅฎ
- โ ๅ ่ดน้ ้ข - 10,000 units/day
- โ ๆ ๅญๅนๅ ๅฎน - ไป ๅ ๆฐๆฎ
- โ ๅผๆบๅ ่ดน
โ ๏ธ ้่ฆ Cookies - ้ๅฎๆๆดๆฐโ ๏ธ Bot ๆฃๆต้ฃ้ฉ - ๅฏ่ฝๅคฑ่ดฅ
- โ ๆปๆฏๅฏ็จ - ้ณ้ข่ฝฌๅฝ
- โ ๆๆฌ้ซ - OpenAI ่ฝฌๅฝ่ดน็จ
- โ ้ๅบฆๆ ข - ้ไธ่ฝฝ้ณ้ข
่ชๅจ้็บงๆต็จ:
RapidAPI โ YouTube API โ yt-dlp + Cookies โ Whisper
โญไธป่ฆ ๅค็จ ๆฌก็บงๅค็จ ๆ็ปๅค็จ
- Framework: FastAPI + Python 3.11
- Database: PostgreSQL 15 + pgvector (ๅ้ๆฐๆฎๅบ)
- Task Queue: Celery + Redis
- AI: OpenAI API (Embeddings + GPT-4 + Whisper)
- Video:
- RapidAPI YouTube Media Downloader (ไธป่ฆ) โญ
- YouTube Data API v3 (ๅค็จ)
- yt-dlp (ๆฌก็บงๅค็จ)
- Framework: React 18 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Container: Docker + Docker Compose
- Video Processing: RapidAPI / yt-dlp / youtube-transcript-api
- Audio Transcription: OpenAI Whisper API
็กฎไฟๅทฒๅฎ่ฃ :
- Docker & Docker Compose
- Node.js 20+ (ๅผๅ็ฏๅข)
- Python 3.11+ (ๅผๅ็ฏๅข)
cp .env.example .env
็ผ่พ .env
ๆไปถ๏ผๅกซๅ
ฅๅฟ
่ฆ็้
็ฝฎ๏ผ
ๅฟ ้้ ็ฝฎ:
# OpenAI (ๅฟ
้)
OPENAI_API_KEY=sk-proj-...
# Database (่ชๅจ้
็ฝฎ)
DATABASE_URL=postgresql+asyncpg://admin:gw123123@localhost:5432/video_qa
REDIS_URL=redis://localhost:6379/0
ๆจ่้ ็ฝฎ (้ๆฉไธ็ง):
้้กน A: RapidAPI (ๆจ่ - ๆไฝณๆนๆก) โญ
# RapidAPI - ็ป่ฟๆๆ bot ๆฃๆต๏ผๆ ้ cookies
RAPIDAPI_KEY=your-rapidapi-key # ไป https://rapidapi.com ่ทๅ
RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com
้้กน B: YouTube Data API (ๅ ่ดนๅค็จ)
# YouTube Data API v3 (ๅ
่ดนไฝๆ้
้ข้ๅถ)
YOUTUBE_API_KEY=your-youtube-api-key # ไป Google Cloud Console ่ทๅ
้้กน C: Cookies (ๆๅๅค็จ)
- ้่ฆๆๅจ้ ็ฝฎๆต่งๅจ cookies (่งไธๆ)
- ๅฎนๆ่ขซ bot ๆฃๆต
- ้่ฆๅฎๆๆดๆฐ
-
่ทๅ API Key
- ่ฎฟ้ฎ RapidAPI YouTube Media Downloader
- ่ฎข้ ่ฎกๅ (ๆๅ ่ดน่ฏ็จ)
- ๅคๅถ API Key
-
้ ็ฝฎ็ฏๅขๅ้
RAPIDAPI_KEY=your-api-key-here RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com
-
ไผๅฟ
- โ ๆ ้ Cookies
- โ ้ถ็ปดๆคๆๆฌ
- โ ๅฎๅ จ็ป่ฟ bot ๆฃๆต
- โ ๅไธ SLA ไฟ้
่ฏฆ็ปๆๆกฃ: RAPIDAPI_INTEGRATION_SUCCESS.md
ๅฆๆๅทฒ้ ็ฝฎ RapidAPI ๆ YouTube Data API๏ผๅฏ่ทณ่ฟๆญคๆญฅ้ชค
Windows:
# ไป Edge ๅฏผๅบ (้ป่ฎค)
export_cookies.bat
# ๆไป Chrome ๅฏผๅบ
export_cookies.bat chrome
Linux/macOS:
# ไป Chrome ๅฏผๅบ
python export_cookies.py chrome
# ไป Edge ๅฏผๅบ
python export_cookies.py edge
้ๅฏๅฎนๅจ:
docker-compose restart api celery_worker
- ๅฎ่ฃ ๆต่งๅจๆฉๅฑ EditThisCookie
- ็ปๅฝ YouTube๏ผ่ฎฟ้ฎไปปๆ่ง้ข
- ๅฏผๅบ cookies ไธบ JSON ๆ ผๅผ
- ไฟๅญๅฐ
backend/cookies/youtube.json
่ฏฆ็ปๆๅ:
ไฝฟ็จ Docker Compose ๅฏๅจๆๆๆๅก๏ผ
docker-compose up -d
ๆฅ็ๆๅก็ถๆ:
docker-compose ps
ๆฅ็ๆฅๅฟ:
# ๆๆๆๅก
docker-compose logs -f
# ็นๅฎๆๅก
docker-compose logs -f api
docker-compose logs -f celery_worker
ๆๅกๅฐๅ:
- ๅ็ซฏ: http://localhost:3000
- ๅ็ซฏ API: http://localhost:8000
- API ๆๆกฃ: http://localhost:8000/docs
- PostgreSQL: localhost:5432
- Redis: localhost:6379
่ฎฟ้ฎ http://localhost:3000๏ผไฝ ๅบ่ฏฅ็ๅฐ๏ผ
- โ ๅ็ซฏ็้ขๅ ่ฝฝ
- โ ๅฏไปฅๆทปๅ YouTube ่ง้ข
- โ ่ง้ขๅค็ๆๅ๏ผๆฅ็ๆฅๅฟ็กฎ่ฎคไฝฟ็จไบๅชไธชๆนๆก๏ผ
- โ ๅฏไปฅ่ฟ่ก้ฎ็ญ
ๆต่ฏ่ง้ข: dQw4w9WgXcQ
(Rick Astley - Never Gonna Give You Up)
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# ๅคๅถ็ฏๅขๅ้
cp .env.example .env
# ๅฏๅจๅผๅๆๅกๅจ
uvicorn app.main:app --reload
# ๅฏๅจ Celery worker
celery -A app.tasks.celery_app worker --loglevel=info
cd frontend
npm install
npm run dev
.
โโโ backend/
โ โโโ app/
โ โ โโโ api/ # API ่ทฏ็ฑ
โ โ โโโ models/ # ๆฐๆฎๆจกๅ
โ โ โโโ services/ # ไธๅก้ป่พ
โ โ โ โโโ youtube_service.py # YouTube Data API
โ โ โ โโโ rapidapi_youtube_service.py # RapidAPI ้ๆ โญ
โ โ โ โโโ rate_limiter.py # ้ๆตๆๅก
โ โ โโโ tasks/ # Celery ไปปๅก
โ โ โ โโโ indexing.py # ่ง้ข็ดขๅผ็ฎก้ (ๅซ้็บง้ป่พ)
โ โ โโโ db/ # ๆฐๆฎๅบ้
็ฝฎ
โ โ โโโ config.py # ้
็ฝฎ็ฎก็
โ โ โโโ main.py # ๅบ็จๅ
ฅๅฃ
โ โโโ db/
โ โ โโโ init.sql # ๆฐๆฎๅบๅๅงๅ
โ โโโ cookies/ # YouTube Cookies (ๅฏ้)
โ โโโ docs/ # ๆๆฏๆๆกฃ
โ โโโ tests/ # ๆต่ฏ
โ โโโ requirements.txt # Python ไพ่ต
โ โโโ Dockerfile
โโโ frontend/
โ โโโ src/
โ โ โโโ components/ # React ็ปไปถ
โ โ โโโ pages/ # ้กต้ข็ปไปถ
โ โ โโโ types/ # TypeScript ็ฑปๅ
โ โ โโโ main.tsx # ๅบ็จๅ
ฅๅฃ
โ โโโ package.json # Node ไพ่ต
โ โโโ Dockerfile.dev
โโโ docker-compose.yml # Docker ็ผๆ
โโโ .env.example # ็ฏๅขๅ้ๆจกๆฟ
โโโ README.md # ้กน็ฎๆๆกฃ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend (React + TS) โ
โ http://localhost:3000 โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Backend (Python) โ
โ http://localhost:8000 โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ่ง้ข/ๅญๅน่ทๅ (ๆบ่ฝ้็บง) โ โ
โ โ โ โ
โ โ 1. RapidAPI โญ (ไธป่ฆ) โ โ
โ โ โโ> ๆ ้ cookies โ โ
โ โ โโ> ็ป่ฟ bot ๆฃๆต โ โ
โ โ โ โ
โ โ 2. YouTube Data API (ๅค็จ) โ โ
โ โ โโ> ๅฎๆน API โ โ
โ โ โโ> ไป
ๅ
ๆฐๆฎ โ โ
โ โ โ โ
โ โ 3. yt-dlp + cookies (ๆฌก็บง) โ โ
โ โ โโ> ้่ฆ cookies โ โ
โ โ โโ> ๅฏ่ฝ่ขซๆฃๆต โ โ
โ โ โ โ
โ โ 4. Whisper (ๆ็ปๅค็จ) โ โ
โ โ โโ> ้ณ้ข่ฝฌๅฝ โ โ
โ โ โโ> ๆๆฌ้ซไฝ็จณๅฎ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ RAG ้ฎ็ญ็ณป็ป โ โ
โ โ - ๅ้ๆ็ดข (pgvector) โ โ
โ โ - OpenAI GPT-4 โ โ
โ โ - ๆตๅผๅๅบ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโ
โ โ
โ โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ PostgreSQL โ โ Celery Worker โ
โ + pgvector โ โ (Background) โ
โ port: 5432 โ โ โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Redis (Cache) โ
โ port: 6379 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
็ฆป็บฟๅค็ๆต็จ๏ผๅฐ่ง้ข่ฝฌๅไธบๅฏๆฃ็ดข็ๅ้ๆฐๆฎ๏ผ
-
่ง้ขๅ ๆฐๆฎ่ทๅ (ๆบ่ฝ้็บง)
- RapidAPI โ YouTube API โ yt-dlp
-
ๅญๅน/่ฝฌๅฝ่ทๅ (ๆบ่ฝ้็บง)
- RapidAPI โ yt-dlp โ youtube-transcript-api โ Whisper
-
ๆๆฌๅค็
- ่ฏญไนๅๅ (400 tokens/chunk, 50 overlap)
- ๅ้ๅตๅ ฅ (OpenAI text-embedding-3-small)
- ๅญๅจๅฐ pgvector
ๅจ็บฟๅฎๆถๅค็ๆต็จ๏ผๅๅบ็จๆทๆ้ฎ๏ผ
- ้ฎ้ข โ ๅ้ๅ
- ๅ้ โ ็ธไผผๆงๆ็ดข (pgvector)
- ๆฃ็ดข็ปๆ โ ๆๅปบไธไธๆ
- ไธไธๆ + ้ฎ้ข โ LLM ็ๆ็ญๆก
- ็ญๆก + ่ง้ขๅผ็จ โ ๆตๅผ่ฟๅ
ๅฏๅจๆๅกๅ่ฎฟ้ฎ: http://localhost:8000/docs
ไธป่ฆๆฅๅฃ๏ผ
POST /api/videos
- ๆทปๅ ่ง้ขGET /api/videos
- ่ทๅ่ง้ขๅ่กจPOST /api/chat
- ้ฎ็ญ (SSE ๆตๅผ)GET /api/conversations/{id}
- ่ทๅๅฏน่ฏๅๅฒ
- DOCKER_DEPLOYMENT_SUCCESS.md - Docker ้จ็ฝฒๆๅๆฅๅ โญ
- PRODUCTION_DEPLOYMENT_GUIDE.md - ็ไบง็ฏๅข้จ็ฝฒๆๅ
- PRODUCTION_DEPLOYMENT_STATUS.md - ้จ็ฝฒ็ถๆ
- RAPIDAPI_INTEGRATION_SUCCESS.md - ้ๆๆๅๆฅๅ โญ
- RAPIDAPI_SETUP.md - ่ฎพ็ฝฎๆๅ
- backend/docs/rapidapi-integration.md - ๆๆฏๆๆกฃ
- COOKIES_QUICK_START.md - ๅฟซ้้ ็ฝฎ
- COOKIES_FROM_BROWSER_GUIDE.md - ่ชๅจๅฏผๅบๆๅ
- YOUTUBE_COOKIES_SETUP.md - ่ฏฆ็ปๆญฅ้ชค
- JSON_COOKIES_SUPPORT.md - JSON ๆ ผๅผๆฏๆ
- WHISPER_IMPLEMENTATION_SUMMARY.md - ๅฎๆฝๆป็ป
- WHISPER_IMPLEMENTATION.md - ๆๆฏ่ฎพ่ฎก
- FINAL_IMPLEMENTATION_SUMMARY.md - ๅฎๆดๅฎๆฝๆป็ป
- SYSTEM_STATUS.md - ็ณป็ป็ถๆ
- ROLLBACK_SUMMARY.md - Phase 3 ๅๆปๆป็ป
-
Phase 1: ๅบ็ก่ฎพๆฝๆญๅปบ
- ้กน็ฎ็ปๆๅๅปบ
- FastAPI ๅ็ซฏ้ ็ฝฎ
- React ๅ็ซฏ้ ็ฝฎ
- Docker Compose ็ฏๅข
- PostgreSQL + pgvector ่ฎพ็ฝฎ
- Redis + Celery ้ ็ฝฎ
-
Phase 2: ๆ ธๅฟๅ่ฝๅฎ็ฐ
- SQLAlchemy ORM ๆจกๅ
- ่ง้ขๅค็ Celery ไปปๅก
- API ็ซฏ็นๅฎ็ฐ
- ๅ็ซฏ้กต้ขๅผๅ
- RAG ๆฅ่ฏข็ฎก้
- ๅ้ๆ็ดขๅฎ็ฐ
- RapidAPI ้ๆ โญ (ไธป่ฆๆนๆก๏ผ็ป่ฟ bot ๆฃๆต)
- YouTube Data API ้ๆ (ๅค็จๆนๆก)
- Whisper API ้ๆ (ๆ็ปๅค็จ๏ผ้ณ้ข่ฝฌๅฝ)
- YouTube Cookies ๆฏๆ (ๆฌก็บงๅค็จ)
- JSON Cookies ่ชๅจ่ฝฌๆข (็จๆทๅๅฅฝ)
- ๅคๅฑ้็บง็ญ็ฅ (ไฟ่ฏๆ้ซๆๅ็)
-
Phase 3: ้จ็ฝฒๅๆต่ฏ
- Docker ๅฎนๅจๅ้จ็ฝฒ
- ็ฏๅขๅ้้ ็ฝฎ
- ๆๅกๅฅๅบทๆฃๆฅ
- ้ๆๆต่ฏ้่ฟ
- ๆๆกฃๅฎๅ
-
Phase 4: ๅฏ้ๅ่ฝ (ๆชๆฅ)
- ่ง้ข่ชๅจ้้
- ๆน้ๅค็ไผๅ
- ๆง่ฝ็ๆง
- ็จๆท่ฎค่ฏ
-
RapidAPI (ไธป่ฆ) - ๆ้่ฎก่ดน
- ็จไบ็ป่ฟ bot ๆฃๆต
- ไป ๅจๅ ถไปๆนๆณๅคฑ่ดฅๆถไฝฟ็จ
-
YouTube Data API (ๅค็จ) - ๅ ่ดน้ ้ข 10,000 units/day
- ไผๅ ไฝฟ็จๅ ่ดน้ ้ข
- ไป ่ทๅๅ ๆฐๆฎ
-
yt-dlp + Cookies (ๆฌก็บง) - ๅฎๅ จๅ ่ดน
- ่ทๅๅญๅนๅ ๅฎน
- ้่ฆๅฎๆๆดๆฐ cookies
-
Whisper (ๆ็ป) - ๆๅ้่ฎก่ดน
- ไป ๅจๆๆๆนๆณๅคฑ่ดฅๆถไฝฟ็จ
- ่่ๆๆฌ
ๆนๆก | ๆๆฌ | ๆๅ็ | ็ปดๆคๆๆฌ |
---|---|---|---|
RapidAPI | ๐ฐ ๆ้ | โญโญโญโญโญ | โ ้ถ |
YouTube API | โ ๅ ่ดน* | โญโญโญโญ | โ ้ถ |
yt-dlp | โ ๅ ่ดน | โญโญโญ | |
Whisper | ๐ฐ๐ฐ ้ซ | โญโญโญโญโญ | โ ้ถ |
*ๅ ่ดน้ ้ขๆ้
A: ไธๆฏๅฟ ้็ใ็ณป็ปๆๅคๅฑ้็บง็ญ็ฅ๏ผไผ่ชๅจๅฐ่ฏ YouTube APIใyt-dlp ็ญๅ ่ดนๆนๆกใไฝ RapidAPI ๆไพๆ้ซๆๅ็ไธๆ ้็ปดๆคใ
A:
- ๆจ่: RapidAPI (้ถ็ปดๆค๏ผๆ้ซๆๅ็)
- ๅ ่ดน: YouTube API + yt-dlp + cookies (้่ฆ็ปดๆค)
- ็จณๅฎ: ๅๆถ้ ็ฝฎๅคไธชๆนๆก๏ผ่ชๅจ้็บง
A: ้ๅธธ 1-2 ๅจใๅฆๆ้ ็ฝฎไบ RapidAPI๏ผๅไธ้่ฆ cookiesใ
A:
- ๆฃๆฅๆฅๅฟๆฅ็ไฝฟ็จไบๅชไธชๆนๆก
- ๅฆๆๆๆๆนๆกๅคฑ่ดฅ๏ผ่่้ ็ฝฎ RapidAPI
- ๆฅ็
DOCKER_DEPLOYMENT_SUCCESS.md
็ๆ ้ๆ้ค้จๅ
- Fork ้กน็ฎ
- ๅๅปบ็นๆงๅๆฏ (
git checkout -b feature/amazing-feature
) - ๆไบคๆดๆน (
git commit -m 'Add some amazing feature'
) - ๆจ้ๅฐๅๆฏ (
git push origin feature/amazing-feature
) - ๅผๅฏ Pull Request
MIT License
้กน็ฎ้พๆฅ: https://github.com/yourusername/video-qa-platform
ๆๅๆดๆฐ: 2025-10-05 Docker ็ถๆ: โ ่ฟ่กไธญ RapidAPI ็ถๆ: โ ๅทฒ้ๆ ๆต่ฏ็ถๆ: โ ้่ฟ