INNER CODE UNIT · Python
summarize_video
liyupi/free-video-downloader · backend/api_summarize.py:66
async def summarize_video(req: SummarizeRequest, user: dict | None = Depends(get_optional_user)) -> AsyncIterable[ServerSentEvent]:
"""
AI 视频总结(SSE 流式)
事件类型: subtitle / summary / mindmap / done / error / quota
"""
allowed, remaining, message = _check_summary_permission(user)
if not allowed:
yield ServerSentEvent(
raw_data=json.dumps({"message": message, "need_login": user is None, "need_vip": user is not None}, ensure_ascii=False),
event="error",
)
return
try:
loop = asyncio.get_event_loop()
extractor = _get_extractor()
subtitle_data = await loop.run_in_executor(
None, extractor.extract, req.url