说明
今天为了要下载一部不可告人的影片,那个影片用的是m3u8,网上找来找去都没找到合适的下载器,就麻烦一点自己抓一下然后写了一个了,这个方法没点技术还真的搞不了。
下面的代码就是我在看了一下m3u8文件之后写的,整个影片被分为了262份,命名格式为index[数字].ts
,所以我们这里可以直接使用for
来进行。然后那个m3u8文件里面有标明加密AES128,不过key
也是储存在了文件里面,不过这里就不公开了。
因为只需要下载一部影片的关系,没加密的处理方法我就不写了,然后使用这个代码的前提是我已经读了整个m3u8档案了,所以其实这个代码是没办法直接读取m3u8的,只能手动修改里面的网址,数字等资料。
下载之后的切片影片都会储存在files
里面,需要手动合成一下噢!(建议使用linux的ffmpeg
指令,win系统里面使用copy
好像会有些问题)
代码
import os
import shutil
import requests
import datetime
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
def download():
# 指定储存目录
download_path = os.getcwd() + "/files"
if not os.path.exists(download_path):
os.mkdir(download_path)
key = "加密的KEY"
url = "网址不公开噢!自己的网址"
for i in range(262):
filename = "index" + str(i) + ".ts"
pd_url = url + filename
res = requests.get(pd_url)
if(len(key)):
cryptor = AES.new(key, AES.MODE_CBC, key)
with open(os.path.join(download_path, filename), 'ab') as f:
f.write(cryptor.decrypt(res.content))
else:
print("无加密key")
if __name__ == '__main__':
download()
版权属于:江筱雨
本文链接:https://www.yuisblog.com/archives/116/
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!