Python 爬取ts流视频

准备工具

1、安装python,本机环境linux+python3.6

2、直接开撸,基本的包需要pip install

3、话不多说直接干

https://www.******.com/video/*/2-1.html某网站,F12 播放视频界面的所有请求,可以看到有个m3u8 的请求,里面是所有的ts流,下载了这个,意味着所有的TS流的地址你都有了。以下是部分m3u8请求返回数据

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key.key"
#EXTINF:5.000000,
ebCy82OQ000.ts
#EXTINF:5.000000,
ebCy82OQ001.ts
#EXTINF:5.000000,
ebCy82OQ002.ts
#EXTINF:5.000000,
ebCy82OQ003.ts
#EXTINF:5.000000,

看上面可以看出,视频的TS流是AES-128加密的。需要key解密才能播放该TS视频

不着急,继续看浏览器的请求,发现后面还有一个key的请求,很重要,这个就是解密TS流的关键了。没有这个,你的视频是无法解析的

https://www.****.com/***/****/key.key

到这,上帝已经阻止不了你的狂野之心了

贴出部分代码,有需要的自取(记得替换链接)

import urllib.request
import ssl
from Crypto.Cipher import AES
key='key'//获取到的key值,解密TS视频的
cryptor = AES.new(key, AES.MODE_CBC, key)

url='https://www.***.com/***/***/'
for i in range(1026):
    if i<1:
        continue
    k = str(i)
    other_url = k.zfill(3)
    name='****'+other_url
    print(url+name+'.ts')
    ssl._create_default_https_context = ssl._create_unverified_context
    f = urllib.request.urlopen(url+name+'.ts')
    buffer = f.read()
    with open("/python/ts1/"+name+".ts", "wb") as code:
        code.write(cryptor.decrypt(buffer))

至此结束,大家也可以把 m3u8返回的数据,做处理获取到所有ts流的地址,然后请求下载也是可以的。

你可能感兴趣的:(python爬虫)