某里云视频下载方法分析

最近遇到了个喜欢的视频想下载下来。抓包第一眼觉得不复杂,快速找到m3u8的key尝试解密,竟然无法解密ts文件。重新分析一遍流程,为这视频好一通折腾,记录一下方法。

抓包获取的m3u8文件一看是加密了

分析一下JS解密的流程:

  1.  首先生成一个随机字符串:

  2. 利用上面生成的随机字符串加密后赋值给u.rand,这里会涉及到jvsm混淆,白话讲下就利用RSA的公钥进行加密。

  3. 接下来是生成请求视频地址的Signature值,生成函数:makeChangeSiga(i, e.accessSecret)。生成链接:https://vod.cn-shanghai.aliyuncs.com/?AccessKeyId=*** 进行GET提交,返回一个JSON信息。

  4.  返回JSON信息中带着Rand、Plaintext、PlayURL为M3U8的链接地址 。利用之前生成的随机字符串、rand和plaintext值进行计算,得到m3u8的key值,这里有jvsm逻辑过于复杂,直接提取JS代码调用这个函数更方便 一些。

  5.  得到M3U8的key直接尝试进下载并解密。竟然没成功。继续往下看,发现代码这里并没有对整个ts进行加密,而只加密了TS文件的PES部分,这里卡住好一通折腾。最终把代码扣出来改动一下,可以调用此JS进行ts解密。

  6. 这是ts包的解密分析部分

  7. 最后利用上面的逻辑写一个批量的下载工具,就可以愉快的下载啦~~~

        

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一份基于Python的爬取B站评论并生成词云的代码,需要使用到`requests`、`beautifulsoup4`、`jieba`、`wordcloud`等库: ```python import requests from bs4 import BeautifulSoup import jieba from wordcloud import WordCloud # 获取B站视频评论数据 def get_comments(av_num): url = f"https://api.bilibili.com/x/v2/reply?jsonp=jsonp&pn=1&type=1&oid={av_num}&sort=2" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } response = requests.get(url, headers=headers) data = response.json() comments = [] for comment in data["data"]["replies"]: comments.append(comment["content"]["message"]) return comments # 生成词云图 def gen_word_cloud(text): cut_text = " ".join(jieba.cut(text)) wc = WordCloud( font_path="msyh.ttc", background_color="white", width=1000, height=600, max_words=200, max_font_size=80, ) wordcloud = wc.generate(cut_text) wordcloud.to_file("wordcloud.png") if __name__ == "__main__": av_num = "填写B站视频的av号" comments = get_comments(av_num) text = "".join(comments) gen_word_cloud(text) ``` 其中,`get_comments()`函数实现了获取B站视频评论数据的功能,使用了B站的API接口。`gen_word_cloud()`函数实现了生成词云图的功能,使用了`jieba`和`wordcloud`库。最后,在`if __name__ == "__main__":`中调用以上两个函数,即可得到B站视频评论的词云图。请注意填写正确的B站视频的av号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值