mirror of
https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
synced 2025-04-23 00:29:23 +08:00
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
import asyncio
|
|
|
|
from fastapi import APIRouter, Body, Query, Request, HTTPException # 导入FastAPI组件
|
|
|
|
from app.api.models.APIResponseModel import ResponseModel, ErrorResponseModel # 导入响应模型
|
|
|
|
# 爬虫/Crawler
|
|
from crawlers.hybrid.hybrid_crawler import HybridCrawler # 导入混合爬虫
|
|
|
|
HybridCrawler = HybridCrawler() # 实例化混合爬虫
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/video_data", response_model=ResponseModel, tags=["Hybrid-API"],
|
|
summary="混合解析单一视频接口/Hybrid parsing single video endpoint")
|
|
async def hybrid_parsing_single_video(request: Request,
|
|
url: str = Query(example="https://v.douyin.com/L4FJNR3/"),
|
|
minimal: bool = Query(default=False)):
|
|
"""
|
|
# [中文]
|
|
### 用途:
|
|
- 该接口用于解析抖音/TikTok单一视频的数据。
|
|
### 参数:
|
|
- `url`: 视频链接、分享链接、分享文本。
|
|
### 返回:
|
|
- `data`: 视频数据。
|
|
|
|
# [English]
|
|
### Purpose:
|
|
- This endpoint is used to parse data of a single Douyin/TikTok video.
|
|
### Parameters:
|
|
- `url`: Video link, share link, or share text.
|
|
### Returns:
|
|
- `data`: Video data.
|
|
|
|
# [Example]
|
|
url = "https://v.douyin.com/L4FJNR3/"
|
|
"""
|
|
try:
|
|
# 解析视频/Parse video
|
|
data = await HybridCrawler.hybrid_parsing_single_video(url=url, minimal=minimal)
|
|
# 返回数据/Return data
|
|
return ResponseModel(code=200,
|
|
router=request.url.path,
|
|
data=data)
|
|
except Exception as e:
|
|
status_code = 400
|
|
detail = ErrorResponseModel(code=status_code,
|
|
router=request.url.path,
|
|
params=dict(request.query_params),
|
|
)
|
|
raise HTTPException(status_code=status_code, detail=detail.dict())
|