Python-下载的视频文件出现编解码器问题

3天

我正在尝试下载已上传到云中的视频,并且正在使用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)
附庸风雅

接下来一个可能的问题是:

完成每个步骤后,res = requests.get(...)您需要插入line res.raise_for_status()

这是检查状态码是否为200所必需的。

默认情况下requests,如果状态代码不是200,则不会抛出任何内容。因此,如果状态代码错误,则您res.content可能是无效的响应正文。

如果这样做,res.raise_for_status()requests状态码不是200时将抛出错误,从而避免了可能的问题。

但是状态码为200并不一定意味着没有错误。某些服务器使用包含错误描述和状态码200的HTML进行响应。

另一个可能的问题是,下载URL缺少其中的授权令牌,因此您需要通过标头提供它。因此,而不是最后requests.get(...)放置下一个代码:

res = requests.get(download_url, headers = {
    **sess_headers, 'Authorization': 'Bearer ' + token})

另外,您还需要检查结果响应包含的内容类型,因此在lastres = response.get(...)之后执行下一步:

print('headers:', res.headers)

并检查里面的东西。具体看一下字段Content-Type,它应该具有某些二进制类型,例如application/octet-streamvideo/mp4但绝对不是某些文本格式,例如application/jsontext/html,文本格式文件绝对不是视频文件。如果要text/html尝试重命名文件,test.html然后在浏览器中打开文件以查看其中的内容,则服务器可能会在此HTML内响应某些错误。

同样只是在视觉上比较一些查看器中两个文件的内容-通过脚本下载和通过某些下载器(例如浏览器)下载。也许有一些明显的问题是肉眼可见的。

视频的文件大小也应该很大。如果是这样,50KB那么里面可能有一些不良数据。

更新

终于解决了下一个解决方案,将最后一个替换requests.get(...)为:

res = requests.get(download_url + '?access_token=' + token, headers=sess_headers)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 python 编解码器保存文件

来自分类Dev

使用Python linguini,如何使用编解码器/ gzip打开文件?

来自分类Dev

将python编解码器转换为文本

来自分类Dev

Python 2.7:在写入文件时,“ ascii”编解码器无法编码字符u'\ xe9'错误

来自分类Dev

致命的Python错误:Py_Initialize:无法加载文件系统编解码器和ModuleNotFoundError

来自分类Dev

python 3 - UnicodeEncodeError: 'charmap' 编解码器无法编码字符(编码所以它在文件中)

来自分类Dev

'utf-8'编解码器无法在Python3.4中解码字节读取文件,但在Python2.7中无法解码

来自分类Dev

Python Pandas to_excel'utf8'编解码器无法解码字节

来自分类Dev

Python使用'ascii'编解码器进行解码,而应该使用'UTF-8'

来自分类Dev

Python UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc3

来自分类Dev

python UnicodeDecodeError:“ utf8”编解码器无法解码字节

来自分类Dev

Python UnicodeDecodeError:“ utf-8”编解码器无法解码字节

来自分类Dev

'utf-8'编解码器无法解码字节-Python

来自分类Dev

Python:gb2312编解码器无法解码字节

来自分类Dev

提供UnicodeDecodeError的Python 3 CSV文件:“ utf-8”编解码器在我打印时无法解码字节错误

来自分类Dev

Python3:UnicodeEncodeError:'ascii'编解码器无法编码字符'\ xfc'

来自分类Dev

Kivy(适用于Android的Python)缺少编解码器

来自分类Dev

Android上的kivy / Python缺少Unicode编解码器?

来自分类Dev

在Python中使用Tesseract OCR的UnicodeDecodeError'charmap'编解码器

来自分类Dev

解析xml时Python抛出ascii编解码器无法编码

来自分类Dev

编解码器无法编码字符python3

来自分类Dev

使用pyarrow的Python错误-ArrowNotImplementedError:未构建对编解码器'snappy'的支持

来自分类Dev

UnicodeEncodeError:“ charmap”编解码器无法编码字符(在Python 3.3中)

来自分类Dev

在Python中使用编解码器编码的正确方法是什么?

来自分类Dev

在Python3中为print()使用编解码器错误处理程序?

来自分类Dev

解析xml时Python抛出ascii编解码器无法编码

来自分类Dev

解析HTML时,“ charmap”编解码器无法在Python中编码字符错误

来自分类Dev

Python3'ascii'编解码器无法编码字符

来自分类Dev

使用 Python 编解码器但仍然收到 UnicodeDecodeError

Related 相关文章

  1. 1

    使用 python 编解码器保存文件

  2. 2

    使用Python linguini,如何使用编解码器/ gzip打开文件?

  3. 3

    将python编解码器转换为文本

  4. 4

    Python 2.7:在写入文件时,“ ascii”编解码器无法编码字符u'\ xe9'错误

  5. 5

    致命的Python错误:Py_Initialize:无法加载文件系统编解码器和ModuleNotFoundError

  6. 6

    python 3 - UnicodeEncodeError: 'charmap' 编解码器无法编码字符(编码所以它在文件中)

  7. 7

    'utf-8'编解码器无法在Python3.4中解码字节读取文件,但在Python2.7中无法解码

  8. 8

    Python Pandas to_excel'utf8'编解码器无法解码字节

  9. 9

    Python使用'ascii'编解码器进行解码,而应该使用'UTF-8'

  10. 10

    Python UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc3

  11. 11

    python UnicodeDecodeError:“ utf8”编解码器无法解码字节

  12. 12

    Python UnicodeDecodeError:“ utf-8”编解码器无法解码字节

  13. 13

    'utf-8'编解码器无法解码字节-Python

  14. 14

    Python:gb2312编解码器无法解码字节

  15. 15

    提供UnicodeDecodeError的Python 3 CSV文件:“ utf-8”编解码器在我打印时无法解码字节错误

  16. 16

    Python3:UnicodeEncodeError:'ascii'编解码器无法编码字符'\ xfc'

  17. 17

    Kivy(适用于Android的Python)缺少编解码器

  18. 18

    Android上的kivy / Python缺少Unicode编解码器?

  19. 19

    在Python中使用Tesseract OCR的UnicodeDecodeError'charmap'编解码器

  20. 20

    解析xml时Python抛出ascii编解码器无法编码

  21. 21

    编解码器无法编码字符python3

  22. 22

    使用pyarrow的Python错误-ArrowNotImplementedError:未构建对编解码器'snappy'的支持

  23. 23

    UnicodeEncodeError:“ charmap”编解码器无法编码字符(在Python 3.3中)

  24. 24

    在Python中使用编解码器编码的正确方法是什么?

  25. 25

    在Python3中为print()使用编解码器错误处理程序?

  26. 26

    解析xml时Python抛出ascii编解码器无法编码

  27. 27

    解析HTML时,“ charmap”编解码器无法在Python中编码字符错误

  28. 28

    Python3'ascii'编解码器无法编码字符

  29. 29

    使用 Python 编解码器但仍然收到 UnicodeDecodeError

热门标签

归档