网页m3u8视频下载

m3u8常用于网络直播或在线视频,改文件格式最大的特点就是,他不向MP4文件很大的一整个,而是一个大的视频被切分为很多小的,以ts文件结尾的短视频文件.
.ts格式的文件是可以直接被播放器打开的,只是很短而已.

网页在线m3u8视频下载方式01

第一步 下载下载器

程序下载链接

# 个人服务器下载地址
http://43.138.58.139:83/windows/m3u8%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD%E5%99%A8.exe
# 百度网盘下载地址
链接: https://pan.baidu.com/s/1Ii2usR1QIptByOEw-8cYPg 提取码: nip7 复制这段内容后打开百度网盘手机App,操作更方便哦

第二步 获取下载地址

打开视频播放页面,按下F12(如果是笔记本可能需要按下FN+F12),打开开发工具窗口.网页m3u8视频下载_第1张图片
打开后如上图:
当然窗口也可能出现在其他位置,如镶嵌在网页中下面或者侧面,可以再右上角三个点的Dock Side选项调整,不管哪种都不影响接下来的操作.

然后网页m3u8视频下载_第2张图片
按F5或者浏览器的刷新当前网页.
网页被刷新后,会不断地加载各种文件,这些不需要关心,只需要注意最底部不断出现的,当出现xxx.ts时,就不要继续向下了.
网页m3u8视频下载_第3张图片
此时,在最开始加载的ts文件上面(ts文件都是有序号的,注意结尾的数字都是递增的),找到一个叫做index.m3u8的文件,如图所示,他肯定在ts文件上面不远的位置,并且这个文件是一定存在的.

优先使用下面的index.m3u8的文件的地址,鼠标右键点击,弹出的窗口中复制下载地址.如下图.网页m3u8视频下载_第4张图片
双击之前下载的程序,启动,输入复制的地址,回车,输入要将下载的文件保存为什么名字,回车,稍等片刻(取决于网速)开始下载.
网页m3u8视频下载_第5张图片

开始下载网页m3u8视频下载_第6张图片

下载完成后窗口自动关闭,此时,他的同级目录下,会出现刚刚输入的要保存的内容的视频,如图.
网页m3u8视频下载_第7张图片
双击视频,即可开始观看

注意:电影较大下载时间较长,黑窗口不能关闭,下载完成后会自动关闭,.
观看视频时,只能观看已经下载到本地的,也就是边下边播.

如图,已经下载了两分钟的,显示可观看的也是两分钟.如果播放器比较好他会自动更新时长.
网页m3u8视频下载_第8张图片

方式二

上一种方法适合大多数人,这种方式适合少数人.
还是如上方式获取index.m3u8下载地址,然后需要安装Python解释器和pip,同时还要安装几个相关包,优势是下载快(当然也取决于你的网速和服务器的带宽,后者是无法干涉的),缺点是无法边看边播.

下载代码

import requests
from multiprocessing import Pool
import os

class download:
    def __init__(self):
        self.session = requests.Session()
        self.headers = {'Content-Type':'application/json','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

    def getContent(self,url,filename):
        print('开始下载文件:',filename)
        tsData = self.session.get(url,headers = self.headers).content
        with open(filename,mode='wb') as w:
            w.write(tsData)
    def index(self,url):
        '''
            请求index文件 获取列表
        '''
        tsListString = self.session.get(url=url,headers = self.headers).content.decode('utf-8')
        tsList = tsListString.split('\n')
        # print(tsList)
        '''
            根据index.m3u8文件获取对应的ts视频列表
        '''
        tsDownList = []
        for ts in tsList:
            if '.ts' in ts:
                tsDownList.append(ts)
        # print(tsDownList)
        '''
            获取下载地址
        '''
        downloadUrl = url.split('index.m3u8')[0]
        '''
            创建进程池提交任务
        '''
        print("开始创建进程池...")
        pool = Pool(10)
        for i in tsDownList:
            pool.apply_async(func=self.getContent,args=(downloadUrl+i,i))
        pool.close()
        pool.join()
    def fileIntegration(self,fileNameMp4):
    	'''
			文件合并函数
		'''
        fileList = os.listdir()
        tsFileList = []
        for tsFile in fileList:
            if '.ts' in tsFile:
                tsFileList.append(tsFile)
        fileNameMp4 = fileNameMp4 + '.mp4'
        if os.path.exists(fileNameMp4):
            os.remove(fileNameMp4)
        with open(fileNameMp4, mode='ab') as w:
            for i in tsFileList:
                with open(i,mode='rb') as r:
                    fileData = r.read()
                    w.write(fileData)
                os.remove(i)
if __name__ == '__main__':
    url = input("[url] >")
    fileNameMp4 = input("[要保存的文件名] >")
    download().index(url)
    print("开始合并文件")
    download().fileIntegration(fileNameMp4)

Python官网下载解释器

官网地址

https://www.python.org/
下载安装都是国外地址.操作麻烦,建议非专业人士不要试了,访问量高在写这种方式详细操作安装过程,行内人看到自然知道怎么操作,代码已经写好,新建个文件粘贴进去执行按照提示输入就好,要是在import位置有问题win + R 打开执行pip install [import后面的名称就完事]


文章仅供学习交流使用,转载请附上原文地址


2021/11/17日更新

原有下载地址http://49.232.43.42:83/windows/m3u8%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD%E5%99%A8.exe已经过期,更换为新地址

你可能感兴趣的:(其他,其他)