前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实用主义 | 再也不看马赛克画质的电影了

实用主义 | 再也不看马赛克画质的电影了

作者头像
咸鱼学Python
发布2019-10-09 15:11:31
9190
发布2019-10-09 15:11:31
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

废话

从《夏洛特烦恼》、《羞羞的铁拳》到《西虹市首富》,开心麻花貌似成为引爆票房的奇点。想去电影院支持一波,但程序猿看电影不存在的!BUG改完了?膨胀了?还想看电影?

按耐不住内心的渴望,在种种原因的驱使下我还是向枪版低头了(对不起,我悔过),但是这马赛克画质简直瞎了我的鱼眼,各位大佬随意感受一波:

请支持正版

于是我罪恶的点开了朋友圈某微商的福利资源,画质是不错但是他卡啊。。看一秒卡三秒。。

请支持正版

难得摸鱼的时间怎么能浪费在这上面,于是祭出我大Python,很快我就拿到了我想要的.avi.mp4 高清画质的资源,美滋滋~

请支持正版

动手

获取.ts文件

PC访问了福利资源网址,没有任何显示自动下载了一个 .mu38 后缀的文件,面向搜索引擎学习了下,得到以下结果:

m3u8是苹果公司推出一种视频播放标准,是m3u的一种,不过 编码方式是utf-8,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少I/o访问次数,一般存在服务器的内存中),通过m3u8解析出来路径,然后去请求。

看到这里我用Notepad++打开,得到以下结果:

手动请求了一个网址:

代码语言:javascript
复制
https://doubanzyv2.tyswmp.com:81/2018/07/30/LSn7hSBfY0LxpKX2/out000.ts

得到一个out000.ts文件

这里的 .ts 文件可以理解为是视屏分隔后的片段,我们只要把它组合起来就是我们想要的结果了。

到这里,基本就有思路了,提取文件中所有 .ts 文件的链接,使用requests挨个请求并保存返回的 .ts 文件,再合并在一起就可以了, so easy !

代码如下:

代码语言:javascript
复制
import requests
import re

with open("playlist.m3u8", "r") as f:
    filedetail = f.read()
    pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
    url_list = re.findall(pattern, filedetail)

    for url in url_list:
        requests.packages.urllib3.disable_warnings()
        r = requests.get(url,verify=False)
        filename =  re.findall(".*/(.*?).ts", url)
        # print(filename)
        with open(filename[0]+".ts", "wb") as code:
            code.write(r.content)
            print("下载成功", filename[0]+".ts")

这个时候已经获取到所有的 .ts 文件

ts文件

然后使用缓冲合并工具合并所有的 .ts 文件。

合并

把.ts文件整理到手机当中(用安卓模拟器应该也是可以的),打开软件按照下图的步骤操作即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 废话
  • 动手
    • 获取.ts文件
      • 合并
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档