将 hls 流下载到 mp4 的 Python 代码

问题描述 投票:0回答:1

我编写了以下代码来从网站下载视频。 Chrome 扩展程序可以检测视频并下载。但是,我的代码出现以下错误。有什么帮助吗?

from bs4 import BeautifulSoup
import requests
from subprocess import check_output

video_url = 'https://www.dimakids.com/ab6al-aldigetal-s3-1415387355-21011.html#sets'
headers = {'User-Agent': 'Mozilla/5.0'}

url = requests.get(video_url, headers=headers)
page = url.content
soup = BeautifulSoup(page, "html.parser")

result = str(soup.find_all('video')[0])
result = result.split('src="')[1].split('" type=')[0] 
print(result)

# seg = requests.get(result)
# """
# Error: requests.exceptions.SSLError: HTTPSConnectionPool(host='stream.foupix.com', port=443): Max retries exceeded with url: /animeios/1415387355/ab6al_aldigetal_s3_01.mp4/index.m3u8?tkn=jja4Czj-AzbJx1JmvDvQeA&tms=1733079050 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))
# """
# print(seg)


print(check_output(f'ffmpeg -i "{result}" -codec copy file.mp4', shell=True))
"""
Error: https://stream.foupix.com/animeios/1415387355/ab6al_aldigetal_s3_01.mp4/index.m3u8?tkn=SWf7n3qH8MwFLlq18wngIQ&tms=1733079103: Server returned 403 Forbidden (access denied)
"""
python ffmpeg http-live-streaming m3u8
1个回答
0
投票

首先,出现了请求。例外情况。 SSLError错误,通常是因为SSL证书认证。这可能是由于网站的SSL证书配置中的特殊情况,或者您的请求设置造成的。在这种情况下,您可以尝试通过将 verify=False 参数添加到 requests.get 方法来忽略 SSL 证书验证,如下所示: url = requests.get(video_url, headers, verify=False) 但是,请务必注意,忽略 SSL 证书验证可能会带来安全风险,只有在您确定了解风险并且处于测试环境中时才应使用。其次,后面提到的https://stream.foupix.com/anime的错误,因为你没有给出完整的错误细节,不好准确判断。视频链接本身可能存在问题,例如无效、已删除或需要特定权限才能访问。希望这个分析对您有所帮助,您可以按照上面的建议尝试更改代码并观察结果。

© www.soinside.com 2019 - 2024. All rights reserved.