粘贴抖音链接 / 上传视频 → 提取音频 → ASR识别 → 输出文案
yt-dlp 兜底;普通视频 URL 和上传文件则直接进入转写链路。
统一文案提取接口,支持三种输入方式。
| 参数 | 类型 | 说明 |
|---|---|---|
file三选一 | multipart | 直接上传视频文件 |
url三选一 | string | 视频直链或抖音链接 |
share_text三选一 | string | 抖音分享文本(整段文字即可) |
language可选 | string | 语言,默认 zh |
示例 1:传入抖音分享文本
curl -X POST https://xy.zhezhong.top/api/transcribe \
-H "Content-Type: application/json" \
-d '{
"share_text": "4.66 复制打开抖音,看看... https://v.douyin.com/xxxxx/",
"language": "zh"
}'示例 2:传入视频直链
curl -X POST https://xy.zhezhong.top/api/transcribe \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/video.mp4","language":"zh"}'示例 3:上传文件
curl -X POST https://xy.zhezhong.top/api/transcribe \ -F "file=@video.mp4" \ -F "language=zh"
统一响应格式:
{
"code": 0,
"message": "success",
"data": {
"text": "完整的识别文案...",
"duration": 65.3,
"sentences": [
{"text":"大家好","start_time":0.5,"end_time":1.2},
{"text":"今天分享一个工具","start_time":1.3,"end_time":3.1}
],
"source_type": "douyin_share"
}
}参数与同步接口一致,提交后返回 task_id,再轮询状态接口。
{
"code": 0,
"message": "accepted",
"task_id": "t_abc123",
"status": "processing",
"stage": "queued"
}轮询状态:processing → completed / failed,完成后返回与同步接口一致的 data。
在 LangChain / Dify / Coze 中注册为 Tool,直接传入分享文本:
import requests
def video_transcribe(share_text: str) -> str:
resp = requests.post(
"https://xy.zhezhong.top/api/transcribe",
json={"share_text": share_text, "language": "zh"},
timeout=300,
)
payload = resp.json()
if payload["code"] == 0:
return payload["data"]["text"]
raise Exception(payload["message"])yt-dlp 自动兜底” 的优雅降级链。服务部署在杭州 ECS,通过 systemd + nginx 提供 xy.zhezhong.top 域名访问。videoscribe/ ├── main.py ├── douyin_parser.py ├── asr_client.py ├── audio_extractor.py ├── oss_client.py ├── task_store.py ├── config.py ├── requirements.txt ├── .env └── static/index.html
1. 从分享文本里提取抖音链接 2. 优先走自建解析,直接拿视频直链 3. 自建解析失败时,自动降级到 yt-dlp 4. 若能拿到直链,则用 requests 流式下载 5. 若直链下载失败,则再降级到 yt-dlp 直接下载 6. 视频下载完成后,进入 FFmpeg -> OSS -> ASR 主链路
fastapi==0.111.0 uvicorn==0.30.1 python-multipart==0.0.9 python-dotenv==1.0.1 requests==2.32.3 oss2==2.18.6 pytest==8.3.2 yt-dlp>=2025.03.31
# 1. 准备 Python 3.12、ffmpeg、ffprobe # 2. pip install -r requirements.txt # 3. 配置 DASHSCOPE_API_KEY / OSS 凭证 # 4. uvicorn main:app --host 127.0.0.1 --port 8011 # 5. nginx 反代到 127.0.0.1:8011 # 6. systemd 托管进程并接入 xy.zhezhong.top