fastapi>=0.115,<1.0 uvicorn[standard]>=0.30,<1.0 sqlalchemy>=2.0,<2.1 psycopg[binary]>=3.2,<4.0 alembic>=1.13,<2.0 pydantic>=2.7,<3.0 pydantic-settings>=2.3,<3.0 authlib>=1.3,<2.0 httpx>=0.27,<1.0 feedparser>=6.0,<7.0 apscheduler>=3.10,<4.0 py3langid>=0.3,<1.0 itsdangerous>=2.1,<3.0 cryptography>=46.0.7,<47 argon2-cffi>=23.1,<26 # Download center: yt-dlp does the extraction/download; ffmpeg (OS-level in the Dockerfile) # does the merge + postprocessing. The [default] extra pulls yt-dlp-ejs (the challenge-solver # scripts Deno runs for YouTube's n-signature). yt-dlp is release-often (YouTube changes), so # keep the floor loose and bump it when extraction breaks. yt-dlp[default]>=2025.5.22 # PO Token provider plugin: talks to the bgutil sidecar (brainicism/bgutil-ytdlp-pot-provider) # to mint YouTube Proof-of-Origin tokens on demand, bypassing "confirm you're not a bot" and # unlocking high-quality formats. Pin to match the sidecar image tag (versions must align). bgutil-ytdlp-pot-provider==1.3.1