feat(downloaders): 添加抖音视频识别功能

- 新增 abogus.py 文件,实现 a_bogus 参数的生成逻辑
- 代码源自 JoeanAmier/TikTokDownloader 项目,并进行了适配和优化
- 功能包括生成用户代理字符串、加密 URL 参数和生成最终的 a_bogus值
- 提供了详细的注释和函数说明,便于理解和维护
This commit is contained in:
黄建武
2025-05-02 14:00:29 +08:00
parent 7066b4288a
commit 04dad3b72a
7 changed files with 957 additions and 123 deletions

View File

@@ -6,7 +6,7 @@ from typing import Optional
from urllib.parse import urlparse
from fastapi import APIRouter, HTTPException, BackgroundTasks, UploadFile, File
from pydantic import BaseModel, validator
from pydantic import BaseModel, validator, field_validator
from dataclasses import asdict
from app.db.video_task_dao import get_task_by_video
@@ -44,7 +44,7 @@ class VideoRequest(BaseModel):
style:str=None
extras:Optional[str]
@validator("video_url")
@field_validator("video_url")
def validate_supported_url(cls, v):
url = str(v)
parsed = urlparse(url)
@@ -52,11 +52,7 @@ class VideoRequest(BaseModel):
# 是网络链接,继续用原有平台校验
if not is_supported_video_url(url):
raise ValueError("暂不支持该视频平台或链接格式无效")
else:
# 是本地路径,检测一下文件是否存在
if not url.startswith('/uploads') and not os.path.exists(url):
raise ValueError("本地文件路径不存在")
return v