使用python下载网页上的m3u8可以吗流

   2023-05-13 20:34:53 4290
核心提示:有时候,我们在网页上追剧得时候,出于各种原因,希望将这些视频下载到本地。接下来,我们用python撸一段代码来实现。1 抓包:获

使用python下载网页上的m3u8可以吗流

有时候,我们在网页上追剧得时候,出于各种原因,希望将这些视频下载到本地。接下来,我们用python撸一段代码来实现。

1 抓包:获取.m3u8得请求地址

具体步骤:

在浏览器中打开视频网页F12打开开发者工具,并切换至网络标签刷新该网页,发现网络得列表中加载了多个请求
在筛选器框中,输入m3u8过滤其他无关得请求
点击m3u8请求,切换至预览,确认下请求文本是否是ts文件得请求列表,如果是,说明我们抓取得地址是正确得,ts文件是视频在线播放时,被切割得视频片段,我们专业从中任意复制一条,在浏览器中打开,浏览器会自动弹出下载该文件得对话框,下载完成后,其实是专业用视频播放软件播放该视频得。2 撸代码2.1 使用requests,请求上一步得.m3u8结尾得url

import requestsfrom fake_useragent import UserAgent# .m3u8得请求地址url = 'https://m3u.haiwaikan感谢原创分享者/xm3u8/c67187e521c6459f9cdd4731bff1e96e3c32d6d99d6c4f68be0469232320c8389921f11e97d0da21.m3u8'# 设置代理(有些网站需要最新科学上网才能访问)proxies = {"https": "感谢分享127.0.0.1:10887"}# 将请求包装成浏览器端访问,防止有些网站反爬虫ua = UserAgent()headers = {'User-Agent': ua.random}response = requests.get(url, headers=headers, proxies=proxies)content = response.textprint(content)

debug看下已经拿到了ts文件列表了

2.2 解析上面得响应结果,提取ts链接列表

# 将文本拆分为行lines = content.split('n')ts_urls = []# 遍历文本提取ts视频片段得地址for i in range(0, len(lines)):if lines[i].startswith("https:"):ts_urls.append(lines[i])2.3 遍历ts链接列表,使用requests逐个访问各个列表,将结果写入本地磁盘,该步骤会在盘符下生成多个ts文件;

# 指定保存得文件路径:因为权限问题,该路径必须先创建好save_dir = '/Users/zhaoyang/Downloads/ts_demo/'for i in range(0, len(ts_urls)):ts_resp = requests.get(ts_urls[i], headers=headers, proxies=proxies)with open(save_dir + 'video_' + str(i) + '.ts', 'wb') as f:f.write(ts_resp.content)2.4 将多个ts文件合并一个大得ts文件

with open(save_dir + 'all.ts', 'wb') as outfile:for i in range(0, 351):file_name = save_dir + 'video_' + str(i) + '.ts'with open(file_name, 'rb') as infile:outfile.write(infile.read())

多个ts文件合并成大文件

2.5 使用ffmpeg将大得.ts文件转换成.mp4

需要在电脑上安装好ffmpeg,并添加到环境变量

# 转换为MP4格式subprocess.call(['ffmpeg', '-i', save_dir + 'all.ts', '-c', 'copy', save_dir + 'output.mp4'

 
举报收藏 0打赏 0评论 0
 
更多>同类百科头条
推荐图文
推荐百科头条
最新发布
点击排行
推荐产品
网站首页  |  公司简介  |  意见建议  |  法律申明  |  隐私政策  |  广告投放  |  如何免费信息发布?  |  如何开通福步贸易网VIP?  |  VIP会员能享受到什么服务?  |  怎样让客户第一时间找到您的商铺?  |  如何推荐产品到自己商铺的首页?  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备15082249号-2