如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?

2024-08-25 18:04

本文主要是介绍如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、数据来源分析


    1.明确需求
    网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.html
    数据:视频
    2.抓包分析
    F12
    刷新网站
    搜索关键字找到对应的数据位置 M3U8
    https://vd6.l.qq.com/proxyhttp


二、代码实现步骤


    发送请求
    获取数据
    解析数据
    保存数据  

三、正常爬取代码

import requests
import re
from pprint import pprint
import jsonheaders = {'accept': '*/*','accept-language': 'zh-CN,zh;q=0.9','content-type': 'text/plain;charset=UTF-8','cookie': 'qq_domain_video_guid_verify=507c92025bbf667c; vversion_name=8.2.95; video_omgid=507c92025bbf667c; _qimei_uuid42=1881811391a10031d240126f353cd310f5cbf9f774; pgv_pvid=1833209344; _qimei_fingerprint=28e27f13e024b4e72ed41740c05847af; _qimei_q36=; _qimei_h38=2db8f8c1d240126f353cd31002000004d18818; o_minduid=fEZEgSlaTS1EadavpD_tVESHLMB8xDIk; appuser=6E4931CCE5CB1885; pgv_info=ssid=s6672934747; LPDFturn=798; LPPBturn=773; LKBturn=898; LPLFturn=175; LPSJturn=904; LBSturn=975; LVINturn=259; LPHLSturn=587; LHTturn=445; Lturn=172; LPVLturn=760; LZTturn=929; LDERturn=900','referer': 'https://v.qq.com/','sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-site','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
}response = requests.post('https://vd6.l.qq.com/proxyhttp',  headers=headers, data=data)
context = response.json()
voad = context['vinfo']
voaddata = json.loads(voad)
pprint(voaddata)
m3u8_url = voaddata['vl']['vi'][0]['ul']['ui'][-1]['url']
print(m3u8_url)
m3u8 = requests.get(url=m3u8_url, headers=headers).text
# print(m3u8)
ts_list= re.findall(",\n(.*?)\n#",m3u8,re.S)
for ts in ts_list:print(ts)tsbase = 'https://defaultts.tc.qq.com/vipts.tc.qq.com/AF8H7lDpwYdrycx9TJOH7gFbhFzqHlzIaYXsBfV6ujAk/B_efeEBb4uHJ8TOTkZIB0ooo9N3FBiMa0i4vWoGPCx-MBjTgrF9Gkl8W5Wef7bGPCS/svp_50112/_DGlnT9NscaHvtg1cgDcBjlfH5xG2zUzW2NmMUNUtynTPxeoaA7MHYiUuyjty5_8rEA4fNZmxeV0BI4I-oVG76Z6jQAZmEc7f-gBRCo3zh6gBCRuZBAS-cTfa-9KnKAffogGYhcqpJxmlBE2_oWxeI2io5c8KWb0XX8bWB36KEQykgiHkds7KKMoUe6eWuhYM4l6JW-96NpM0gB1AByhKVjypXNwxYqZVsc1uo2kq2_AT6GZ-w0p_Q/'for ts in ts_list:print(ts)ts_url = tsbase + tsprint(ts_url)res1 = requests.get(url=ts_url)with open('./video/第2话.mp4', 'ab') as f:f.write(res1.content)

四、自动化爬取视频

import requests
import re
import time
import tqdm  #进度条
from pprint import pprint
import json
import pandas as pd
"""
一、数据来源分析网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.htmlhttps://vd6.l.qq.com/proxyhttp
"""
from DrissionPage import ChromiumPage,ChromiumOptions
#chrome:version
co = ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chrome.exe")
page = ChromiumPage(co)
page.listen.start('proxyhttp')
page.get("https://v.qq.com/x/cover/mzc002006n62s11/z0045grsctu.html")
time.sleep(10)res=page.listen.wait()
context=res.response.body
# title = page.ele('class:.txp-next-preview__desc').text
voad = context['vinfo']
voaddata = json.loads(voad)
# pprint(voaddata)
m3u8_url = voaddata['vl']['vi'][0]['ul']['ui'][-1]['url']
tsbase ='/'.join(m3u8_url.split('/')[:-1]) +'/'
# print(m3u8_url)
m3u8 = requests.get(url=m3u8_url).text
print(m3u8)
ts_list= re.findall(",\n(.*?)\n#",m3u8,re.S)
for ts in ts_list:print(ts)ts_url = tsbase+tsprint(ts_url)res1=requests.get(url=ts_url)with open('./video/第1话.mp4','ab') as f:f.write(res1.content)

这篇关于如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106269

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2