我们如何下载Blob网址视频[关闭]


218

我想下载一个视频,其网址不是简单的mp4文件,但其网址是Blob类型,例如。

<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

是否有任何chrome扩展程序或软件可用于下载正在播放的视频。


@cdlvcdlv谢谢,伙计!在测试了许多工具之后,这就是适用于我的特定情况的工具!
felipeptchocho 18-3-16

@felipeptcho非常欢迎。很高兴看到答案可以帮助其他人。
cdlvcdlv

2
请参阅基于Chromium的浏览器的HDS / HLS Video Downloader扩展。
georgeawg

13
为什么每个对此问题的答案都假定文件扩展名是.m3u8?这个问题从未明确指出。
numbermaniac

您好@SidD,您能够解决此问题吗?如果是这样,您能告诉我哪种解决方案适合您吗?
hagrawal

Answers:


229

我只是想出了一个通用的解决方案,该解决方案应该适用于大多数网站。我仅在Chrome上尝试过此方法,但是此方法应该可与其他任何浏览器一起使用,因为Dev Tools几乎完全相同。

脚步:

  1. 在包含您感兴趣的视频的页面上打开浏览器的开发工具(通常是F12Ctrl-Shift-I,或者右键单击然后在弹出菜单中进行检查)。
  2. 转到网络选项卡,然后重新加载页面。该标签将填充一个请求列表(最多可以包含一百个请求,甚至更多)。
  3. 搜索请求的名称并找到带有.m3u8扩展名的请求。其中可能有很多,但最有可能首先找到的就是您要寻找的那个。它可以具有任何名称,例如playlist.m3u8
  4. 打开请求,在“ 标题”小节下,您将在“ 请求URL”字段中看到请求的完整URL 。复制它。 在此处输入图片说明
  5. 从m3u8中提取视频。有很多方法可以做到,我会给您我尝试过的方法,但是您可以通过“从m3u8下载视频”来搜索更多内容。
    • 选项1.如果已安装VLC播放器,请使用“ 打开网络流... ”菜单选项将URL馈送到VLC 。我不打算深究这个部分在这里,也有很多地方的一些综合指南,例如,在这里。如果该页面不起作用,您可以随时通过“ vlc下载在线视频”在另一个页面上搜索。
    • 选项2。如果您更喜欢命令行,请按照此SuperUser问题中的指示使用FFMPEG或自己的脚本。

48
选项3:直接在youtube-dl中使用播放列表网址,非常简单!
Arnaud Tournier

3
youtube-dl也适用于mpd文件。
Gibado

2
@patricK你可以尝试添加引荐,例如:youtube-dl --add-header Referer: https://www.google.com/referer-page https://google.com/video.m3u8
Searene酒店

1
请注意,您是如何打开网络模块中的搜索栏并搜索“ m3u8”关键字的。
周XF

1
选项4:使用JDownloader 2下载播放列表URL,我认为这是最简单的方法。
罗宾·哈特曼

50

使用HLS Downloader Google Chrome扩展程序获取指向M3U播放列表的链接。在浏览器栏中其图标将显示在当前网页上找到的播放列表的数量。单击该图标,您可以看到播放列表链接的列表,然后使用链接旁边的复制按钮进行复制。

然后使用youtube-dl程序下载文件。

youtube-dl --all-subs -f mp4 -o "file-name-to-save-as.mp4" "https://link-from-Google_Chrome-HLS_Downloader_extension"

命令行选项说明:

如果您一直在为youtube-dl使用相同的配置选项,则可能需要查看youtube-dl配置选项,因为这样可以节省很多输入时间。

如果您想在GitHub的项目页面上找到它的代码,则可以使用MIT许可下的HLS Downloader扩展程序免费和开源。


除了我的MP4没有声音外,这真的很好用。有办法解决吗?
Christopher D. Emerson

2
我还没有发生过他的事情。您下载的文件必须包含某些内容。我相信mp4标准支持多个音轨。检查是否没有其他音轨,并且第一个是静音。
frederickjh

1
扩展范围大!那么使用m3u8文件和strait blob文件进行所有运行就容易得多。但是,我不需要YouTube上的任何东西。HLS Downloader直接给我视频文件。
贾斯汀·埃姆雷

尝试在选项中添加-x
冯·伯克爵士,

以我为例,我曾在Twitter上尝试过HLS Downloader,它的工作方式如@Justin所说:它直接提供了视频文件。但是我也尝试了@Vlad在另一个答案上提出的建议-基本上手动完成了所有步骤-结果相同(即获取工作.MP4文件)。
Gwyneth Llewelyn

27

该过程可能会有所不同,具体取决于视频的托管位置和托管方式。知道这一点有助于更详细地回答问题。

举个例子; 这是您可以在Vimeo上下载带有Blob链接的视频的方法。

  1. 查看视频播放器iframe的源代码
  2. 搜索mp4
  3. 复制带有令牌查询的链接
  4. 令牌到期前下载

此处提供源代码和分步说明。

在此处输入图片说明


2
即使.mp4中的文件类型url不是.mp4,此方法也可以正常工作,只需检查文件标题并将其重命名即可。
eapo's

25

