自己开发软件实现网站抓取m3u8链接

news2024/12/26 21:59:51

几天前一个同学说想下载一个网站的视频找不到连接,问我有没有什么办法,网站抓取m3u8链接 网页抓取m3u8链接。当时一听觉得应该简单,于是说我抽空看看。然后就分析目标网页,试图从网页源码里找出连接,有的源代码直接有,但是有的没有, F12调出开发者工具,进NetWrok看到网页是通过ajax发起xhr请求拿的视频连接,怪不得页面元素里没有下载地址,请求的是m3u8格式文件,查了一下这是一种分片的流媒体文件,然后到处找下载这种格式文件的工具,都不是很理想。很多都是直接下了分片后的ts文件,但是这个网站的是加了密的,不能直接播放,最后找到ffmpeg这个视频插件神器,视频转码、剪切、合并、播放都不在话下,还支持多平台。 ffmpeg FFmpeg介绍和入门 ffmpeg开 FFmpeg官方网站 有了神器何不自己写个工具来下载呢,准备动手时首先就被连接怎么获取这个问题给拦住了, 数据不在网页元素里, 拦截网页所有请求肯定就拿到了。筛选后得到三种方案: 首先试了WebBrowser,目标网站直接打不开网页,让换谷歌浏览器,修改了UserAgent可以打开,但是网页显示不全,放弃 。最后用C#Sharp测试达到了预期目标, 然后就是写代码了: 视频地址获取只要继承集成默认的抽象类 DefaultRequestHandler就可以了.

public class MyRequestHandler : DefaultRequestHandler
 {
 public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
  {
       //拿到url后再判断下是不是视频文件
       string url = request.Url;
   }
}

然后在初始化浏览器时指定下就行了。

chromeBrowser.RequestHandler = new MyRequestHandler(callback);

这里我是把url中的文件名提取出来,然后判断扩展名来判断是不是视频文件,不知道有没有更通用的方法。判断ResourceType == ResourceType.Media是不行的,很多时候这个值返回的是xhr。

FFmpeg部分就是直接命令行调用下,有时间再研究下这个神器的lib方式。

以下是折腾了几天出来的结果。

img

浏览器界面,解析m3u8链接后 可以看到需要下载的视频文件数量。 点击 开始下载按钮,来到如下界面。 可以在这里进行下载,播放等操作,界面美观,功能齐全 不管是网页解析m3u8链接, 还是网页批量下载等 如果需要下载一整部电视剧或者动漫,可以直接解放双手。 下载支持分片选择下载删除特定项目。 实时显示下载进度, 更新下载的数据大小。 一般情况下ts文件不用去下载,直接下m3u8就可以了,程序会自动分析ts分片文件全部下载完后自动合成一个mp4文件。

星尘库m3u8下载器下载地址:星尘库M3U8下载器​编辑https://sky.lanzouv.com/b0kn8uhti

软件下载:链接:星尘库M3U8下载器 提取码:6666 如果运行不了,请下载并安装NET Framework 4.6.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1942251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙

在软件工程师的世界里,与 Java 小程序中的 Bug 作战是一场永不停歇的战役。每一个隐藏在代码深处的 Bug 都像是一个狡猾的敌人,时刻准备着给我们的项目带来麻烦。 最近,我就陷入了这样一场与 Java 小程序 Bug 的激烈较量中。这个小程序原本应…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十九章 Linux MISC驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

爬虫实战:解决代理IP频繁中断的实操建议

当代理IP在爬虫中频繁掉线时,我们先要了解出现问题的可能原因,这不仅限于技术性因素,还涉及操作策略和环境因素。只有在找到具体原因后,才能针对问题类型从源头解决IP掉线问题。 一、问题原因: 1. 代理IP质量问题导致…

数据结构(Java):七大排序算法【详解】

目录 1、排序的概念 1.1 排序 1.2 排序的稳定性 1.3 内部排序&外部排序 1.4 各排序算法总结对比 2、 插入排序 2.1 🌸直接插入排序 2.2 🌸希尔排序 3、 选择排序 3.1 🌸直接选择排序 3.2 直接选择排序优化 3.3 🌸…

清华大学联合斯坦福大学提出混合注意力机制MoA,大模型解码速率提高6倍

随着大语言模型的规模不断扩大,如何在保持模型性能的同时提高其效率,成为了当前研究的热点问题。最近,清华大学联合斯坦福大学提出一种名为"注意力混合"(Mixture of Attention, MoA)的新方法,用于自动压缩大语言模型。 …

ES中的数据类型学习之ALIAS

