mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-06 20:42:52 +08:00
- 新增快手下载器,支持快手视频下载 - 添加下载配置页面,可设置各平台Cookies - 优化后端接口,增加获取和更新Cookies的功能 - 前端新增Downloader组件和相关表单组件 - 更新路由配置,增加下载配置相关路由
32 lines
892 B
Python
32 lines
892 B
Python
from pydantic import AnyUrl, validator, BaseModel, field_validator
|
|
import re
|
|
|
|
SUPPORTED_PLATFORMS = {
|
|
"bilibili": r"(https?://)?(www\.)?bilibili\.com/video/[a-zA-Z0-9]+",
|
|
"youtube": r"(https?://)?(www\.)?(youtube\.com/watch\?v=|youtu\.be/)[\w\-]+",
|
|
"douyin": "douyin",
|
|
"kuaishou": "kuaishou"
|
|
}
|
|
|
|
|
|
def is_supported_video_url(url: str) -> bool:
|
|
for name, pattern in SUPPORTED_PLATFORMS.items():
|
|
if pattern in ["douyin", "kuaishou"]:
|
|
if pattern in url:
|
|
return True
|
|
else:
|
|
if re.match(pattern, url):
|
|
return True
|
|
return False
|
|
|
|
|
|
class VideoRequest(BaseModel):
|
|
url: AnyUrl
|
|
platform: str
|
|
|
|
@field_validator("url")
|
|
def validate_video_url(cls, v):
|
|
if not is_supported_video_url(str(v)):
|
|
raise ValueError("暂不支持该视频平台或链接格式无效")
|
|
return v
|