【发布时间】:2020-10-14 13:53:42
【问题描述】:
我正在尝试下载已上传到云端的视频,并且我正在使用 API 来提取数据。
python 脚本似乎可以正常下载文件,但是当我打开视频时,它会抛出此错误:
我尝试使用不同的选项(VLC、Windows Media Player 等)来播放视频,但没有任何运气。有人可以帮忙吗?
if res.status_code == 200:
body = res.json()
for meeting in body["meetings"]:
try:
password = requests.get(
f"{root}meetings/{meeting['uuid']}/recordings/settings?access_token={token}").json()["password"]
url = f"https://api.zoom.us/v2/meetings/{meeting['uuid']}/recordings/settings?access_token={token}"
res = requests.patch(
url,
data=json.dumps({"password": ""}),
headers=sess_headers)
except:
pass
topic = meeting["topic"]
try:
os.makedirs("downloads")
except:
pass
for i, recording in enumerate(meeting["recording_files"]):
#os.makedirs(topic)
download_url = recording["download_url"]
name = recording["recording_start"] + \
"-" + meeting["topic"]
ext = recording["file_type"]
filename = f"{name}.{ext}"
path = f'./downloads/{filename}'.replace(":", ".")
res = requests.get(download_url, headers=sess_headers)
with open(Path(path), 'wb') as f:
f.write(res.content)
else:
print(res.text)
【问题讨论】:
-
您是否尝试过通过某些下载器直接下载这些 URL?不是通过python脚本。也无法播放?
-
直接下载就可以了。 JSON 响应有一个链接,当我尝试在浏览器中打开该链接时,文件会自动下载。
-
可能是
requests.get()函数接收到一些奇怪的Content-Type并将内容转换为某种非二进制格式。 -
在完成最后一个
requests.get请求后,能否打印 res.status_code 的值? -
如果你有
curl工具然后做下一件事 -curl -I https://google.com/但用你的下载网址代替谷歌网址。此命令将转储 HTTP 标头,检查Content-Type字符串。
标签: python python-3.x api codec