微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python 从 URL 下载 m3u8

如何解决使用 Python 从 URL 下载 m3u8

我开始使用 Python 学习网页抓取。目前,我想下载日本饮食的视频。 (https://www.shugiintv.go.jp/jp/index.php?ex=VL&deli_id=40124&media_type=)

视频好像有一种机制,可以从playlist.m3u8中调用chunklist.m3u8,然后依次调用chunklist.m3u8中描述的ts文件

我想先从playlist.m3u8 URL下载内容,然后调用chunklist.m3u8依次下载ts文件并连接

然而,我尝试下载 Playlist.m3u8,但它没有产生我预期的文本。

此外,playlist.m3u8 的示例 URL 在这里

http://hlsvod.shugiintv.go.jp/vod/_definst_/amlst:2011/2011-1207-0900-12/playlist.m3u8

代码

import requests

url = "http://hlsvod.shugiintv.go.jp/vod/_definst_/amlst:2011/2011-1207-0900-12/playlist.m3u8"
res = requests.get(url)
print(res.text)

例外文本:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=564000,NAME="500k",RESOLUTION=640x360
chunklist_w60346572_b564000_t64NTAwaw==.m3u8

实际文本:

<html><head><title>Wowza Streaming Engine 4 Perpetual Bundle Unlimited Edition 4.7.7 build20181108145350</title></head><body>Wowza Streaming Engine 4 Perpetual Bundle Unlimited Edition 4.7.7 build20181108145350</body></html>

我认为 URL 中的冒号有问题,但我没有明确的解决方案。我想知道如何避免 URL 问题并成功下载 playlist.m3u8 中的文本。谢谢。

版本:

Python 3.7.9

请求 2.25.1

解决方法

您的网址有问题:

>>> url = "http://hlsvod.shugiintv.go.jp/vod/_definst_/amlst:2011/2011-1207-0900-12/playlist.m3u8"
>>> res = requests.get(url)
>>> res.request.url
'https://hlsvod.shugiintv.go.jp/vod/_definst_/amlst:2011/2011-1207-0900-12/playlist.m3u8%20'

看到最后的“%20”了吗?

我不太确定你是怎么弄错的,但是复制粘贴应该可以:

url = 'https://hlsvod.shugiintv.go.jp/vod/_definst_/amlst:2011/2011-1207-0900-12/playlist.m3u8'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。