下載m3u8視頻,下載小電影,破解,下載,以及整合


:怎么說呢,一直想寫一個下載小電影的程序,之前搞過爬蟲,只是看到過m3u8的文件,

近日有時間,心血來潮想搞一下,可是現在竟然加密了,是我out了,還是技術發展太快。

話不多說,直接上思路:

1 讀取m3u8文件,給他標記上型號
2 根據標記,然后下載,並以標記給文件命名,
3 然后合並視頻
4 操作說明:
5 1.需要自己去下載m3u8文件,命名:index.m3u8
6 2.自己去找密鑰 ,下載的時候會遇到密鑰,自己下載函數里面去改
7     key = "fad2a57ccb9deefc"

代碼奉上:有本事就留個腳印,沒有本事就算了,因為我已經把你們能對我的所有可見操作都關閉了。

from concurrent.futures import ThreadPoolExecutor
from Crypto.Cipher import AES
import requests,os,uuid
# 合並文件
def merge():
    tmp = []
    for root, dirs, files in os.walk("video/"):
        for f in files:
            if f.split(".", 1)[1] == "ts":
                tmp.append(int(f.split(".", 1)[0]))
    tmp.sort()
    for i in range(len(tmp)):
        tmp[i] = f"{tmp[i]}.ts"
    shell_str = '+'.join(tmp)
    shell_str = 'copy /b ' + shell_str + ' ' + "0.ts"
    os.chdir(os.path.join(os.getcwd(), "video"))
    os.system(shell_str)

    # 接下來復制,並且轉換成MP4
    shell_str = f"copy /b 0.ts {uuid.uuid1()}.mp4"
    os.system(shell_str)
    os.system('del /Q *.ts')
    print("整合完畢,快去看吧")

def downVideo(obj,key=None):
    print(f"正在下載第{obj['num']}")
    url = obj["url"]
    res = requests.get(url)
    key = "fad2a57ccb9deefc".encode("utf-8")
    cryptor = AES.new(key, AES.MODE_CBC, b'qqqqqqqqqqqqqqqq')
    with open(f"video/{obj['num']}.ts",'ab')as fp:
        fp.write(cryptor.decrypt(res.content))

def start(file_src="index.m3u8"):
    # 創建目錄
    if not os.path.isdir("video"):
        os.mkdir("video")
    file_src = "index.m3u8"
    arr = []
    with open(file_src)as f:
        index = 1
        for line in f.readlines():
            if "#" not in line:
                obj = {}
                obj["url"] = line.replace("\n", "")
                obj["num"] = index
                index = index + 1
                arr.append(obj)
    return arr


if __name__ == "__main__":
    # 准備工作
    arr = start()
    # 利用線程池 下載視頻
    tps = ThreadPoolExecutor(10)  # 最大線程數
    for obj in arr:
        tps.submit(downVideo, obj)
    tps.shutdown()
    # 下載完畢自動整合數據
    merge()
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM