# Video Summary Bot Bot Telegram który nasłuchuje wiadomości z linkami do YouTube, pobiera transkrypcje filmów, streszcza je i zapisuje w bazie danych PostgreSQL. ## Funkcjonalności - Automatyczne wykrywanie linków YouTube w wiadomościach - Pobieranie transkrypcji filmów (obsługuje filmy w różnych językach, priorytetyzując polski i angielski) - Generowanie streszczeń transkrypcji za pomocą OpenAI API - Przechowywanie streszczeń, transkrypcji i informacji o filmach w bazie danych PostgreSQL - Wysyłanie streszczeń z powrotem do czatu ## Wymagania - Python 3.9+ - Serwer PostgreSQL - Token bota Telegram (uzyskany przez BotFather) - Klucz API OpenAI - Token API youtube-transcript.io (do pobierania transkrypcji) ## Instalacja 1. Sklonuj repozytorium: ``` git clone cd video.summary.bot ``` 2. Utwórz plik `.env` na podstawie `.env.example` i dodaj swoje klucze API i dane dostępowe: ``` TELEGRAM_BOT_TOKEN=twój_token_bota_telegram OPENAI_API_KEY=twój_klucz_api_openai DATABASE_URL=postgresql://użytkownik:hasło@host:port/nazwa_bazy YOUTUBE_TRANSCRIPT_API_TOKEN=twój_token_api_youtube_transcript ``` 3. Utwórz i aktywuj wirtualne środowisko (opcjonalnie, ale zalecane): ``` python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows ``` 4. Zainstaluj projekt w trybie deweloperskim: ``` pip install -e . ``` ## Uruchomienie za pomocą tox Najłatwiejszy sposób uruchomienia bota to użycie tox: ``` pip install tox tox -e run ``` ## Uruchomienie ręczne Alternatywnie, możesz uruchomić bota bezpośrednio: ``` python -m src.bot.main ``` Lub po instalacji pakietu: ``` video-summary-bot ``` ## Migracja z youtube-transcript-api na youtube-transcript.io API W wersji 0.2.0 dokonaliśmy migracji z biblioteki `youtube-transcript-api` na oficjalne API `youtube-transcript.io`. Zmiana ta daje następujące korzyści: - **Większa stabilność**: youtube-transcript.io to oficjalne API, które nie jest zależne od zmian w interfejsie YouTube - **Wyższe limity**: Możliwość pobierania transkrypcji dla większej liczby filmów - **Lepsze wsparcie językowe**: Dokładniejsze informacje o dostępnych językach - **Możliwość zapytań zbiorczych**: API pozwala pobierać transkrypcje dla wielu filmów w jednym żądaniu ### Zmiany w konfiguracji Migracja wymaga dodania nowego tokenu API w pliku `.env`: ``` YOUTUBE_TRANSCRIPT_API_TOKEN=twój_token_api_youtube_transcript ``` Token można uzyskać rejestrując się na stronie [youtube-transcript.io](https://www.youtube-transcript.io/). ## Struktura projektu ``` video.summary.bot/ ├── src/ │ ├── bot/ │ │ ├── __init__.py │ │ ├── config.py # Konfiguracja (API keys, DB) │ │ ├── db.py # Interakcja z bazą danych PostgreSQL │ │ ├── handlers.py # Logika obsługi wiadomości │ │ ├── main.py # Punkt startowy bota │ │ ├── openai_utils.py # Funkcje związane z OpenAI API │ │ └── youtube_utils.py # Funkcje do pracy z YouTube │ └── __init__.py ├── .env # Plik z sekretami (ignorowany przez Git) ├── .env.example # Przykładowy plik konfiguracyjny ├── pyproject.toml # Definicja projektu i zależności ├── tox.ini # Konfiguracja tox └── README.md # Ten plik ``` ## Uwagi dotyczące użycia - **Koszty OpenAI API**: API OpenAI jest płatne. Monitoruj swoje zużycie, aby uniknąć niespodziewanych kosztów. - **Koszty youtube-transcript.io API**: API youtube-transcript.io może być płatne w zależności od wybranego planu. Sprawdź aktualne ceny na stronie usługi. - **Dostępność transkrypcji**: Nie wszystkie filmy na YouTube mają dostępne transkrypcje. - **Limity API**: Upewnij się, że uwzględniasz limity API w przypadku intensywnego użytkowania. ## Licencja Ten projekt jest dostępny na licencji MIT.