Ретраи и дедупликация в задачах

- элемент плейлиста повторяется до 3 раз с паузой 30 с (разовые 403/429 от YouTube)
- yt-dlp: retries/fragment_retries/extractor_retries
- уже обработанные URL пропускаются — повторная постановка плейлиста
  доделывает только упавшее

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
jze9
2026-07-14 15:33:01 +05:00
parent 48cd01d0f9
commit c88b0e4f6d
3 changed files with 52 additions and 15 deletions

View File

@@ -40,6 +40,12 @@ async def get_video(video_uuid: str) -> Video | None:
return res.scalars().first()
async def get_video_by_url(url: str) -> Video | None:
async with SessionLocal() as session:
res = await session.execute(select(Video).where(Video.source_url == url))
return res.scalars().first()
async def list_videos(
*,
q: str | None = None,