diff --git a/backend/render-build.sh b/backend/render-build.sh index 5ec39d5f..d4cbfb3c 100644 --- a/backend/render-build.sh +++ b/backend/render-build.sh @@ -9,15 +9,12 @@ IS_PODCAST_ONLY=false if [[ "$ENABLED_FEATURES" == "podcast" ]]; then IS_PODCAST_ONLY=true - echo "🔊 Podcast-only mode detected - skipping spaCy/NLTK model download" -fi - -python -m pip install --retries 10 --timeout 120 -r requirements.txt - -# Download required NLTK and spaCy models during build phase (skip for podcast-only) -if [[ "$IS_PODCAST_ONLY" == "false" ]]; then + echo "🔊 Podcast-only mode detected - using minimal requirements" + python -m pip install --retries 10 --timeout 120 -r requirements-podcast.txt +else + echo "📦 Full mode - using all requirements" + python -m pip install --retries 10 --timeout 120 -r requirements.txt + # Download required NLTK and spaCy models during build phase (skip for podcast-only) python -m spacy download en_core_web_sm python -m nltk.downloader punkt_tab stopwords averaged_perceptron_tagger -else - echo "🔊 Skipping spaCy/NLTK download for podcast-only mode" fi diff --git a/backend/requirements-podcast.txt b/backend/requirements-podcast.txt new file mode 100644 index 00000000..1322b714 --- /dev/null +++ b/backend/requirements-podcast.txt @@ -0,0 +1,57 @@ +# Core dependencies +fastapi>=0.115.14 +starlette>=0.40.0,<0.47.0 +sse-starlette<3.0.0 +uvicorn>=0.24.0 +uvicorn[standard]>=0.24.0 +gunicorn>=21.0.0 + +# Server utilities +python-multipart>=0.0.6 +python-dotenv>=1.0.0 +loguru>=0.7.2 +tenacity>=8.2.3 +pydantic>=2.5.2,<3.0.0 +typing-extensions>=4.8.0 + +# Authentication +PyJWT>=2.8.0 +cryptography>=41.0.0 +fastapi-clerk-auth>=0.0.7 + +# Database +sqlalchemy>=2.0.25 + +# Payment +stripe>=8.0.0 + +# HTTP & API +httpx>=0.27.2,<0.28.0 + +# AI/ML (needed for podcast) +openai>=1.3.0 +google-genai>=1.0.0 + +# TTS for podcast +gtts>=2.4.0 +pyttsx3>=2.90 + +# Text processing +markdown>=3.5.0 + +# Data processing +pandas>=2.0.0 +numpy>=1.24.0 + +# Image/audio processing +Pillow>=10.0.0 +huggingface_hub>=1.1.4 + +# Video composition +moviepy==2.1.2 +imageio>=2.31.0 +imageio-ffmpeg>=0.4.9 + +# Testing +pytest>=7.4.0 +pytest-asyncio>=0.21.0