一个程序员枯燥且乏味的下午

昨天有一个项目要录视频,但需要后期剪辑制作,于是心血来潮去剪辑视频玩玩,用的是“爱剪辑”这款软件,我辛辛苦苦把视频剪辑完,发现要充钱,心中一万只草泥马奔腾而过,你要钱你早提示啊,别等老子剪辑完要进行下载再给我来这么一手啊。

作为程序员的能如此像“爱剪辑”妥协?当然不能,然后我又去找其他剪辑软件玩玩,发现各位大佬都非常推崇“Avid Media Composer”这款软件,于是我就找来了这款软件…和它的破解方法,嘻嘻。

但由于是“百度网盘”的资源,而1.8G的文件是在太大,没开会员的我今天上午才等到它下载完(是的,我向百度网盘妥协了,它比我还流氓)。

然后当我打开这款软件我才发现,我没有很好的视频资源,想一想有哪些大片可以剪辑呢(此大片的解释!=大人看的片),于是想到了前一段时间跑步聊到的《权力的游戏》,于是准备找一下这部剧的高清资源,找了很多个网站,最终找到了“美剧网”。

当我满怀欣喜的打开这个视频,同时打开F12获取视频资源的时候(大家还是应该尊重原版的,我这种行为还是不提倡的…“加大力度”),发现网页进行跳转了,即WEB的调试跳转。

原视频图:
在这里插入图片描述

点击F12跳出调试窗口的时候:
在这里插入图片描述

这里很多熟悉web前端的小伙伴可能会比较陌生,这是这么一回事呢,其实这里面用了debugger的监测JS,也就是页面的DeBug,这个DeBug就比较熟悉了,那么我也将这些防止调试的代码贴出来:

<%--JSP页面执行--%>
<%--禁用调试--%>
<c:if test="${!debug}">
    <script type="text/javascript">
        (function noDebuger() {
            function testDebuger() {
                var d = new Date();
                debugger;
                if (new Date() - d > 100) {
                    document.body.innerHTML = '<div style="width: 100%;height: 50px;font-size: 30px;text-align: center;font-weight: bold;">年轻人,不要太好奇</div>';
                    return true;
                }
                return false;
            }
            function start() {
                while (testDebuger()) {
                    testDebuger();
                }
            }
            if (!testDebuger()) {
                window.onblur = function () {
                    setTimeout(function () {
                        start();
                    }, 500)
                }
            } else {
                start();
            }
        })();
    </script>
</c:if>

方法有很多种,我就不一一列举了,这种防调试其实也就防君子不放小人,如果想要别人无法获取你的资源有很多种方法,也比上面这种方法靠谱。

OK,既然我们说防调试说完了,该说“反”防调试,嗯,这个对于我来说就比较简单了,但是呢,我这个人比较懒,你要我按照“百度”上面的方法一个个的试,实在是麻烦,要知道这年头清华北大都不太靠谱,更何况百度呢。

于是我打算换一种思路来。

既然防调试是的代码是JS,也就是JavaScript,那我们把页面的js禁用掉不就可以了吗,说做就做。

首先,打开Chrome谷歌浏览器,点击右上角的设置,找到高级设置里的“隐私设置和安全性”,如下图:

在这里插入图片描述

然后找到内容设置(或者其它设置):
在这里插入图片描述
点击屏蔽它:

在这里插入图片描述

这样我们就完成了禁用JavaScript的操作,接下来只需要到指定页面再进行调试就行了。

又一次满心欢喜的以为可以拿到这些资源的时候,发现怎么找不到视频下载路径啊…
在这里插入图片描述

这里面啥路径也没有。

嗯…想了想,应该是禁用JS的时候把这些都给隐藏了,没关系,隐藏了爷再给你找出来。

找啊找,终于在一个script语法中找到了,怎么找到的我就不说了,毕竟我学了这么久的JavaScript,靠的就是两点:直觉和运气。

在这里插入图片描述

这里的script因为我们禁用了页面的JavaScript的原因,就直接显示了声明字段在这,其中有两个明显的路径,一个是vid,一个是poster,其中poster的路径后面是“.jpg”,很明显不是,但vid的路径后缀“.m3u8”好像也不是啊,

难道我找错了,于是我又重新找了一遍,发现这里有用的路径就这两个,其它的路径都是注册登录页面跳转啥的,更不是了啊。

这里我看“.m3u8”怎么有种似曾相识的赶脚呢,于是怀着好奇去“维基百科”找了一下(维基百科是世界应用范围最广的百科全书),看完之后恍然大悟,索打死呢(中:原来如此)。

