想要下载一个视频,但是网站上不能直接下载。试过IDM,以及Streaming Video Recorder 都不行。因为视频被加密了。

ts 是分片的视频文件,m3u8 是播放索引列表(还可配置其他参数,比如加密)。

未加密的 ts 视频下载方法

如果没有加密的话,那么直接下载所有ts文件,然后合并即可。

  • windows 下合并: copy /b D:\a\*.ts D:\b\new.ts
  • Unix 下合并:echo 'd9c25b2f8f666097d855bfffcb22f529_' {1..9}.ts | tr "" "\ n"> tslist 接着 while read line; do cat $line >> new.ts; done < tslist (参考如何用Chrome下载视频流

m3u8 文件中指定加密方式的 ts 视频下载

有加密的话,需要处理m3u8文件,并使用ffmpeg进行转换,具体步骤如下。 (参考m3u8加密文件的解密及ts文件的合并

有加密的视频如何判断,在m3u8文件中,有 EXT-X-KEY 的话就有加密,如下图,后面有加密方式以及密钥地址:

处理步骤:

  • 首先,下载所需文件:

    • 下载所有 .ts 文件;
    • 下载 .m3u8 文件(我这里命名a.m3u8);
    • .m3u8 文件中拿到 key,并保存,这里注意正确的 key 为16字节。(我本地命名 alikey)
  • 修改 .m3u8 文件,其中 key 的 URI 改为上一步保存本地的文件;ts是本地路径的文件,如果是同一个目录,只写名字即可。

  • ffmpeg命令 ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i a.m3u8 -c copy new.mp4 就生成了所需要的视频文件。

报错:Error when loading first segment

把key保存起来,m3u8文件配置改好,用ffmpeg下载时候,报错

Error when loading first segment

搞了半天发现是下的key有问题,当时保存的是被压缩的。

原来是被压缩了,解码后的key就是正确的,共16字节。

多个ts文件批量下载

  1. 拿到 m3u8 中的ts文件名,然后拼接即可拿到所有url,粘贴到下载工具即可批量下载。

  2. 如果文件名是按序号递增的,那可以直接用迅雷批量下载:比如我们的文件名是 http://abc.com/0001.ts ... http://abc.com/0020.ts 共20个文件,迅雷可以使用通配符,直接指定范围和通配符长度,就可以批量下载

记一次加密的ts视频下载的更多相关文章

  1. 批量下载ts视频文件

    第一步 使用chrome 按F12进入开发模式,拖动视频进度条到视频结束: 然后找到.m3u8以结尾的文件并保存为文本文件. 第二步 点开查看里面是否存在如下以ts结尾的文件内容 ...... /20 ...

  2. python+fiddler下载vip视频 && ts视频可合并

    如果你只想在线看视频可以去看这篇博客:python实现通过指定浏览器免费观看vip视频  先看一下我们程序运行的结果 我们要解析的接口就是(就是这个"接口+视频地址"可以解析出vi ...

  3. 电脑视频下载王-Apowersoft Video Download Capture v6.3.6

    Apowersoft Video Download Capture (视频下载王) 是由香港Apowersoft出品的一款集视频下载.视频转换.媒体播放及录屏等功能为一体的多功能视频下载工具,简便实用 ...

  4. stars-one原创工具——m3u8视频下载合并器(kotlin)

    一款可以下载m3u8.解密ts文件及合并ts文件的视频下载工具 蓝奏云下载地址 github地址 软件对你有帮助的话,不妨赞赏一波!感谢! 程序说明 采用多线程下载,可有效的提高下载速度 内置解密程序 ...

  5. 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频

      视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频  2018-07-11 |  标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...

  6. B站视频下载(VideoHelper)

    继续上次的知乎爬虫, 这次开始了哔哩哔哩的爬虫实践: 首先介绍下如何下载吧: VideoHelper 里面有三种方式下载b站视频. 同样的流程, 还是先抓包,分析参数,寻找参数(包括之前的请求包和页面 ...

  7. html5 video标签如何禁止视频下载

    html5 video标签如何禁止视频下载 一.总结 一句话总结:bing方法给video对象绑定return false的匿名方法. 1.html5 video标签如何禁止视频下载? bing方法给 ...

  8. python3爬虫(4)各种网站视频下载方法

    python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够 ...

  9. 如何手动合并ts视频文件

    手动合并ts视频文件一不需要编程,二不需要下载什么特殊软件,用一些最普通的软件即可. 工具: 1.Chrome浏览器 2.迅雷 3.CMD命令行工具 步骤 一.打开迅雷,先确保没有别的在下载. 二.播 ...

随机推荐

  1. 微信小程序入门教程之三:脚本编程

    这个系列教程的前两篇,介绍了小程序的项目结构和页面样式. 今天,接着往下讲,教大家为小程序加入 JavaScript 脚本,做出动态效果,以及如何跟用户互动.学会了脚本,就能做出复杂的页面了. 本篇的 ...

  2. ES6复习干货知识点汇总

    一.问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优 ...

  3. linux中wc命令

    目录 一:linux中wc命令 1.wc命令介绍 2.wc命令作用 3.wc命令格式 4.参数 5.解析案例 一:linux中wc命令 1.wc命令介绍 Linux wc命令用于计算字数. 利用wc指 ...

  4. vue常用组件

    滚动组件:better-scroll   官网地址:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/installation.html ...

  5. ABC182 F Valid payments

    解法一 首先不妨来思考一下怎样的一个付钱方案是最优的,假设需要支付 \(Y\) 元,第 \(a_i\) 种钱币支付了 \(s_i\) 张,那么必须有:\(s_i < \frac{a_{i + 1 ...

  6. CF954H Path Counting

    一开始的想法是枚举路径的 \(\rm LCA\) 然后再枚举两边的深度,但是这样无论如何我都只能做到 \(O(n ^ 3)\) 的复杂度. 只能考虑换一种方式计数,注意到点分治可以解决树上一类路径问题 ...

  7. SpringBoot 自定义配置

    有时候需要自己定义一些配置,比如SpringBoot没有提供Druid连接池的配置,需要我们自己写配置. 以在springboot中使用Druid为例. 依赖 <dependency> & ...

  8. 一张图让你看懂 iPhone 各种分辨率问题! #DF

    话不多说,直接看图! Source: paintcodeapp.com

  9. 使用GDataXML生成、修改XML文档-陈棚

    使用GDXML生成XML文档的步骤如下. 1.调用GDataXMLNode的elementWithName:方法创建GDataXMLElement对象,对象作为XML文档的根元素. 2.调用GData ...

  10. 彻底搞清楚class常量池、运行时常量池、字符串常量池

    彻底搞清楚class常量池.运行时常量池.字符串常量池 常量池-静态常量池 也叫 class文件常量池,主要存放编译期生成的各种字面量(Literal)和符号引用(Symbolic Reference ...