解析m3u8直链php源码_Python多进程教你下载M3U8加密或非加密视频

本文解析了m3u8直链php源码,并通过Python多进程实现M3U8加密或非加密视频的下载。文章详细介绍了m3u8文件的结构,包括非加密和加密m3u8文件的区别,并提供了爬虫源码,利用多进程加速下载并合并视频碎片。
摘要由CSDN通过智能技术生成

m3u8 是一种基于 HTTP Live Streaming 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成。

相信大家都看过m3u8格式文件的内容,我们直来对比一下有什么不同,然后教大家怎么用python多进程实现下载并且合并。

一、两者不同

  • 非加密 的m3u8文件
a8672579622927e2c3ad42cf9801e177.png
  • 加密 的m3u8文件
6e5fd949dd7c2ebba6fe5e51030bcbc0.png
  • 相信眼尖的小伙伴已经看出了2个内容的不同之处,对的,其实区别就在加密文件的第 5 行的 #EXT-X-KEY 的信息
  • 这个信息就是用来视频内容解密的,其实里面的内容大多是一段字符串,其实也就是解密时候的KEY
  • 那么这个怎么去解密呢,我们暂时不管,我们先来解释一下每行的意思
  • 第一行: #EXTM3U 声明这是一个m3u8的文件
  • 第二行: #EXT-X-VERSION 协议的版本号
  • 第三行: #EXT-X-MEDIA-SEQUENCE 每一个media URI 在 PlayList中只有唯一的序号,相邻之间序号+1
  • 第四行: #EXT-X-KEY 记录了加密的方式,一般是AES-128以及加密的KEY信息
  • 第五行: #EXTINF 表示这段视频碎片的持续时间有多久
  • 第六行: sA3LRa6g.ts 视频片段的名称,获取的时候需要拼接上域名,找到文件的正确的路径

如果想了解更多,请参考我的另一篇文章: m3u8各个字段意义解析

二、爬虫源码

#!/usr/bin/env python

# encoding: utf-8

'''

#-------------------------------------------------------------------

# CONFIDENTIAL --- CUSTOM STUDIOS

#-------------------------------------------------------------------

#

# @Project Name : 多进程M3U8视频下载助手

#

# @File Name : main.py

#

# @Programmer : Felix

#

# @Start Date : 2020/7/30 14:42

#

# @Last Update : 2020/7/30 14:42

#

#-------------------------------------------------------------------

'''

import requests, os, platform, time

from Crypto.Cipher import AES

import multiprocessing

from retrying import retry

class M3u8:

'''

This is a main Class, the file contains all documents.

One document contains paragraphs that have several sentences

It loads the original file and converts the original file to new content

Then the new content will be saved by this class

'''

def __init__(self):

'''

Initial the custom file by self

'''

self.encrypt = False

self.headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0"

}

def hello(self):

'''

This is a welcome speech

:return: self

'''

print("*" * 50)

print(' ' * 15 + 'm3u8链接下载小助手')

print(' ' * 5 + '作者: Felix Date: 2020-05-20

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值