吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12877|回复: 248
上一主题 下一主题

[Android 原创] Android在家免费看大片神器开发技术详解(M3U8VideoDownload)

    [复制链接]
跳转到指定楼层
楼主
jiangwei212 发表于 2019-5-13 08:30 回帖奖励
本帖最后由 jiangwei212 于 2019-5-13 08:32 编辑

一、幸运快乐8计划猿的情怀

最近妇联4上映了,但是电影票真的是被炒到史无前例的高,而我却没钱去看,但是我又是个假的漫威粉丝,所以就在家贡献一张免费的电影票表达内心的歉意!我们知道现在其实很多有很多私密网站都可以提前看到想看的电影,比如关注一些微信公众号,直接在后台输入电影名称就有观看链接了,当然这里为了安全和对电影制作者的极度尊重,不公开操作方法,因为我们要尊重每一部电影的制作不易和版权意识,一定要去电影院看正片,不要去看这些盗版,当然也要坚决抵制盗版。


二、M3U8视频格式
这篇文章不是教你怎么破解正版视频,而是开发一个可以下载M3U8格式的视频到本地,当然现在应用市场中也有这个应用,但是都没有开源或者技术详解,首先我们来了解一下m3u8这个视频的格式,这个格式大家可能都听过,M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。这个是为了在线播放流视频诞生的,而这种视频最大的特点就是把原来的视频进行切片,所谓切片就是把一个完整的视频比如.mp4格式的切成多段.ts格式视频,然后生成一个对应切片片段视频的索引文件,这个索引文件就是m3u8:


看到这个文件其实就是个索引文件,当然ts切片视频文件和m3u8文件放在同一目录下,这个文件还有其他字段的详解,大家可以去网上详细查看,这里不细说了。



三、分析页面信息
简单介绍完了m3u8格式之后,我们开始进入正题了,首先我无意中关注了一个电影公众号,然后搜在后台搜索了妇联4关键字,就给我返回了一个播放地址:

然后我就用这个地址开始观看了,但是有两个问题就是首先这种大片最好还是需要在家里电视大屏幕上观看,其次最好是下载到本地,不然看一段卡一段,因为没钱所以家里的网络也是很慢的,所以最后还是决定把电影下载到本地,这时候就开始操作了,在Chrome中打开网页找到视频的地址:

我们一般查看网页信息直接点击"检查"即可:

点击播放地址,然后继续点击"检查"逐个页面中的元素,看到播放器这一个元素之后发现了视频地址是个m3u8格式的,这个一点不惊讶哈,所以我们就需要下载m3u8地址的视频到本地了,这个就是本文的重点了,这个下载方式网上统一的答案就是ffmpeg,关于ffmpeg这个炸天的开关工具毋庸置疑,现在很多视频编辑和播放等应用都离不开它,他可以编解码视频,编辑操作视频等非常方便,当然下载m3u8格式也不在话下,命令非常简单:ffmpeg -i [m3u8地址] output.mp4

当然这里的m3u8地址可以是网络流地址,可以是本地m3u8文件路径,这样就开始下载了。当然我们需要在网上找到Windows中或者Mac中安装ffmpeg工具,安装方式也是非常简单的。就这样下载到本地了,然后拷贝到电视中可以愉快的看电视了啦。


四、开发自动下载视频工具
到这里其实我们已经可以看到我们想看的电影了,但是这个不是我们技术的终点,因为如果这么简单我就不会写这篇文章了,所以我们接下来要做的是如何在手机中下载m3u8格式的视频,因为有这种需求就是在每逢放假坐高铁的时候,都想预先下载好电影在车上看,所以这时候就需要一个手机中下载m3u8格式的视频应用了,而且只需要输入视频播放地址,这个地址就是从上面关注的公众号后台获取到的,然后直接下载即可到手机中。所以从这个过程来看,我们需要做两件事:
第一件事:使用jsoup库解析页面信息自动获取到视频地址
第二件事:下载视频地址到本地,一般是m3u8格式,所以手机中需要集成一个ffmpeg库


