如何使用Python调用API向Dood stream上传视频?
问题排查
你原有代码存在两处核心错误:
- 第一份代码混淆了「获取上传服务器接口」和「实际上传接口」的用途,
https://doodapi.com/api/upload/server是用来查询可用上传节点的接口,不能直接用来上传文件,且请求方法应为GET而非PUT - 第二份代码调用POST上传时,
files参数要求传入文件字典,你错误传入了单独的文件对象,导致请求格式不符合要求
正确实现步骤
Doodstream上传分为两步:
- 调用官方API获取可用的上传服务器地址
- 向拿到的上传地址发起POST请求,携带视频文件和可选元数据参数
可用代码示例
import requests # 替换为你自己的API密钥 API_KEY = "你的doodstream API key" FILE_PATH = r"Test.mp4" # 第一步:获取上传服务器地址 get_upload_server_url = f"https://doodapi.com/api/upload/server?key={API_KEY}" res = requests.get(get_upload_server_url) if res.status_code != 200: print("获取上传服务器失败", res.content) exit() # 解析返回的上传地址,返回格式示例:{"result":"https://xxx.dood.video/upload/xxxxx","status":200} upload_url = res.json()["result"] # 第二步:上传文件 with open(FILE_PATH, "rb") as f: files = {"file": f} # 可选参数:可以加title、des等自定义元数据,直接放在params里即可 params = { "key": API_KEY, "title": "你的视频标题", "des": "视频描述" } upload_res = requests.post(upload_url, files=files, params=params) print("上传结果:", upload_res.status_code) print(upload_res.json())
注意事项
- 确保你的API密钥权限正常,没有触发接口调用频率限制
- 视频文件大小不要超过Doodstream单文件上传上限
- 如果返回签名错误,检查上传地址的参数是否完整,不要修改获取到的上传地址自带的参数
内容的提问来源于stack exchange,提问作者Noob
相关产品推荐
相关产品推荐

