如何下载 blob 加密https://视频
Posted Hersan1080
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何下载 blob 加密https://视频相关的知识,希望对你有一定的参考价值。
一. 首先下载m3u8文件,在当前视频页面按f12打开调试工具,有些笔记本需要按住fn点击网络,按f5或者重新刷新网页,如下图操作:
二. 在过滤器这里输入m3u8,如下图所示:
找到这些带序列号的.ts的视频文件,选择其中一个m3u8文件。
三. 点击标头,把所有的请求网址复制到记事本,如下图所示:
四. 安装Chrono插件,然后把所有的刚才复制的 ts 的url都粘贴到Chrome浏览器的插件Chrono批量下载。如下图:
然后点击开始(这里我就省略怎样安装谷歌浏览器插件了哈)
下载完成之后如果ts文件的序列号格式不一样,要重新改名字
最后就把下载到的ts文件更改文件名,使所有的文件的序号位数一致,如:
1.ts 重命名为 001.ts
2.ts 重命名为 002.ts
五. 合并ts文件
管理员运行cmd,然后输入合并命令:
copy /b C:\\Users\\GOGO\\Desktop\\*.ts C:\\Users\\GOGO\\Desktop\\new.ts
如果想更改视频文件的清晰度,可以修改后缀名为avi,替换上面的cmd合并命令:
copy /b C:\\Users\\GOGO\\Desktop\\*.ts C:\\Users\\GOGO\\Desktop\\new.avi
合并完成!!!
Python:如何下载 blob url 视频?
【中文标题】Python:如何下载 blob url 视频?【英文标题】:Python: How to download a blob url video? 【发布时间】:2018-06-10 14:35:57 【问题描述】:我想使用 Python 脚本从网站下载视频,但是,该视频由如下的 blob URL 提供。
<video class="jw-video jw-reset" style="object-fit: fill;" jw-loaded="data" src="blob:https://xxxxxxx.com/f717096e-5e1a-42e1-8c3c-3ec777b5d478"></video>
【问题讨论】:
你试过了吗:***.com/questions/39517522/…? 您好,感谢您的评论。其实我的情况有点复杂。我首先使用 selenium 登录网站并获取 cookie,然后将会话 cookie 传递给 python。 def request(driver): s = requests.Session() cookies = driver.get_cookies() for cookie in cookies: s.cookies.set(cookie['name'], cookie['value']) return s req = request (浏览器)您能否详细说明一下如何在上述代码后保存视频?谢谢! 把所有有问题的信息。您还可以创建最小的工作示例。 这个问题相当不完整,可以改进。它可能以“不清楚”或“缺少minimal reproducible example”的形式关闭。 【参考方案1】:在我遇到的情况下,我看到这些 blob:https://... URLS 的页面也提供 .m3u8 文件。这些有视频的真实链接,在许多单独的片段中。有时还有一个加密密钥。
但是,这些 .m3u8 文件的链接有时是由 javascript 生成的,并且在原始页面的源代码中不存在。因此,您可能需要使用浏览器的开发工具并在刷新包含视频的页面时查看网络选项卡,以便能够看到对这些 .m3u8 URL 的请求。
在我的例子中,youtube-dl
(这是一个 Python 脚本)能够在给定 .m3u8 URL 时下载视频,并将其提供给 ffmpeg。
所以您可以尝试一下,然后在 youtube-dl source 中查看它是如何使用 Python 实现的。
【讨论】:
【参考方案2】:可以使用以下 python 代码下载 Blob 视频 您必须从页面检查中获取主段 url,就像在给定的图像中一样,通过提到它的代码中的 url
import requests
import m3u8
import subprocess
master_url ='master_url_from_inspect_network'
#past your page inspect request header
r = requests.get(master_url)
m3u8_master = m3u8.loads(r.text)
print(m3u8_master)
playlist_url =m3u8_master.data['playlists'][0]['uri']
play_r = requests.get(playlist_url)
m3u8_master_play = m3u8.loads(play_r.text)
m3_data=(m3u8_master_play.data)
m3_datas = m3_data['segments'][0]['uri']
with open('video.ts','wb') as fs:
for segments in m3_data['segments']:
uri = segments['uri']
print(uri)
r = requests.get(uri)
fs.write(r.content)
subprocess.run(['ffmpeg','-i','video.ts','video.mp4'])
【讨论】:
【参考方案3】:你不能“下载它”。 blob 是一个伪 url,表示内存中的缓冲区。它不指向服务器中的任何文件。 https://developer.mozilla.org/en-US/docs/Web/API/Blob
【讨论】:
但是真的不能访问缓冲区的内容吗? 不,但这是一个不同的问题。 “下载”意味着能够从另一个进程访问内容,这是不可能的。保存 blob 很简单。谷歌可以比我更快地回答这个问题。但是,如果您不拥有服务器,则需要将 JS 引入运行页面。 @szatmary,我一直在尝试在谷歌扩展中解决这个问题,我已经尽我所能在谷歌上搜索,但我想我的搜索技巧已经付出了代价。我一直无法找到解决方案。你能给我指个方向吗? 当然。首先使用 MSE 实现一个播放器,以便您了解它的工作原理,然后从那里向后工作。 “谷歌可以比我更快地回答这个问题”谷歌把我带到了这里......【参考方案4】:您可以为此使用urllib2
。
import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()
【讨论】:
以上是关于如何下载 blob 加密https://视频的主要内容,如果未能解决你的问题,请参考以下文章
如何下载(或以 blob 形式获取)用于流式传输 HTML5 视频的 MediaSource?
如何在PC上下载“ blob:https://www.osmosis.org”视频?