好了这两件事其实不难,第一件事就是解析网页信息,这个毋庸置疑就是用jsoup库即可,但是前提是需要分析页面信息,这个其实在之前我们分析过了:

首先是从后台获取的视频详情地址,然后找到播放地址,这里主要是通过class类型查找元素信息,这里是"stui-content-playlist clearfix" 然后是href地址即可,对应的jsoup代码也很简单:

这里的代码简洁明了,这里顺便把视频名页保存下来为了保存到本地的文件名用,有了这个播放地址继续往下看:

然后继续分析这个播放详情页面元素,找到了class="stui-player"即可:

然后就成功解析到了视频地址,那么第一件事就完成了,这个Jsoup库太强大了一定要记住哈! 第二件事就是如何在手机中下载m3u8格式了,其实到这里我们可以不用自己写一个,网上有个现成的,可以直接使用,但是这个不是本文的意图,我每写一篇文章都是些想给大家传递更多的知识,是过程导向而不是结果导向,所以这个也是我一直强调不要上来就问app下载地址在哪?如果给你了这个过程技术你就会忽略了。授之于鱼不如授之以渔!其实我在上面PC端用了ffmpeg下载了视频,在Android中也有很多ffmpeg库,这个别人已经编译好了直接拿过来用就好了,去github上搜索ffmpeg一大堆库,都差不多,一般是拼接ffmpeg命令然后运行当然也有毁掉包括成功、失败、开始、进度。但是这里的进度是message形式的,所以需要重新解析进度而且很费劲,但是我们最好有个进度展示在UI页面上方便查看。所以这时候我们就需要先去下载m3u8格式文件到本地然后在用ffmpeg合成本地的m3u8到mp4格式,因为github上有一个下载m3u8的库,这个库已经封装好了下载进度,暂停开始多线程下载等功能。这个就不多解释了,关于这两个github上可以找到的库,如果有其他问题可以去编码美丽小密圈继续交流:


这里我已经在封装了一层把FFMpeg+HtmlParse+M3u8Download,当然这里肯定有播放功能和通知栏提醒等,这个工程中很多库都非常好用非常好的一个案例,为了安全就不公开这个代码了,大家需要技术学习可以去编码美丽小密圈查看即可。


这里最后将下载好的m3u8格式的文件合并成mp4文件:

看到这里下载好了所有的视频切片文件,看到.ts也是一种视频格式,其实是可以直接观看的,但是都是一段一段的,如何把这些一段一段视频合成一个完整的mp4就需要依靠m3u8这个视频索引文件了。当然ffmpeg是支持把本地的m3u8格式合成一个mp4格式的视频的,只需要这些视频片段和m3u8放在一个目录下即可。 到这里我们就完成了一个简单的视频下载应用,只需要输入视频页面即可,自动解析出m3u8视频地址,然后开始下载最后到合成本地mp4文件,整个过程一气呵成,不用关心观看视频卡顿问题了。

下载后的视频也是非常高清还有字幕功能:

这样就可以愉快的观看了:

到这里我们就开发完了这个看片神器功能,但是这个工具还不是很完善,就需要各位同学后期完善啦。


五、工具不足和技术总结
这个工具还有很多功能需要优化,比如可以支持直接输入一个m3u8地址视频然后直接下载,其实就是在加个输入框入口而已,省略了自动解析m3u8格式地址功能,因为有的时候我们可以通过一定方式直接拿到视频的m3u8地址格式,还有这个工具我没用加上在线播放视频功能,其实我们可以加个播放器支持在线播放m3u8格式,一遍下载一遍观看也是不错的,这个只要去github上找一个在线播放m3u8流视频播放器库即可。当然看到上面的工具页面,其实缺少了一个文件大小和已经下载大小的功能,这个需要解决一些bug,因为精力问题我就没继续往下研究了。这些不完善的功能都需要大家后期优化了。看完本文之后,其实我们可以了解到这些知识点,而这些知识点也是非常重要的:
第一、了解到了在线流视频m3u8的格式信息