M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。
HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。
HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

嗯,你们可能看不懂,简单点说,

m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。

其格式如下:

#EXTM3U
#EXT-X-TARGETDURATION:10

#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.ts

其中:对于点播用户来说:客户端只需按顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要 定时重新请求 该 m3u8 文件,看下是否有新的片段数据需要进行下载并播放

所以说我为什么这么熟悉,想当年我在学校做项目,原本打算做的就这种“直播”项目,但因为当时自己是在太蠢,把直播项目做成了资讯项目,还是五脏不全的那种,哎,不说了,说多了都是泪啊。

既然了解了“.m3u8”这种文件,拿我们就拿这个路径下载来看看呗。

这时候问题又又又来了,“https%3A%2F%2Fyouku.com-youku.net%2F20180614%2F12033_fc7f0ea6%2Findex.m3u8”,这个路径很明显不对啊,为什么说不对呢,以我多年编程(其实也就几年)经验来说,这肯定是加密过的,因为连最基本的https的格式都遵守,不用试都知道不行(但我还是试了一次,果然不行,哈哈)。

这时候其实我已经想到了是哪种加密,首先抛弃调无法解密的MD5加密等,因为开发者不可能这么蠢加密加到自己都解不了密,其次是https类型的路径加密,什么加密方法在加密的时候能保留https,Fyouku.com这些内容呢,而且前面还提到了“.m3u8”可是utf-8 编码,答案就很明显了。

正是:UrlEncode,那我们就用UrlDecode,怎么写…

当然是找在线解密啊,难道还要我自己写吗,我这么懒,不会吧不会吧,现在的程序员不会真的是自己一行行敲代码的吧。

这里我就要说一下我的观点了:

“我们不是BUG制造员,我们只是BUG的搬运工,现已知的BUG都已经被创造出来了,而那些新BUG根本不叫BUG,而是新需求”

“啊,又是新的一天,将我的Ctrl+C和Ctrl+V按键擦亮点”。

好吧,直接放解密过程:
在这里插入图片描述

这样我们就拿到了真正的下载路径,那么我们下载来看看,用“Notepad++”:
在这里插入图片描述

卧槽,又是“.m3u8”,不是吧,还没有完整路径,这下怎么办。

嗯,确实,这个网站的程序员还是有想法,一般的人整到这里就蒙了,不想再整下去了,就这?就这我怎么继续下去啊。

这一手就能让大部分知难而退了,太TM搞人心态了。

不过还是不够啊,就这点强度吗?正好我今天又有时间,不能给你整出来了,没错,程序员的日子就是怎么朴实无华且枯燥。

既然你有着这个相对路径,那么你(即开发者)也坑定能拿到,那么这个路径就是最开始F12获取到两个路径之一。

于是我又拿vid+pster的“https://youku.com-youku.net/20180614/12033_fc7f0ea6”和“https://tva2.sinaimg.cn/large”两个路径试了试,这一试不就试出来了吗?

每次,就是第一个路径:https://youku.com-youku.net/20180614/12033_fc7f0ea6/1000k/hls/index.m3u8

下载成功,打开文件:
在这里插入图片描述

不是吧,还来…

不过这次里面就不是".m3u8"这种搞人心态的东西,ts,不会吧不会吧,不会真有人不知道".ts"是什么文件吧,这里就算是“百度百科”都能给你一个合适的答案,

在这里插入图片描述

嗯,虽然我们获取到了这些文件,但很明显也是要进行路径下载的,那…

那什么那,1234,在来一次,死马当活马医。

https://youku.com-youku.net/20180614/12033_fc7f0ea6/1000k/hls/0c58723562e060.ts

最终成功将《权力的游戏》其中一个小片段给拿了出来,但其实这里面有1000多个视频资源,可能对于一些整体收藏的人来说不是很友好,但是对于视频剪辑者来说太TM舒服了,不用一帧一帧的去找,难道不够爽吗?

放一下最终文件的播放效果:
在这里插入图片描述
正当我自洋洋得意的时候,我忽然想到了我还有一个“双核浏览器”,于是用这个杂牌子浏览器一看,不去禁用JS也可以F12打开,我裂开了啊!
桑星难过…

目前找资源的内容就写到这了,如果有时间我再整一整“Avid Media Composer”的操作手法呐,嗯,我还要强调一点,我是一个程序员,除了程序啥都会一点的叼毛。

为什么叫叼毛,刚来深圳的时候大家叫我靓仔,最后一群人逮你叫叼毛,老伤心了。

最后推荐一本书:《论持久战》。

就这样,拜,老子爱你们,么么哒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值