这是我设法“下载”它的方法:

  1. 使用inspect-element标识M3U播放列表文件的URL
  2. 下载M3U文件
  3. 使用VLC读取M3U文件,流式传输并将视频转换为MP4

在Firefox中,M3U文件的类型为application / vnd.apple.mpegurl

在此处输入图片说明

M3U文件的内容如下所示:

打开VLC媒体播放器,然后使用Media => Convert选项。使用(保存的)M3U文件作为源:

在此处输入图片说明


3
大提示!似乎不需要下载m3u8文件-您只需粘贴外部url作为源即可。

在网络标签上,有一个用于“媒体”的辅助标签。仅需几项即可轻松获取m3u8文件。
pcarvalho

19

.m3u8通过查看页面源,查看Chrome开发人员工具中的“网络”标签或使用诸如HDL / HLS Video Downloader之类的插件,可以采用多种方式来获取URL。

有了.m3u8 URL,您就可以ffmpeg像下面这样将视频下载到文件中:

$ ffmpeg -i 'https://url/to/some/file.m3u8' -bsf:a aac_adtstoasc \
    -vcodec copy -c copy -crf 50 file.mp4

11

如果找不到该.m3u8文件,则需要执行几个不同的步骤。

1)转到网络标签,然后按 Media

按媒体排序

2)您将在此处看到一些内容,然后选择第一项。在我的示例中,它是一个mpd文件。然后复制请求网址。

3)接下来,使用您喜欢的命令行工具,使用步骤2中的URL下载文件。

youtube-dl -f bestvideo+bestaudio https://url.com/destination/stream.mpd

4)根据编码,您可能必须将音频和视频文件连接在一起,但这取决于逐个视频的情况。


10

我已经在其他一些网站上发布了此内容,尽管为什么不在stackoverflow上与其他人分享。

  1. 在Firefox浏览器上安装Video DownloadHelper扩展。
  2. 激活DownloadHelper后,导航至包含要下载的视频的网页。
  3. 视频流式传输后,单击DownloadHelper图标。它将为您提供当前视频上所有可用文件格式的列表。
  4. 滚动到您要下载的文件格式
  5. 在右侧,您会看到一个箭头
  6. 单击该箭头可获得有关当前视频和所选格式的更多信息。
  7. 在该箭头末尾的显示窗口中,向下滚动并选择“详细信息”
  8. 现在,您具有有关当前视频和所选格式的所有详细信息。是这样的。

命中详细信息⊗_needsAggregate _needsCoapp操作比特率成组的
descr 前缀持续时间从缓存组hls id开始的浮动扩展frameId isPrivate length masterManifest mediaManifest originalId 引用者 大小状态标题topUrl url urlFilename

  1. 现在,在“命中详细信息”中查看引荐来源网址的详细信息。那就是你想要的网址。复制它并粘贴到您喜欢的下载器上。

9
  1. 使用开发者工具的“网络”标签找到播放列表/清单。总有一个,因为它就是这样工作的。它可能具有m3u8扩展名,您可以在过滤器中输入。
  2. 将其提供给youtube-dl工具。它可以下载的不仅仅是YouTube。它将自动下载每个段,然后将所有内容与FFmpeg合并,然后丢弃这些部分。它很有可能支持您要从本地下载的站点,甚至不需要执行步骤1。
  3. 如果您发现一个固执的站点,并且遇到403错误,请执行以下操作:Telerik Fiddler进行救援。它可以充当本地代理,因此可以捕获并保存任何传输的内容(例如视频文件)。您看到/听到的所有内容都可以下载,除非它是DRM内容(例如Spotify)。

2
您将如何使用youtube-dl做到这一点?只是youtube-dl https://....m3u8"
阿齐兹Javed

另外,这对私人视频有用吗?
阿齐兹Javed

@AzizJaved是,完全一样。我尚未在私人视频上进行过测试,但是如果您可以看到页面所在的位置,则它们的工作方式与在公共视频上完全一样。重要的是您在浏览器中看到的内容:如果可以看到,则可以将其复制。简单!😉
格温妮丝·李维林

你们是否需要我提供有关下载加密的HLS视频的文章?基本上是第3步,但使用ffmpeg解密和合并ts段。
Firsh-LetsWP.io

0

如果使用来自F4M清单的数据实例化Blob(请检查Chrome开发人员工具中的“网络”标签),则可以使用此处发布的php脚本下载视频文件:https : //n1njahacks.wordpress.com/2015/01/29 /如何从任何网页保存hds-flash流/

通过输入:

  if ($manifest == '')
    $manifest = $_GET['manifest'];

之前:

  if ($manifest)

您甚至可以使用带有查询字符串的请求在Web服务器上运行它?manifest=[manifest url]

请注意,您可能要使用FTP客户端来检索下载的视频文件并在脚本执行后清除(脚本将保留所有下载的视频部分)。


-27

您只需右键单击并将Blob保存为mp4。

当我玩基于浏览器的视频/音频录制时,可以直接下载输出Blob。


我认为这是不可能的。可以共享要下载的浏览器吗?
海盗X

我使用了chrome,但我指的是在本地计算机上完成的webrtc视频录制。对于Web Blob,此过程可能有所不同。
pseudozach

1
这适用于常规视频,但不适用于斑点。
TankorSmash
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.