其实这张流程图大致的解释了现在视频网站的工作原理,后台利用工具进行视频切片,然后用户使用设备点播流视频,一遍播放一遍下载下一个视频切片非常方便。
第二、我们知道现在解析页面信息肯定用到的是Jsoup库,而我们经常会写一些工具需要去自动解析页面信息,这时候大家可以利用这个库即可。
第三、我们了解到了M3U8文件格式下载功能,其实底层还是直接下载一个文件而已,只是先现在m3u8文件,然后解析在把每个视频片段下载下来即可,没什么玄乎的功能,同时也了解到了一个强大的视频库ffmpeg了


六、总结
到这里我们就成功的写好了这个在线下载视频的工具,为了安全大家要是对技术感兴趣可以进入编码美丽小密圈进行讨论,当然还是开始说的一点,本文的意图在讨论技术开发,而不是教大家去看免费的电影,因为看盗版是对电影的一种侮辱,同时我们应该坚决抵制盗版视频,不要看片一时爽,越看越是爽!欢迎购买本人逆向大黄书「Android应用安全防护和逆向分析」

免费评分

参与人数 140威望 +2 吾爱币 +136 热心值 +130 收起 理由
程___ + 1 + 1 热心回复!
Dennyniu + 1 + 1 用心讨论,共获提升!
lzfy111 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
minglei526 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
高高hackey + 1 + 1 热心回复!
angelokings + 1 + 1 谢谢@Thanks!
Seny_ + 1 + 1 鼓励转贴优秀软件安全工具和文档!
绝世小熊猫 + 1 + 1 热心回复!
王学重阳 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
hfllove + 1 + 1 我很赞同!
qadan + 1 软件发出来啊
重回十二月 + 1 + 1 我很赞同!
hfck2017 + 1 + 1 我很赞同!
qiang1360 + 1 + 1 谢谢@Thanks!
letgo + 1 + 1 用心讨论,共获提升!
libozi + 1 + 1 谢谢@Thanks!
做风一样的男子 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
冥界3大法王 + 1 编书那个 蒋涛 吧?
风雪萧萧I + 1 + 1 谢谢@Thanks!
心的归宿 + 1 + 1 难得读到大婶的帖子,留个纪念。
JanusPro + 1 + 1 谢谢@Thanks!
redn3ck + 1 + 1 我很赞同!
yTEyLI + 1 + 1 我很赞同!
s-monster + 1 + 1 用心讨论,共获提升!
猫灵夜一 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
无道就是道 + 1 谢谢@Thanks!
wzdm98 + 1 + 1 用心讨论,共获提升!
suyuewen + 1 + 1 用心讨论,共获提升!
hanming327 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
正义天下 + 1 + 1 谢谢@Thanks!
第一季 + 1 + 1 我就一直滑到下面,然后直接加分,因为前面的我基本也看不懂
凌风取雪 + 1 用心讨论,共获提升!
Seper + 1 + 1 我很赞同!
白手套空狼 + 1 + 1 谢谢@Thanks!
qsws3344 + 1 谢谢@Thanks!
wx19977182 + 1 + 1 我很赞同!
GCaptain + 1 + 1 用心讨论,共获提升!
Noel丶Isla + 1 + 1 鼓励转贴优秀软件安全工具和文档!
GTian + 1 谢谢@Thanks!
c970419z + 1 + 1 鼓励转贴优秀软件安全工具和文档!
塔山哥 + 1 + 1 谢谢@Thanks!
假装在伦敦 + 1 + 1 谢谢@Thanks!
gongcrx5 + 1 + 1 我很赞同!
silent_grief + 2 + 1 tuing.cc我貌似看到了链接。哈哈哈哈哈哈哈哈
wota136 + 1 + 1 我很赞同!
leiyinhua + 1 不错哦
tunis + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
scmc0828 + 1 + 1 我很赞同!
bricher9988 + 1 + 1 我很赞同!
Oohuo + 1 + 1 用心讨论,共获提升!
baby九叔 + 1 我很赞同!
w99w + 1 谢谢@Thanks!
耳食之辈 + 1 我很赞同!
447094783 + 1 + 1 热心回复!
殇丶忆年 + 1 谢谢@Thanks!
cx2018 + 1 + 1 我很赞同!
柘城灵 + 1 + 1 热心回复!
wjf453 + 1 + 1 我很赞同!
归路碧迢迢 + 1 + 1 用心讨论,共获提升!
baby360 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
让我扣个6 + 1 + 1 我很赞同!
jiachenhui + 1 书之前买过一本 很棒
godmodel + 1 + 1 用心讨论,共获提升!
tomcrik + 1 + 1 用心讨论,共获提升!
dadao815 + 1 + 1 用心讨论,共获提升!
xaoxao + 1 谢谢@Thanks!
ludoven + 1 + 1 我当时嫌麻烦就用腾讯TBS下载视频的。
taichao + 1 + 1 学习,涨知识了。
maijiao + 1 谢谢@Thanks!
lyslxx + 1 + 1 我很赞同!
qtfreet00 + 2 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chenhanquan0 + 1 + 1 用心讨论,共获提升!
lweizhou + 1 + 1 谢谢@Thanks!
quanyue521 + 1 + 1 热心回复!
tao2017 + 1 + 1 热心回复!
繁星的夜空20127 + 1 鼓励转贴优秀软件安全工具和文档!
墨香~ + 1 + 1 谢谢@Thanks!
xuanzuanmu + 1 + 1 我很赞同!
logafo + 1 + 1 谢谢@Thanks!
平凡的飞鸟 + 1 + 1 我很赞同!
杰森思密达 + 1 我很赞同!
夏520 + 1 + 1 我很赞同!
13266221675 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
神秘人丶 + 1 我很赞同!
djzhao + 1 + 1 用心讨论,共获提升!
冷月白狐 + 1 + 1 姜维大佬的文章必须顶
mm252829231 + 1 + 1 谢谢@Thanks!
tyh2018 + 1 + 1 谢谢@Thanks!
沐春 + 1 + 1 谢谢@Thanks!
paguco + 1 + 1 用心讨论,共获提升!
qdszzj + 1 谢谢@Thanks!
气泡ee + 1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
执念i_ + 1 + 1 用心讨论,共获提升!
fei8255 + 1 + 1 用心讨论,共获提升!
不觉不得 + 1 + 1 我很赞同!
小幻影 + 1 热心回复!
不语欢流年 + 1 我很赞同!
灯火阑珊=zero + 1 + 1 用心讨论,共获提升!
Dingjiale + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
god147 发表于 2019-5-13 08:52
那个公众号才是重点
推荐
pikachu888 发表于 2019-5-13 10:25
KevinHacker 发表于 2019-5-13 09:21
FFMPEG可以互相探讨一下,我一直在研究这。还有,楼主的一次违规成就如何得到的。

违规应该是开始加入论坛的时候不太清楚版规造成的吧
大神的热心值超多,只是没有去兑换消除违规而已,换句话就是压根不在乎
4#
多幸运遇见baby 发表于 2019-5-13 08:33
5#
mejzp 发表于 2019-5-13 08:34
感谢分享··学习了
6#
有人 发表于 2019-5-13 08:52
学习了,感谢楼主
7#
lishun2233 发表于 2019-5-13 08:54
好东西,收藏了,感谢大佬
8#
kevin083 发表于 2019-5-13 08:55
好东西, 公众号也添加了   感谢分享
9#
夜来风袭灬 发表于 2019-5-13 08:56
学习了,回去好好研究下
10#
hkdg009 发表于 2019-5-13 08:56
支持下,学习学习
11#
梁梁59599 发表于 2019-5-13 08:57
谢谢,很好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-5-19 14:30

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表