Alias field type | Elasticsearch Guide [7.17] | Elastic 这里只针对data type的alias,暂时不说 index的alias。直接实战开始 PUT trips { "mappings": { "properties": { "distance": { "type": &…

开源安全态势感知平台Security Onion

简介 Security Onion是一款由安全防御人员为安全防御人员构建的免费开放平台。它包括网络可见性、主机可见性、入侵检测蜜罐、日志管理和案例管理等功能。详细信息可以查看官网Security Onion Solutions 在网络可见性方面,Security Onion提供了基于签名的检测&…

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决

主从复制的架构设计如下图所示: 同步原理 具体到数据库之间是通过binlog和复制线程操作的: Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启,binlog dump线程,该线程…

go关于string与[]byte再学深一点

目标:充分理解string与[]bytes零拷贝转换的实现 先回顾下string与[]byte的基本知识 1. string与[]byte的数据结构 reflect包中关于字符串的数据结构 // StringHeader is the runtime representation of a string.type StringHeader struct {Data uintptrLen int} …

浅谈断言之XML断言

浅谈断言之XML断言 XML断言是JMeter的一个组件,用于验证请求的响应数据是否符合XML结构。这对于测试返回XML格式数据的Web服务特别有用。 如何添加XML断言? 要在JMeter测试计划中添加XML断言,遵循以下步骤: 打开测试计划&…

JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】

JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】 目录 JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【JCR一区级】Matlab实现CPO-Transformer-LSTM多变量回归预测…

基于STM32F103的FreeRTOS系列(二)·多任务系统

基于STM32F103的FreeRTOS系列(一)单片机设计模式介绍裸机程序的设计模式-CSDN博客 目录 1. 多任务模式 2. 互斥操作 3. 同步操作 1. 多任务模式 对于裸机程序,无论使用哪种模式进行精心的设计,在最差的情况下都无法解决这个…

12. Hibernate 模板设计模式

1. 前言 本节课和大家一起使用模板设计模式重构 Hibernate 操作流程,通过本节课程内容,你将了解到: 如何运用模板设计模式重构 Hibernate 操作流程;持久化对象与序列化接口; 2. 模板设计模式 学习 Hibernate 的过程…

服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境,然后再集成到Jenkins中实现自动化的代码审查工作。 Docker 首先Dokcer的源大部分现在都用不了,于是我上网查询,终于找到了一个可用的镜像。 编辑/etc/docker/daemon.json文件&#x…

71.PLC Settings for OPCSERVER(KEPWare)- SAP ME实施

目录 0.目的 1.三菱PLCMitsubishi Ethernet 1.1 型号FX-3U的配置 选择Operational settings 按下图设置通讯参数 选择Open settings 按下图设置通讯端口 选择Router ralay parameter 按下图设置网关 1.2型号Q Series 按下图设置IP、网关 按下图设置端口…

WebGoC题解(13) 狐猬编程:GoC L4 结业测试 第4题 找木柴

题目描述 小明今天找了n跟木柴,但是木柴太多了,小明只能拿走m根木柴,小明希望拿走的木柴都是剩下的木柴中最长的,小明还画出以下图形 例如 输入 5 3 10 20 30 40 50 小明要拿走30 40 50 这3根木柴 从大到小画出以下图形 矩形的宽…

AWS监控工具,监控性能指标

执行AWS监视是为了跟踪在AWS环境中主动运行的应用程序工作负载和资源,AWS监视器跟踪各种AWS云指标,以帮助提高在其上运行的应用程序的整体性能。 借助阈值突破警报系统,AWS应用程序监控在识别性能瓶颈来源方面起着至关重要的作用&#xff0c…

46 AP-AC实战图示

一 流程 一 无线上WEB页面 1 创建vlan 56 [AC-KongZhi]vlan 56 2 退出 [AC-KongZhi-vlan56]quit 3 进入vlan三层口 配置IP地址 [AC-KongZhi]interface Vlan-interface 56 [AC-KongZhi-Vlan-interface56]ip address 192.168.56.55 24 4 在AC控制器与Host主机的接口上能通关vl…

Adobe国际认证详解-动漫制作专业就业方向和前景

动漫制作专业的就业方向和前景随着创意产业的蓬勃发展而愈发广阔。这一专业涵盖了从角色设计、场景绘制到动画制作、特效合成等多个环节,是创意与技术相结合的典型代表。随着数字媒体和互联网的普及,动漫制作专业人才的需求正不断增长,为该专…

Chrome v8 pwn 前置

文章目录 参考用到啥再更新啥简介环境搭建depot_tools和ninjaturbolizer 调试turbolizer使用结构数组 ArrayArrayBufferDataViewWASMJSObject结构Hidden Class命名属性-快速属性Fast Properties命名属性-慢速属性Slow Properties 或 字典模式Dictionary Mode编号属性 (Elements…