如何用python编码视频响应?

2024-10-02 06:36:58 发布

您现在位置:Python中文网/ 问答频道 /正文

在我发出的一个请求中,我收到了一个字节响应,我知道这是一个视频响应。它的状态代码是200。我不知道如何使用它。我的意思是我试着把它编码成utf-8,然后保存到一个文件中,但它不能播放。媒体播放器无法读取其内容这是我提出的请求

import requests

resp = requests.get('https://bcboltsony-a.akamaihd.net/media/v1/hls/v4/aes128/5182475815001/4ded6ac4-6f8b-4da2-8194-db2391d5e331/164fe5c5-15a3-4997-b4c6-7dd4b95f9c57/92410c6d-c565-4341-8650-1d40a795ece2/5x/segment1.ts?akamai_token=exp=1589337578~acl=/media/v1/hls/v4/aes128/5182475815001/4ded6ac4-6f8b-4da2-8194-db2391d5e331/164fe5c5-15a3-4997-b4c6-7dd4b95f9c57/92410c6d-c565-4341-8650-1d40a795ece2/*~hmac=bf9745f2a9b51c04d59eb9955de20dcf1b4c8c7e434ad0bdd639f2d80fa10ecc')

open('E:/video.mp4', 'wb').write(bytes(resp.text, encoding='utf-8'))

如何将此响应转换为可监视格式


Tags: 代码视频字节状态requestsmediaresputf
3条回答

您的代码绝对正确。但请注意:

  1. 如果在资源管理器中打开此页面,您会发现它是一个.ts文件,而不是.mp4文件

  2. 另外,如果你直接在浏览器中下载,你也不能直接播放。在我的电脑中,它也提醒我它已经损坏了


如果您在internet上搜索它,.ts文件被加密(在您的url页面中,它的加密方式是AES128)。也许您需要采取一些措施

用以下代码替换您的代码。我希望它能起作用:)

open('E:/video.mp4', 'wb').write(resp.content)

尝试使用wget,它可以帮助您更轻松地下载文件10倍。 下面是一个与您的情况相关的简单代码:

import wget
url = "https://bcboltsony-a.akamaihd.net/media/v1/hls/v4/aes128/5182475815001/4ded6ac4-6f8b-4da2-8194-db2391d5e331/164fe5c5-15a3-4997-b4c6-7dd4b95f9c57/92410c6d-c565-4341-8650-1d40a795ece2/5x/segment1.ts?akamai_token=exp=1589337578~acl=/media/v1/hls/v4/aes128/5182475815001/4ded6ac4-6f8b-4da2-8194-db2391d5e331/164fe5c5-15a3-4997-b4c6-7dd4b95f9c57/92410c6d-c565-4341-8650-1d40a795ece2/*~hmac=bf9745f2a9b51c04d59eb9955de20dcf1b4c8c7e434ad0bdd639f2d80fa10ecc"
wget.download(url, 'c:/users/Yourname/downloads/video.mp4')

如果这不起作用,编码的问题可能在url方面

相关问题 更多 >

    热门问题