目录
- 前言
- 运行环境
- 效果展示
- 逻辑分析
- 代码展示
- 补充知识点
前言
网页上的视频看一半就经常容易"卡顿"(或无法观看[偷笑]),看完这篇文章就不用再为影视资源或播放卡顿而烦恼啦~
运行环境
Python版本:3.11.3 Python下载(官网)
ffmpeg环境(用于最后视频的合并) ffmpeg下载(官网)
[!IMPORTANT]
这里注意将下载好的
Python和ffmpeg配置在环境变量中!
相关模块:
requests(需要手动安装)
threading
m3u8(需手动安装)
安装模块命令:
pip install requests
pip install m3u8
效果展示





逻辑分析
一般来说Web端网站播放的较长视频都是采取m3u8格式的多个ts文件的拼接,这样可以大大减少网页加载的时间,我们的任务就是获取到它播放的m3u8文件。
来到网站,通过开发者工具抓包可以发现播放的就是这个m3u8文件

随便粘贴一个到浏览器查看,可以看到直接将ts文件下载到本地了。确保它没有加密,咱们还是打开看一眼~


OK能正常打开,下面就开始下载m3u8文件中的ts视频片段。
由于我们一般看的影视都是电视剧,电影这些时间比较长的媒体资源,因此单线程下载是非常慢的(但也不是不行,无非就是慢慢等嘛。。。),这里我们采取多线程的方式进行爬取。
代码展示
"""
-*- coding: utf-8 -*-
@File : .py
@author : @鲨鱼爱兜兜
@Time : 2024/07/18 17:28
"""
import threading
import m3u8
import requests
def thread_task():
while True:
if video_list:
print(video_list)
headers1 = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',

5万+

被折叠的 条评论
为什么被折叠?



