first commit
This commit is contained in:
123
README.md
Normal file
123
README.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# YouTube Transcript RSS Feed Generator
|
||||
|
||||
YouTube video transkriptlerini otomatik olarak çıkarıp, tam metin içeren RSS feed'ine dönüştüren Docker tabanlı sistem.
|
||||
|
||||
## Özellikler
|
||||
|
||||
- ✅ **RSS-Bridge benzeri URL template** - Kanal adı/linki ile direkt feed
|
||||
- ✅ **Web Server Modu** - Flask ile RESTful API
|
||||
- ✅ RSS-Bridge entegrasyonu (100+ video desteği)
|
||||
- ✅ Async rate limiting (AIOLimiter)
|
||||
- ✅ SpaCy ile Sentence Boundary Detection
|
||||
- ✅ SQLite veritabanı (durum yönetimi)
|
||||
- ✅ Full-text RSS feed (`<content:encoded>`)
|
||||
- ✅ Channel handle → Channel ID otomatik dönüştürme
|
||||
- ✅ Atom ve RSS format desteği
|
||||
|
||||
## Hızlı Başlangıç
|
||||
|
||||
### Docker ile Web Server Modu (Önerilen)
|
||||
|
||||
```bash
|
||||
# Build
|
||||
docker-compose build
|
||||
|
||||
# Web server'ı başlat (port 5000)
|
||||
docker-compose up -d
|
||||
|
||||
# Logları izle
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### URL Template Kullanımı
|
||||
|
||||
RSS-Bridge benzeri URL template sistemi:
|
||||
|
||||
```
|
||||
# Channel ID ile
|
||||
http://localhost:5000/?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA&format=Atom
|
||||
|
||||
# Channel Handle ile
|
||||
http://localhost:5000/?channel=@tavakfi&format=Atom
|
||||
|
||||
# Channel URL ile
|
||||
http://localhost:5000/?channel_url=https://www.youtube.com/@tavakfi&format=Atom
|
||||
|
||||
# RSS formatı
|
||||
http://localhost:5000/?channel=@tavakfi&format=Rss
|
||||
|
||||
# Maksimum video sayısı
|
||||
http://localhost:5000/?channel=@tavakfi&format=Atom&max_items=100
|
||||
```
|
||||
|
||||
### Batch Mode (Manuel Çalıştırma)
|
||||
|
||||
```bash
|
||||
# Tek seferlik çalıştırma
|
||||
docker-compose run --rm yttranscriptrss python main.py
|
||||
```
|
||||
|
||||
### Yerel Geliştirme
|
||||
|
||||
```bash
|
||||
# Virtual environment oluştur
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
# veya
|
||||
venv\Scripts\activate # Windows
|
||||
|
||||
# Bağımlılıkları kur
|
||||
pip install -r requirements.txt
|
||||
|
||||
# SpaCy modelini indir
|
||||
python -m spacy download en_core_web_sm
|
||||
|
||||
# Çalıştır
|
||||
python main.py
|
||||
```
|
||||
|
||||
## Yapılandırma
|
||||
|
||||
`config/config.yaml` dosyasını düzenleyin:
|
||||
|
||||
```yaml
|
||||
channel:
|
||||
id: "UC9h8BDcXwkhZtnqoQJ7PggA" # veya handle: "@username"
|
||||
name: "Channel Name"
|
||||
language: "tr"
|
||||
|
||||
rss_bridge:
|
||||
base_url: "https://rss-bridge.org/bridge01"
|
||||
format: "Atom"
|
||||
max_items: 100
|
||||
```
|
||||
|
||||
## Proje Yapısı
|
||||
|
||||
```
|
||||
yttranscriptrss/
|
||||
├── src/
|
||||
│ ├── database.py # SQLite yönetimi
|
||||
│ ├── video_fetcher.py # RSS-Bridge entegrasyonu
|
||||
│ ├── transcript_extractor.py # Transcript çıkarımı
|
||||
│ ├── transcript_cleaner.py # NLP ve temizleme
|
||||
│ └── rss_generator.py # RSS feed oluşturma
|
||||
├── config/
|
||||
│ └── config.yaml # Yapılandırma
|
||||
├── data/
|
||||
│ └── videos.db # SQLite veritabanı
|
||||
├── output/
|
||||
│ └── transcript_feed.xml # RSS feed çıktısı
|
||||
├── Dockerfile
|
||||
├── docker-compose.yml
|
||||
└── main.py
|
||||
```
|
||||
|
||||
## Geliştirme Planı
|
||||
|
||||
Detaylı geliştirme planı için `development_plan.md` dosyasına bakın.
|
||||
|
||||
## Lisans
|
||||
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user